From f1f158a8f5b208b736ae4c90d852c2d47d02a0a1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 26 May 2020 08:48:19 +0000 Subject: [PATCH 01/21] Bump log4j2.version from 2.8.2 to 2.13.3 Bumps `log4j2.version` from 2.8.2 to 2.13.3. Updates `log4j-api` from 2.8.2 to 2.13.3 Updates `log4j-core` from 2.8.2 to 2.13.3 Signed-off-by: dependabot-preview[bot] --- generator/io.vertx/vertx-core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/io.vertx/vertx-core/pom.xml b/generator/io.vertx/vertx-core/pom.xml index 8f9bc2eb8..6514b393c 100644 --- a/generator/io.vertx/vertx-core/pom.xml +++ b/generator/io.vertx/vertx-core/pom.xml @@ -18,7 +18,7 @@ 1.2.17 1.7.21 - 2.8.2 + 2.13.3 4.1.49.Final io.vertx From b07dd56ee5bcb151e35feb1946914a337bc9dbc5 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 27 Jul 2020 13:16:30 +0200 Subject: [PATCH 02/21] Update for next development version --- codegen/pom.xml | 4 ++-- es4x/pom.xml | 4 ++-- generator/io.reactiverse/elasticsearch-client/pom.xml | 4 ++-- generator/io.vertx/pom.xml | 4 ++-- generator/io.vertx/vertx-amqp-bridge/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-common/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-htdigest/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-htpasswd/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-jdbc/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-jwt/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-mongo/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-oauth2/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-shiro/pom.xml | 4 ++-- generator/io.vertx/vertx-bridge-common/pom.xml | 4 ++-- generator/io.vertx/vertx-cassandra-client/pom.xml | 4 ++-- generator/io.vertx/vertx-circuit-breaker/pom.xml | 4 ++-- generator/io.vertx/vertx-config-consul/pom.xml | 4 ++-- generator/io.vertx/vertx-config-git/pom.xml | 4 ++-- generator/io.vertx/vertx-config-hocon/pom.xml | 4 ++-- generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml | 4 ++-- generator/io.vertx/vertx-config-redis/pom.xml | 4 ++-- generator/io.vertx/vertx-config-spring-config-server/pom.xml | 4 ++-- generator/io.vertx/vertx-config-vault/pom.xml | 4 ++-- generator/io.vertx/vertx-config-yaml/pom.xml | 4 ++-- generator/io.vertx/vertx-config-zookeeper/pom.xml | 4 ++-- generator/io.vertx/vertx-config/pom.xml | 4 ++-- generator/io.vertx/vertx-consul-client/pom.xml | 4 ++-- generator/io.vertx/vertx-core/pom.xml | 4 ++-- generator/io.vertx/vertx-dropwizard-metrics/pom.xml | 4 ++-- generator/io.vertx/vertx-health-check/pom.xml | 4 ++-- generator/io.vertx/vertx-jdbc-client/pom.xml | 4 ++-- generator/io.vertx/vertx-jwt/pom.xml | 4 ++-- generator/io.vertx/vertx-kafka-client/pom.xml | 4 ++-- generator/io.vertx/vertx-mail-client/pom.xml | 4 ++-- generator/io.vertx/vertx-micrometer-metrics/pom.xml | 4 ++-- generator/io.vertx/vertx-mongo-client/pom.xml | 4 ++-- generator/io.vertx/vertx-mqtt/pom.xml | 4 ++-- generator/io.vertx/vertx-mysql-client/pom.xml | 4 ++-- generator/io.vertx/vertx-mysql-postgresql-client/pom.xml | 4 ++-- generator/io.vertx/vertx-pg-client/pom.xml | 4 ++-- generator/io.vertx/vertx-rabbitmq-client/pom.xml | 4 ++-- generator/io.vertx/vertx-redis-client/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-backend-consul/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-backend-redis/pom.xml | 4 ++-- .../vertx-service-discovery-backend-zookeeper/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-bridge-consul/pom.xml | 4 ++-- .../vertx-service-discovery-bridge-docker-links/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-bridge-docker/pom.xml | 4 ++-- .../vertx-service-discovery-bridge-kubernetes/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml | 4 ++-- generator/io.vertx/vertx-service-discovery/pom.xml | 4 ++-- generator/io.vertx/vertx-service-proxy/pom.xml | 4 ++-- generator/io.vertx/vertx-shell/pom.xml | 4 ++-- generator/io.vertx/vertx-sql-client/pom.xml | 4 ++-- generator/io.vertx/vertx-sql-common/pom.xml | 4 ++-- generator/io.vertx/vertx-stomp/pom.xml | 4 ++-- generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml | 4 ++-- generator/io.vertx/vertx-unit/pom.xml | 4 ++-- generator/io.vertx/vertx-web-api-contract/pom.xml | 4 ++-- generator/io.vertx/vertx-web-client/pom.xml | 4 ++-- generator/io.vertx/vertx-web-common/pom.xml | 4 ++-- generator/io.vertx/vertx-web-graphql/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-freemarker/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-handlebars/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-jade/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-mvel/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-pebble/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-rocker/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml | 4 ++-- generator/io.vertx/vertx-web/pom.xml | 4 ++-- generator/pom.xml | 4 ++-- generator/xyz.jetdrone/hot-reload/pom.xml | 4 ++-- pm/pom.xml | 4 ++-- pom.xml | 2 +- 74 files changed, 147 insertions(+), 147 deletions(-) diff --git a/codegen/pom.xml b/codegen/pom.xml index 91d1c171f..39946abf4 100644 --- a/codegen/pom.xml +++ b/codegen/pom.xml @@ -6,14 +6,14 @@ io.reactiverse es4x-parent - 0.13.0 + 0.13.1-SNAPSHOT .. 4.0.0 es4x-codegen - 0.13.0 + 0.13.1-SNAPSHOT ${java.home}/../lib/tools.jar diff --git a/es4x/pom.xml b/es4x/pom.xml index eb260d484..d0a7188df 100644 --- a/es4x/pom.xml +++ b/es4x/pom.xml @@ -6,14 +6,14 @@ io.reactiverse es4x-parent - 0.13.0 + 0.13.1-SNAPSHOT .. 4.0.0 es4x - 0.13.0 + 0.13.1-SNAPSHOT UTF-8 diff --git a/generator/io.reactiverse/elasticsearch-client/pom.xml b/generator/io.reactiverse/elasticsearch-client/pom.xml index 7eb9c1a3c..dcafea41e 100644 --- a/generator/io.reactiverse/elasticsearch-client/pom.xml +++ b/generator/io.reactiverse/elasticsearch-client/pom.xml @@ -8,12 +8,12 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. elasticsearch-client - 0.13.0 + 0.13.1-SNAPSHOT jar diff --git a/generator/io.vertx/pom.xml b/generator/io.vertx/pom.xml index 7bba5226a..65cadc199 100644 --- a/generator/io.vertx/pom.xml +++ b/generator/io.vertx/pom.xml @@ -8,12 +8,12 @@ io.reactiverse es4x-parent - 0.13.0 + 0.13.1-SNAPSHOT ../.. es4x-vertx-stack - 0.13.0 + 0.13.1-SNAPSHOT diff --git a/generator/io.vertx/vertx-amqp-bridge/pom.xml b/generator/io.vertx/vertx-amqp-bridge/pom.xml index 8b6152129..e1627a727 100644 --- a/generator/io.vertx/vertx-amqp-bridge/pom.xml +++ b/generator/io.vertx/vertx-amqp-bridge/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-amqp-bridge - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-common/pom.xml b/generator/io.vertx/vertx-auth-common/pom.xml index b5e015c9c..98d8e73de 100644 --- a/generator/io.vertx/vertx-auth-common/pom.xml +++ b/generator/io.vertx/vertx-auth-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-common - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-htdigest/pom.xml b/generator/io.vertx/vertx-auth-htdigest/pom.xml index 4d204be78..34622ea0f 100644 --- a/generator/io.vertx/vertx-auth-htdigest/pom.xml +++ b/generator/io.vertx/vertx-auth-htdigest/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-htdigest - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-htpasswd/pom.xml b/generator/io.vertx/vertx-auth-htpasswd/pom.xml index f9c20d84b..b76eab0d4 100644 --- a/generator/io.vertx/vertx-auth-htpasswd/pom.xml +++ b/generator/io.vertx/vertx-auth-htpasswd/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-htpasswd - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-jdbc/pom.xml b/generator/io.vertx/vertx-auth-jdbc/pom.xml index 87e508e17..91f404171 100644 --- a/generator/io.vertx/vertx-auth-jdbc/pom.xml +++ b/generator/io.vertx/vertx-auth-jdbc/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-jdbc - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-jwt/pom.xml b/generator/io.vertx/vertx-auth-jwt/pom.xml index a4c8f04db..6d5428430 100644 --- a/generator/io.vertx/vertx-auth-jwt/pom.xml +++ b/generator/io.vertx/vertx-auth-jwt/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-jwt - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-mongo/pom.xml b/generator/io.vertx/vertx-auth-mongo/pom.xml index a4efb5ac9..c98aa5808 100644 --- a/generator/io.vertx/vertx-auth-mongo/pom.xml +++ b/generator/io.vertx/vertx-auth-mongo/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-mongo - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-oauth2/pom.xml b/generator/io.vertx/vertx-auth-oauth2/pom.xml index 5cc313071..4def03cb8 100644 --- a/generator/io.vertx/vertx-auth-oauth2/pom.xml +++ b/generator/io.vertx/vertx-auth-oauth2/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-oauth2 - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-auth-shiro/pom.xml b/generator/io.vertx/vertx-auth-shiro/pom.xml index 1e2fe5df7..11ee6678f 100644 --- a/generator/io.vertx/vertx-auth-shiro/pom.xml +++ b/generator/io.vertx/vertx-auth-shiro/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-auth-shiro - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-bridge-common/pom.xml b/generator/io.vertx/vertx-bridge-common/pom.xml index 9f1d4172f..060f8e12d 100644 --- a/generator/io.vertx/vertx-bridge-common/pom.xml +++ b/generator/io.vertx/vertx-bridge-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-bridge-common - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-cassandra-client/pom.xml b/generator/io.vertx/vertx-cassandra-client/pom.xml index 6014faace..168afd52b 100644 --- a/generator/io.vertx/vertx-cassandra-client/pom.xml +++ b/generator/io.vertx/vertx-cassandra-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-cassandra-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-circuit-breaker/pom.xml b/generator/io.vertx/vertx-circuit-breaker/pom.xml index 313f2bb38..a625b9fc7 100644 --- a/generator/io.vertx/vertx-circuit-breaker/pom.xml +++ b/generator/io.vertx/vertx-circuit-breaker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-circuit-breaker - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-consul/pom.xml b/generator/io.vertx/vertx-config-consul/pom.xml index c19d1daa8..7255902c8 100644 --- a/generator/io.vertx/vertx-config-consul/pom.xml +++ b/generator/io.vertx/vertx-config-consul/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-consul - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-git/pom.xml b/generator/io.vertx/vertx-config-git/pom.xml index b75fe300e..fd1dc28d1 100644 --- a/generator/io.vertx/vertx-config-git/pom.xml +++ b/generator/io.vertx/vertx-config-git/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-git - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-hocon/pom.xml b/generator/io.vertx/vertx-config-hocon/pom.xml index ecac71cd2..200c01178 100644 --- a/generator/io.vertx/vertx-config-hocon/pom.xml +++ b/generator/io.vertx/vertx-config-hocon/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-hocon - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml b/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml index 362b73be8..a0a80c060 100644 --- a/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml +++ b/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-kubernetes-configmap - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-redis/pom.xml b/generator/io.vertx/vertx-config-redis/pom.xml index 214b1a3cc..cc8bcddce 100644 --- a/generator/io.vertx/vertx-config-redis/pom.xml +++ b/generator/io.vertx/vertx-config-redis/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-redis - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-spring-config-server/pom.xml b/generator/io.vertx/vertx-config-spring-config-server/pom.xml index fc0dab04f..6d4d677b4 100644 --- a/generator/io.vertx/vertx-config-spring-config-server/pom.xml +++ b/generator/io.vertx/vertx-config-spring-config-server/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-spring-config-server - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-vault/pom.xml b/generator/io.vertx/vertx-config-vault/pom.xml index 08b2fdf65..0509fbf95 100644 --- a/generator/io.vertx/vertx-config-vault/pom.xml +++ b/generator/io.vertx/vertx-config-vault/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-vault - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-yaml/pom.xml b/generator/io.vertx/vertx-config-yaml/pom.xml index f3f79c09b..6fa8d4703 100644 --- a/generator/io.vertx/vertx-config-yaml/pom.xml +++ b/generator/io.vertx/vertx-config-yaml/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-yaml - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config-zookeeper/pom.xml b/generator/io.vertx/vertx-config-zookeeper/pom.xml index d58530c44..51bb7f3ba 100644 --- a/generator/io.vertx/vertx-config-zookeeper/pom.xml +++ b/generator/io.vertx/vertx-config-zookeeper/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config-zookeeper - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-config/pom.xml b/generator/io.vertx/vertx-config/pom.xml index b4d6f6ef3..48cb99b09 100644 --- a/generator/io.vertx/vertx-config/pom.xml +++ b/generator/io.vertx/vertx-config/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-config - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-consul-client/pom.xml b/generator/io.vertx/vertx-consul-client/pom.xml index 473122586..9e079de08 100644 --- a/generator/io.vertx/vertx-consul-client/pom.xml +++ b/generator/io.vertx/vertx-consul-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-consul-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-core/pom.xml b/generator/io.vertx/vertx-core/pom.xml index 9a0e811d3..b309bf40a 100644 --- a/generator/io.vertx/vertx-core/pom.xml +++ b/generator/io.vertx/vertx-core/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-core - 0.13.0 + 0.13.1-SNAPSHOT 1.2.17 diff --git a/generator/io.vertx/vertx-dropwizard-metrics/pom.xml b/generator/io.vertx/vertx-dropwizard-metrics/pom.xml index 9d23b8306..96f073166 100644 --- a/generator/io.vertx/vertx-dropwizard-metrics/pom.xml +++ b/generator/io.vertx/vertx-dropwizard-metrics/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-dropwizard-metrics - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-health-check/pom.xml b/generator/io.vertx/vertx-health-check/pom.xml index afaadba9a..77b03785d 100644 --- a/generator/io.vertx/vertx-health-check/pom.xml +++ b/generator/io.vertx/vertx-health-check/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-health-check - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-jdbc-client/pom.xml b/generator/io.vertx/vertx-jdbc-client/pom.xml index 0d8f49730..aeb97c954 100644 --- a/generator/io.vertx/vertx-jdbc-client/pom.xml +++ b/generator/io.vertx/vertx-jdbc-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-jdbc-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-jwt/pom.xml b/generator/io.vertx/vertx-jwt/pom.xml index 87d970e10..2bd9c1883 100644 --- a/generator/io.vertx/vertx-jwt/pom.xml +++ b/generator/io.vertx/vertx-jwt/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-jwt - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-kafka-client/pom.xml b/generator/io.vertx/vertx-kafka-client/pom.xml index 5f6cdddb7..f0d8c5cce 100644 --- a/generator/io.vertx/vertx-kafka-client/pom.xml +++ b/generator/io.vertx/vertx-kafka-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-kafka-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-mail-client/pom.xml b/generator/io.vertx/vertx-mail-client/pom.xml index e23e13e16..fdf34bdd8 100644 --- a/generator/io.vertx/vertx-mail-client/pom.xml +++ b/generator/io.vertx/vertx-mail-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-mail-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-micrometer-metrics/pom.xml b/generator/io.vertx/vertx-micrometer-metrics/pom.xml index c94041597..b73d9c2fd 100644 --- a/generator/io.vertx/vertx-micrometer-metrics/pom.xml +++ b/generator/io.vertx/vertx-micrometer-metrics/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-micrometer-metrics - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-mongo-client/pom.xml b/generator/io.vertx/vertx-mongo-client/pom.xml index 9007061fd..17af9a7ac 100644 --- a/generator/io.vertx/vertx-mongo-client/pom.xml +++ b/generator/io.vertx/vertx-mongo-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-mongo-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-mqtt/pom.xml b/generator/io.vertx/vertx-mqtt/pom.xml index ebdd099f4..e290e0624 100644 --- a/generator/io.vertx/vertx-mqtt/pom.xml +++ b/generator/io.vertx/vertx-mqtt/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-mqtt - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-mysql-client/pom.xml b/generator/io.vertx/vertx-mysql-client/pom.xml index 2507d082b..3f0a2dd30 100644 --- a/generator/io.vertx/vertx-mysql-client/pom.xml +++ b/generator/io.vertx/vertx-mysql-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-mysql-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml b/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml index 14e22fad3..6d9f3a594 100644 --- a/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml +++ b/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-mysql-postgresql-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-pg-client/pom.xml b/generator/io.vertx/vertx-pg-client/pom.xml index bc955e931..3d762bf15 100644 --- a/generator/io.vertx/vertx-pg-client/pom.xml +++ b/generator/io.vertx/vertx-pg-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-pg-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-rabbitmq-client/pom.xml b/generator/io.vertx/vertx-rabbitmq-client/pom.xml index ad5ad0e39..6b04d1f03 100644 --- a/generator/io.vertx/vertx-rabbitmq-client/pom.xml +++ b/generator/io.vertx/vertx-rabbitmq-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-rabbitmq-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-redis-client/pom.xml b/generator/io.vertx/vertx-redis-client/pom.xml index ed00fed3c..94a2f1a42 100644 --- a/generator/io.vertx/vertx-redis-client/pom.xml +++ b/generator/io.vertx/vertx-redis-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-redis-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml b/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml index 48a231d4c..bf34eb09e 100644 --- a/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-backend-consul - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml b/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml index 89468dde4..7e772cf4c 100644 --- a/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-backend-redis - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml b/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml index 77ca58dec..91848b39a 100644 --- a/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-backend-zookeeper - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml index 8cc5fe1b7..488adcd84 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-bridge-consul - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml index d452be263..7558c2824 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-bridge-docker-links - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml index dd018b1a0..3a303fd59 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-bridge-docker - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml index 5c2ba2ae1..ec0741ad9 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-bridge-kubernetes - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml index f22fd4423..06ebfad7d 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery-bridge-zookeeper - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-discovery/pom.xml b/generator/io.vertx/vertx-service-discovery/pom.xml index 041215b9c..22eb47869 100644 --- a/generator/io.vertx/vertx-service-discovery/pom.xml +++ b/generator/io.vertx/vertx-service-discovery/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-discovery - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-service-proxy/pom.xml b/generator/io.vertx/vertx-service-proxy/pom.xml index 8ee3323b0..e4f0eebb7 100644 --- a/generator/io.vertx/vertx-service-proxy/pom.xml +++ b/generator/io.vertx/vertx-service-proxy/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-service-proxy - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-shell/pom.xml b/generator/io.vertx/vertx-shell/pom.xml index af7fc8cfd..0737c8cb6 100644 --- a/generator/io.vertx/vertx-shell/pom.xml +++ b/generator/io.vertx/vertx-shell/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-shell - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-sql-client/pom.xml b/generator/io.vertx/vertx-sql-client/pom.xml index dcd0e724f..f18b09f3a 100644 --- a/generator/io.vertx/vertx-sql-client/pom.xml +++ b/generator/io.vertx/vertx-sql-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-sql-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-sql-common/pom.xml b/generator/io.vertx/vertx-sql-common/pom.xml index 7fef98ab3..192a7bc87 100644 --- a/generator/io.vertx/vertx-sql-common/pom.xml +++ b/generator/io.vertx/vertx-sql-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-sql-common - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-stomp/pom.xml b/generator/io.vertx/vertx-stomp/pom.xml index 5ab138f44..6e18cbbd8 100644 --- a/generator/io.vertx/vertx-stomp/pom.xml +++ b/generator/io.vertx/vertx-stomp/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-stomp - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml b/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml index b7a810248..0615c141f 100644 --- a/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml +++ b/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-tcp-eventbus-bridge - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-unit/pom.xml b/generator/io.vertx/vertx-unit/pom.xml index 84ac31f32..9ec4a66d5 100644 --- a/generator/io.vertx/vertx-unit/pom.xml +++ b/generator/io.vertx/vertx-unit/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-unit - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-api-contract/pom.xml b/generator/io.vertx/vertx-web-api-contract/pom.xml index d51d6f9dd..f86eef244 100644 --- a/generator/io.vertx/vertx-web-api-contract/pom.xml +++ b/generator/io.vertx/vertx-web-api-contract/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-api-contract - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-client/pom.xml b/generator/io.vertx/vertx-web-client/pom.xml index 25e0d63a5..0bdfc2645 100644 --- a/generator/io.vertx/vertx-web-client/pom.xml +++ b/generator/io.vertx/vertx-web-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-client - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-common/pom.xml b/generator/io.vertx/vertx-web-common/pom.xml index af3e62a5f..5bb0fa6c7 100644 --- a/generator/io.vertx/vertx-web-common/pom.xml +++ b/generator/io.vertx/vertx-web-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-common - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-graphql/pom.xml b/generator/io.vertx/vertx-web-graphql/pom.xml index 00e26eda2..db45ae4a9 100644 --- a/generator/io.vertx/vertx-web-graphql/pom.xml +++ b/generator/io.vertx/vertx-web-graphql/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-graphql - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-templ-freemarker/pom.xml b/generator/io.vertx/vertx-web-templ-freemarker/pom.xml index 2fc3be09a..3c7763a01 100644 --- a/generator/io.vertx/vertx-web-templ-freemarker/pom.xml +++ b/generator/io.vertx/vertx-web-templ-freemarker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-templ-freemarker - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-templ-handlebars/pom.xml b/generator/io.vertx/vertx-web-templ-handlebars/pom.xml index acdc57a62..41c70191e 100644 --- a/generator/io.vertx/vertx-web-templ-handlebars/pom.xml +++ b/generator/io.vertx/vertx-web-templ-handlebars/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-templ-handlebars - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-templ-jade/pom.xml b/generator/io.vertx/vertx-web-templ-jade/pom.xml index 93d4df119..dc02112e5 100644 --- a/generator/io.vertx/vertx-web-templ-jade/pom.xml +++ b/generator/io.vertx/vertx-web-templ-jade/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-templ-jade - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-templ-mvel/pom.xml b/generator/io.vertx/vertx-web-templ-mvel/pom.xml index 1a3a0a33f..2fa75ee0c 100644 --- a/generator/io.vertx/vertx-web-templ-mvel/pom.xml +++ b/generator/io.vertx/vertx-web-templ-mvel/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-templ-mvel - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-templ-pebble/pom.xml b/generator/io.vertx/vertx-web-templ-pebble/pom.xml index 4a8618a39..6686b5c46 100644 --- a/generator/io.vertx/vertx-web-templ-pebble/pom.xml +++ b/generator/io.vertx/vertx-web-templ-pebble/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-templ-pebble - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-templ-rocker/pom.xml b/generator/io.vertx/vertx-web-templ-rocker/pom.xml index e714ea997..0ee84cfc5 100644 --- a/generator/io.vertx/vertx-web-templ-rocker/pom.xml +++ b/generator/io.vertx/vertx-web-templ-rocker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-templ-rocker - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml b/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml index 4365036fe..25a9a944f 100644 --- a/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml +++ b/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web-templ-thymeleaf - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/io.vertx/vertx-web/pom.xml b/generator/io.vertx/vertx-web/pom.xml index f83e4f7d6..1515d5a23 100644 --- a/generator/io.vertx/vertx-web/pom.xml +++ b/generator/io.vertx/vertx-web/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. 4.0.0 vertx-web - 0.13.0 + 0.13.1-SNAPSHOT io.vertx diff --git a/generator/pom.xml b/generator/pom.xml index fd1b19ef3..bc5b2f6a2 100644 --- a/generator/pom.xml +++ b/generator/pom.xml @@ -6,13 +6,13 @@ io.reactiverse es4x-parent - 0.13.0 + 0.13.1-SNAPSHOT .. io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT pom diff --git a/generator/xyz.jetdrone/hot-reload/pom.xml b/generator/xyz.jetdrone/hot-reload/pom.xml index 64300d449..e33d05a18 100644 --- a/generator/xyz.jetdrone/hot-reload/pom.xml +++ b/generator/xyz.jetdrone/hot-reload/pom.xml @@ -8,12 +8,12 @@ io.reactiverse.es4x es4x-generator - 0.13.0 + 0.13.1-SNAPSHOT ../.. hot-reload - 0.13.0 + 0.13.1-SNAPSHOT jar diff --git a/pm/pom.xml b/pm/pom.xml index a751a6be4..fdb80455f 100644 --- a/pm/pom.xml +++ b/pm/pom.xml @@ -6,14 +6,14 @@ io.reactiverse es4x-parent - 0.13.0 + 0.13.1-SNAPSHOT .. 4.0.0 es4x-pm - 0.13.0 + 0.13.1-SNAPSHOT UTF-8 diff --git a/pom.xml b/pom.xml index 0be81e084..707728562 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.reactiverse es4x-parent - 0.13.0 + 0.13.1-SNAPSHOT pom From 70c4da1ed1d1fa17b90cfd5361b207a51ae9ccd5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 29 Jul 2020 09:25:19 +0000 Subject: [PATCH 03/21] Bump netty.version from 4.1.49.Final to 4.1.51.Final Bumps `netty.version` from 4.1.49.Final to 4.1.51.Final. Updates `netty-transport-native-epoll` from 4.1.49.Final to 4.1.51.Final - [Release notes](https://github.com/netty/netty/releases) - [Commits](https://github.com/netty/netty/compare/netty-4.1.49.Final...netty-4.1.51.Final) Updates `netty-transport-native-kqueue` from 4.1.49.Final to 4.1.51.Final - [Release notes](https://github.com/netty/netty/releases) - [Commits](https://github.com/netty/netty/compare/netty-4.1.49.Final...netty-4.1.51.Final) Signed-off-by: dependabot-preview[bot] --- generator/io.vertx/vertx-core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/io.vertx/vertx-core/pom.xml b/generator/io.vertx/vertx-core/pom.xml index c221966e6..f508a99b2 100644 --- a/generator/io.vertx/vertx-core/pom.xml +++ b/generator/io.vertx/vertx-core/pom.xml @@ -19,7 +19,7 @@ 1.2.17 1.7.21 2.13.3 - 4.1.49.Final + 4.1.51.Final io.vertx @vertx/core From c3b7e723f3c690a070596fe659eb16b21a6eac3f Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Fri, 21 Aug 2020 09:50:35 +0200 Subject: [PATCH 04/21] Update travis to run on graal 20.2.0 --- .travis.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 18517bf3b..66b210ba8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,24 +38,24 @@ matrix: install: . ./install-jdk.sh --url "https://api.adoptopenjdk.net/v3/binary/latest/14/ga/linux/x64/jdk/hotspot/normal/adoptopenjdk" # GraalVM - env: - - JDK='GraalVM 20.1.0 (8)' + - JDK='GraalVM 20.2.0 (8)' - SKIP_JACOCO='true' os: linux dist: xenial - install: . ./install-jdk.sh --url "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java8-linux-amd64-20.1.0.tar.gz" + install: . ./install-jdk.sh --url "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java8-linux-amd64-20.2.0.tar.gz" - env: - - JDK='GraalVM 20.1.0 (11)' + - JDK='GraalVM 20.2.0 (11)' - SKIP_JACOCO='true' os: linux dist: xenial - install: . ./install-jdk.sh --url "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz" + install: . ./install-jdk.sh --url "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-amd64-20.2.0.tar.gz" - env: - - JDK='GraalVM 20.1.0 (11)' + - JDK='GraalVM 20.2.0 (11)' - SKIP_JACOCO='true' os: linux dist: xenial arch: arm64 - install: . ./install-jdk.sh --url "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-aarch64-20.1.0.tar.gz" + install: . ./install-jdk.sh --url "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-linux-aarch64-20.2.0.tar.gz" # OpenJ9 - env: - JDK='OpenJ9 11' From 30aa945a9844158ff78f7647031b662259bbc00d Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Fri, 21 Aug 2020 09:51:13 +0200 Subject: [PATCH 05/21] Bump graal --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 707728562..932e22139 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ UTF-8 3.9.2 - 20.1.0 + 20.2.0 https://oss.sonatype.org/content/repositories/snapshots/ From bd25d024c870e6c061c762e0a5be10c99f4f6aa7 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 24 Aug 2020 14:13:14 +0200 Subject: [PATCH 06/21] Initial import of cea Signed-off-by: Paulo Lopes --- create-es4x-app/LICENSE | 21 ++++++++ create-es4x-app/README.md | 32 ++++++++++++ create-es4x-app/index.js | 59 +++++++++++++++++++++++ create-es4x-app/package.json | 26 ++++++++++ create-es4x-app/template-js/index.js | 11 +++++ create-es4x-app/template-js/index.test.js | 13 +++++ create-es4x-app/template-js/package.json | 22 +++++++++ 7 files changed, 184 insertions(+) create mode 100644 create-es4x-app/LICENSE create mode 100644 create-es4x-app/README.md create mode 100755 create-es4x-app/index.js create mode 100644 create-es4x-app/package.json create mode 100644 create-es4x-app/template-js/index.js create mode 100644 create-es4x-app/template-js/index.test.js create mode 100644 create-es4x-app/template-js/package.json diff --git a/create-es4x-app/LICENSE b/create-es4x-app/LICENSE new file mode 100644 index 000000000..d2a31a824 --- /dev/null +++ b/create-es4x-app/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-present, Paulo Lopes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/create-es4x-app/README.md b/create-es4x-app/README.md new file mode 100644 index 000000000..0ceda12ab --- /dev/null +++ b/create-es4x-app/README.md @@ -0,0 +1,32 @@ +# create-es4x-app + +Create an app powered by [es4x](https://github.com/reactiverse/es4x). + +```bash +$ npm init es4x-app +$ cd +$ npm install +$ npm start +``` + +If using Yarn: + +```bash +$ yarn create es4x-app +$ cd +$ yarn install +$ yarn +``` + +## Templates + +Available templates: + +- `js` (default) +- `ts` + +To scaffold with specific template: + +```bash +$ npm init es4x-app my-es4x-project --template ts +``` diff --git a/create-es4x-app/index.js b/create-es4x-app/index.js new file mode 100755 index 000000000..b16e7c425 --- /dev/null +++ b/create-es4x-app/index.js @@ -0,0 +1,59 @@ +#!/usr/bin/env node +const path = require('path'); +const fs = require('fs-extra'); +const argv = require('minimist')(process.argv.slice(2)); + +async function init() { + const targetDir = argv._[0] || '.'; + const cwd = process.cwd(); + const root = path.join(cwd, targetDir); + const renameFiles = { + _gitignore: '.gitignore' + }; + + console.log(`Scaffolding project in ${root}...`); + + await fs.ensureDir(root); + const existing = await fs.readdir(root); + if (existing.length) { + console.error(`Error: target directory is not empty.`); + process.exit(1); + } + + const templateDir = path.join( + __dirname, + `template-${argv.t || argv.template || 'js'}` + ); + + const write = async (file, content) => { + const targetPath = renameFiles[file] + ? path.join(root, renameFiles[file]) + : path.join(root, file); + if (content) { + await fs.writeFile(targetPath, content); + } else { + await fs.copy(path.join(templateDir, file), targetPath); + } + } + + const files = await fs.readdir(templateDir); + for (const file of files.filter(f => f !== 'package.json')) { + await write(file); + } + + const pkg = require(path.join(templateDir, `package.json`)) + pkg.name = path.basename(root); + await write('package.json', JSON.stringify(pkg, null, 2)); + + console.log(`\nDone. Now run:\n`); + if (root !== cwd) { + console.log(` cd ${path.relative(cwd, root)}`); + } + console.log(` npm install (or \`yarn\`)`); + console.log(` npm start (or \`yarn start\`)`); + console.log(); +} + +init().catch((e) => { + console.error(e); +}) diff --git a/create-es4x-app/package.json b/create-es4x-app/package.json new file mode 100644 index 000000000..c169aebbb --- /dev/null +++ b/create-es4x-app/package.json @@ -0,0 +1,26 @@ +{ + "name": "create-es4x-app", + "version": "0.0.1", + "license": "MIT", + "author": "Paulo Lopes ", + "main": "index.js", + "bin": { + "create-es4x-app": "index.js" + }, + "files": [ + "index.js", + "template-*" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/reactiverse/es4x.git" + }, + "bugs": { + "url": "https://github.com/reactiverse/es4x/issues" + }, + "homepage": "https://github.com/reactiverse/es4x/tree/master/#readme", + "dependencies": { + "fs-extra": "^9.0.1", + "minimist": "^1.2.5" + } +} diff --git a/create-es4x-app/template-js/index.js b/create-es4x-app/template-js/index.js new file mode 100644 index 000000000..c15226ac3 --- /dev/null +++ b/create-es4x-app/template-js/index.js @@ -0,0 +1,11 @@ +/// +// @ts-check + +vertx + .createHttpServer() + .requestHandler(function (req) { + req.response().end("Hello ES4X!"); + }) + .listen(3000); + +console.log('Server started on port 3000'); diff --git a/create-es4x-app/template-js/index.test.js b/create-es4x-app/template-js/index.test.js new file mode 100644 index 000000000..8fefff135 --- /dev/null +++ b/create-es4x-app/template-js/index.test.js @@ -0,0 +1,13 @@ +/// +// @ts-check + +import { TestSuite } from '@vertx/unit'; + +const suite = TestSuite.create("the_test_suite"); + +suite.test("my_test_case", function (context) { + var s = "value"; + context.assertEquals("value", s); +}); + +suite.run(); diff --git a/create-es4x-app/template-js/package.json b/create-es4x-app/template-js/package.json new file mode 100644 index 000000000..600107d26 --- /dev/null +++ b/create-es4x-app/template-js/package.json @@ -0,0 +1,22 @@ +{ + "name": "template-js", + "version": "1.0.0", + "private": true, + "description": "A barebones es4x application", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@vertx/unit": "latest" + }, + "dependencies": { + "@vertx/core": "latest", + "es4x-pm": "latest" + }, + "scripts": { + "postinstall": "es4x install", + "start": "es4x", + "test": "es4x test index.test.js" + } +} From 95d923d1783378d2f4610f8a234e67756f6cb848 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 24 Aug 2020 14:16:40 +0200 Subject: [PATCH 07/21] Fix readme Signed-off-by: Paulo Lopes --- create-es4x-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/create-es4x-app/README.md b/create-es4x-app/README.md index 0ceda12ab..415a6b3fa 100644 --- a/create-es4x-app/README.md +++ b/create-es4x-app/README.md @@ -14,8 +14,8 @@ If using Yarn: ```bash $ yarn create es4x-app $ cd -$ yarn install $ yarn +$ yarn start ``` ## Templates From 1f308c887510463ac8c0b95b7ec07d00ed9fae0b Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 24 Aug 2020 14:22:49 +0200 Subject: [PATCH 08/21] Added basic ts template Signed-off-by: Paulo Lopes --- create-es4x-app/template-ts/index.test.ts | 13 +++++++++++ create-es4x-app/template-ts/index.ts | 13 +++++++++++ create-es4x-app/template-ts/package.json | 27 +++++++++++++++++++++++ create-es4x-app/template-ts/tsconfig.json | 10 +++++++++ 4 files changed, 63 insertions(+) create mode 100644 create-es4x-app/template-ts/index.test.ts create mode 100644 create-es4x-app/template-ts/index.ts create mode 100644 create-es4x-app/template-ts/package.json create mode 100644 create-es4x-app/template-ts/tsconfig.json diff --git a/create-es4x-app/template-ts/index.test.ts b/create-es4x-app/template-ts/index.test.ts new file mode 100644 index 000000000..9e572494e --- /dev/null +++ b/create-es4x-app/template-ts/index.test.ts @@ -0,0 +1,13 @@ +/// +// @ts-check + +import { TestSuite, TestContext } from '@vertx/unit'; + +const suite = TestSuite.create("the_test_suite"); + +suite.test("my_test_case", (should: TestContext) => { + let s : string = "value"; + should.assertEquals("value", s); +}); + +suite.run(); diff --git a/create-es4x-app/template-ts/index.ts b/create-es4x-app/template-ts/index.ts new file mode 100644 index 000000000..41d587547 --- /dev/null +++ b/create-es4x-app/template-ts/index.ts @@ -0,0 +1,13 @@ +/// +// @ts-check + +vertx + .createHttpServer() + .requestHandler(function (req: any) { + req.response() + .putHeader("content-type", "text/plain") + .end("Hello!"); + }).listen(8080); + +console.log('Listening at http://127.0.0.1:8080'); + diff --git a/create-es4x-app/template-ts/package.json b/create-es4x-app/template-ts/package.json new file mode 100644 index 000000000..4a701f9c5 --- /dev/null +++ b/create-es4x-app/template-ts/package.json @@ -0,0 +1,27 @@ +{ + "name": "template-js", + "version": "1.0.0", + "private": true, + "description": "A barebones es4x application", + "main": "dist/index.js", + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@vertx/unit": "latest" + }, + "dependencies": { + "@vertx/core": "latest", + "es4x-pm": "latest" + }, + "devDependencies": { + "typescript": "latest" + }, + "scripts": { + "postinstall": "es4x install", + "prestart": "tsc", + "start": "es4x", + "pretest": "tsc", + "test": "es4x test dist/index.test.js" + } +} diff --git a/create-es4x-app/template-ts/tsconfig.json b/create-es4x-app/template-ts/tsconfig.json new file mode 100644 index 000000000..6536a49dc --- /dev/null +++ b/create-es4x-app/template-ts/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "outDir": "dist", + "sourceMap": true, + "noImplicitAny": true, + "module": "commonjs", + "target": "es2018", + "allowJs": true + } +} From 0a5121104e84c659134232176c228b85e8982246 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 24 Aug 2020 14:27:30 +0200 Subject: [PATCH 09/21] working templates Signed-off-by: Paulo Lopes --- create-es4x-app/template-js/package.json | 8 ++++---- create-es4x-app/template-ts/package.json | 10 ++++------ create-es4x-app/template-ts/tsconfig.json | 1 + 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/create-es4x-app/template-js/package.json b/create-es4x-app/template-js/package.json index 600107d26..6d96dffaf 100644 --- a/create-es4x-app/template-js/package.json +++ b/create-es4x-app/template-js/package.json @@ -7,13 +7,13 @@ "keywords": [], "author": "", "license": "ISC", + "dependencies": { + "es4x-pm": "latest", + "@vertx/core": "latest" + }, "devDependencies": { "@vertx/unit": "latest" }, - "dependencies": { - "@vertx/core": "latest", - "es4x-pm": "latest" - }, "scripts": { "postinstall": "es4x install", "start": "es4x", diff --git a/create-es4x-app/template-ts/package.json b/create-es4x-app/template-ts/package.json index 4a701f9c5..e20e15118 100644 --- a/create-es4x-app/template-ts/package.json +++ b/create-es4x-app/template-ts/package.json @@ -7,15 +7,13 @@ "keywords": [], "author": "", "license": "ISC", - "devDependencies": { - "@vertx/unit": "latest" - }, "dependencies": { - "@vertx/core": "latest", - "es4x-pm": "latest" + "es4x-pm": "latest", + "@vertx/core": "latest" }, "devDependencies": { - "typescript": "latest" + "typescript": "latest", + "@vertx/unit": "latest" }, "scripts": { "postinstall": "es4x install", diff --git a/create-es4x-app/template-ts/tsconfig.json b/create-es4x-app/template-ts/tsconfig.json index 6536a49dc..94d4955b8 100644 --- a/create-es4x-app/template-ts/tsconfig.json +++ b/create-es4x-app/template-ts/tsconfig.json @@ -5,6 +5,7 @@ "noImplicitAny": true, "module": "commonjs", "target": "es2018", + "types": [], "allowJs": true } } From 3d418ac0c5be4e8d62b2c05260ef2fc0b59b5e54 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Wed, 26 Aug 2020 10:28:16 +0200 Subject: [PATCH 10/21] avoid having one extra npm package, pm will handle create-es4x-app Signed-off-by: Paulo Lopes --- create-es4x-app/LICENSE | 21 ---- create-es4x-app/README.md | 32 ----- create-es4x-app/index.js | 59 ---------- create-es4x-app/package.json | 26 ---- pm/publish.sh | 19 +-- pm/src/assembly/bin/es4x-cli.js | 9 +- pm/src/assembly/main.js | 36 ++++++ pm/src/assembly/package.json | 14 +++ pm/src/assembly/pm.xml | 14 +++ .../io/reactiverse/es4x/commands/Init.java | 111 +++++++++++------- .../es4x/commands/InitCommand.java | 10 ++ .../META-INF/es4x-commands/init/js}/index.js | 0 .../es4x-commands/init/js}/index.test.js | 0 .../es4x-commands/init/js}/package.json | 6 +- .../es4x-commands/init/ts}/index.test.ts | 0 .../META-INF/es4x-commands/init/ts}/index.ts | 0 .../es4x-commands/init/ts}/package.json | 8 +- .../es4x-commands/init/ts}/tsconfig.json | 3 + .../META-INF/es4x-commands/package.json | 11 -- .../es4x/commands/InitCommandTest.java | 33 ------ 20 files changed, 158 insertions(+), 254 deletions(-) delete mode 100644 create-es4x-app/LICENSE delete mode 100644 create-es4x-app/README.md delete mode 100755 create-es4x-app/index.js delete mode 100644 create-es4x-app/package.json create mode 100644 pm/src/assembly/main.js create mode 100644 pm/src/assembly/package.json rename {create-es4x-app/template-js => pm/src/main/resources/META-INF/es4x-commands/init/js}/index.js (100%) rename {create-es4x-app/template-js => pm/src/main/resources/META-INF/es4x-commands/init/js}/index.test.js (100%) rename {create-es4x-app/template-js => pm/src/main/resources/META-INF/es4x-commands/init/js}/package.json (74%) rename {create-es4x-app/template-ts => pm/src/main/resources/META-INF/es4x-commands/init/ts}/index.test.ts (100%) rename {create-es4x-app/template-ts => pm/src/main/resources/META-INF/es4x-commands/init/ts}/index.ts (100%) rename {create-es4x-app/template-ts => pm/src/main/resources/META-INF/es4x-commands/init/ts}/package.json (73%) rename {create-es4x-app/template-ts => pm/src/main/resources/META-INF/es4x-commands/init/ts}/tsconfig.json (71%) delete mode 100644 pm/src/main/resources/META-INF/es4x-commands/package.json diff --git a/create-es4x-app/LICENSE b/create-es4x-app/LICENSE deleted file mode 100644 index d2a31a824..000000000 --- a/create-es4x-app/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020-present, Paulo Lopes - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/create-es4x-app/README.md b/create-es4x-app/README.md deleted file mode 100644 index 415a6b3fa..000000000 --- a/create-es4x-app/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# create-es4x-app - -Create an app powered by [es4x](https://github.com/reactiverse/es4x). - -```bash -$ npm init es4x-app -$ cd -$ npm install -$ npm start -``` - -If using Yarn: - -```bash -$ yarn create es4x-app -$ cd -$ yarn -$ yarn start -``` - -## Templates - -Available templates: - -- `js` (default) -- `ts` - -To scaffold with specific template: - -```bash -$ npm init es4x-app my-es4x-project --template ts -``` diff --git a/create-es4x-app/index.js b/create-es4x-app/index.js deleted file mode 100755 index b16e7c425..000000000 --- a/create-es4x-app/index.js +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env node -const path = require('path'); -const fs = require('fs-extra'); -const argv = require('minimist')(process.argv.slice(2)); - -async function init() { - const targetDir = argv._[0] || '.'; - const cwd = process.cwd(); - const root = path.join(cwd, targetDir); - const renameFiles = { - _gitignore: '.gitignore' - }; - - console.log(`Scaffolding project in ${root}...`); - - await fs.ensureDir(root); - const existing = await fs.readdir(root); - if (existing.length) { - console.error(`Error: target directory is not empty.`); - process.exit(1); - } - - const templateDir = path.join( - __dirname, - `template-${argv.t || argv.template || 'js'}` - ); - - const write = async (file, content) => { - const targetPath = renameFiles[file] - ? path.join(root, renameFiles[file]) - : path.join(root, file); - if (content) { - await fs.writeFile(targetPath, content); - } else { - await fs.copy(path.join(templateDir, file), targetPath); - } - } - - const files = await fs.readdir(templateDir); - for (const file of files.filter(f => f !== 'package.json')) { - await write(file); - } - - const pkg = require(path.join(templateDir, `package.json`)) - pkg.name = path.basename(root); - await write('package.json', JSON.stringify(pkg, null, 2)); - - console.log(`\nDone. Now run:\n`); - if (root !== cwd) { - console.log(` cd ${path.relative(cwd, root)}`); - } - console.log(` npm install (or \`yarn\`)`); - console.log(` npm start (or \`yarn start\`)`); - console.log(); -} - -init().catch((e) => { - console.error(e); -}) diff --git a/create-es4x-app/package.json b/create-es4x-app/package.json deleted file mode 100644 index c169aebbb..000000000 --- a/create-es4x-app/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "create-es4x-app", - "version": "0.0.1", - "license": "MIT", - "author": "Paulo Lopes ", - "main": "index.js", - "bin": { - "create-es4x-app": "index.js" - }, - "files": [ - "index.js", - "template-*" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/reactiverse/es4x.git" - }, - "bugs": { - "url": "https://github.com/reactiverse/es4x/issues" - }, - "homepage": "https://github.com/reactiverse/es4x/tree/master/#readme", - "dependencies": { - "fs-extra": "^9.0.1", - "minimist": "^1.2.5" - } -} diff --git a/pm/publish.sh b/pm/publish.sh index f0b1b56ba..a474d2f42 100755 --- a/pm/publish.sh +++ b/pm/publish.sh @@ -7,22 +7,9 @@ rm -Rf package || true mkdir package VERSION=$(cat classes/META-INF/es4x-commands/VERSIONS.properties | grep es4x | cut -c6-) tar -zxvf es4x-pm-${VERSION}-bin.tar.gz --strip-components=1 -C package - -echo " -{ - \"name\": \"es4x-pm\", - \"version\": \"${VERSION}\", - \"description\": \"ES4X Project Manager Utilities\", - \"scripts\": { - \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\" - }, - \"author\": \"Paulo Lopes \", - \"license\": \"MIT\", - \"bin\": { - \"es4x\": \"./bin/es4x-cli.js\" - } -} -" > package/package.json +# exclude the native bin scripts +rm package/bin/es4x || true +rm package/bin/es4x.cmd || true cd package diff --git a/pm/src/assembly/bin/es4x-cli.js b/pm/src/assembly/bin/es4x-cli.js index 5dbd085b0..59d5338e6 100644 --- a/pm/src/assembly/bin/es4x-cli.js +++ b/pm/src/assembly/bin/es4x-cli.js @@ -118,11 +118,4 @@ subProcess.on('error', (err) => { process.exit(1); }); -subProcess.on('close', (code) => { - if (code !== 0) { - console.debug(java); - console.debug(argv.concat(process.argv.slice(2))); - - console.error(`java process exited with code ${code}`); - } -}); +subProcess.on('close', process.exit); diff --git a/pm/src/assembly/main.js b/pm/src/assembly/main.js new file mode 100644 index 000000000..84ece09c2 --- /dev/null +++ b/pm/src/assembly/main.js @@ -0,0 +1,36 @@ +#!/usr/bin/env node + +const { existsSync } = require('fs'); +const path = require('path'); +const { spawn } = require('child_process'); + +let java = 'java'; + +if (process.env['JAVA_HOME']) { + // Attempt to use JAVA_HOME + let xjava = path.join(process.env['JAVA_HOME'], 'bin', 'java'); + if (existsSync(xjava)) { + java = xjava; + } +} + +let argv = [ + '-cp', + path.join(__dirname, 'es4x-pm-${project.version}.jar'), + 'io.reactiverse.es4x.cli.PM', + 'init' + ]; + +const subProcess = spawn(java, argv.concat(process.argv.slice(2)), { cwd: process.cwd(), env: process.env, stdio: 'inherit' }); + +subProcess.on('error', (err) => { + console.error(`es4x-pm ERROR: ${err}`); + process.exit(1); +}); + +subProcess.on('error', (err) => { + console.error(`es4x-pm ERROR: ${err}`); + process.exit(1); +}); + +subProcess.on('close', process.exit); diff --git a/pm/src/assembly/package.json b/pm/src/assembly/package.json new file mode 100644 index 000000000..99dd336b2 --- /dev/null +++ b/pm/src/assembly/package.json @@ -0,0 +1,14 @@ +{ + "name": "create-es4x-app", + "version": "${project.version}", + "description": "ES4X Project Manager Utilities", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Paulo Lopes ", + "license": "MIT", + "main": "main.js", + "bin": { + "es4x": "./bin/es4x-cli.js" + } +} diff --git a/pm/src/assembly/pm.xml b/pm/src/assembly/pm.xml index 5f47b2a2b..4c749eef1 100644 --- a/pm/src/assembly/pm.xml +++ b/pm/src/assembly/pm.xml @@ -45,5 +45,19 @@ unix 0755 + + src/assembly/main.js + + true + unix + 0644 + + + src/assembly/package.json + + true + unix + 0644 + diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/Init.java b/pm/src/main/java/io/reactiverse/es4x/commands/Init.java index e45ead304..ec8005d92 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/Init.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/Init.java @@ -6,10 +6,9 @@ import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; -import java.util.LinkedHashMap; import java.util.Map; -import static io.reactiverse.es4x.commands.Helper.*; +import static io.reactiverse.es4x.commands.Helper.fatal; public class Init implements Runnable { @@ -17,6 +16,7 @@ public class Init implements Runnable { public static final String SUMMARY = "Initializes the 'package.json' to work with ES4X."; private File cwd; + private boolean typeScript; public Init() { } @@ -24,6 +24,7 @@ public Init() { public Init(String[] args) { CmdLineParser parser = new CmdLineParser(); CmdLineParser.Option helpOption = parser.addBooleanOption('h', "help"); + CmdLineParser.Option tsOption = parser.addBooleanOption('t', "ts"); try { parser.parse(args); @@ -41,7 +42,33 @@ public Init(String[] args) { return; } - setCwd(new File(".")); + Boolean typeScript = parser.getOptionValue(tsOption, Boolean.FALSE); + if (typeScript != null && typeScript) { + setTypeScript(true); + } + + String[] commandArgs = parser.getRemainingArgs(); + + switch (commandArgs.length) { + case 0: + setCwd(new File(".")); + break; + case 1: + File d = new File(commandArgs[0]); + if (d.exists()) { + if (!d.isDirectory()) { + fatal(commandArgs[0] + " is not a directory!"); + } + } else { + if (!d.mkdirs()) { + fatal("Failed to create directory(s): " + commandArgs[0] + "!"); + } + } + setCwd(d); + break; + default: + fatal("Too many arguments, only 1 project name allowed!"); + } } private void printUsage() { @@ -49,6 +76,9 @@ private void printUsage() { System.err.println(); System.err.println(SUMMARY); System.err.println(); + System.err.println("Options and Arguments:"); + System.err.println(" -t,--ts\t\t\t\tCreate a TypeScript project instead of JavaScript."); + System.err.println(); } public Init setCwd(File cwd) { @@ -56,18 +86,42 @@ public Init setCwd(File cwd) { return this; } + public void setTypeScript(boolean typeScript) { + this.typeScript = typeScript; + } + @Override public void run() { try { final File file = new File(cwd, "package.json"); - if (!file.exists()) { + if (file.exists()) { + fatal(file.toPath().toRealPath().toString() + " already exists!"); + } + + String[] templates = typeScript ? + new String[] + { + "META-INF/es4x-commands/init/ts/package.json", + "META-INF/es4x-commands/init/ts/index.ts", + "META-INF/es4x-commands/init/ts/index.test.ts", + "META-INF/es4x-commands/init/ts/tsconfig.json" + } : + new String[] + { + "META-INF/es4x-commands/init/js/package.json", + "META-INF/es4x-commands/init/js/index.js", + "META-INF/es4x-commands/init/js/index.test.js" + }; + + for (String template : templates) { // Load the file from the class path - try (InputStream in = Init.class.getClassLoader().getResourceAsStream("META-INF/es4x-commands/package.json")) { + try (InputStream in = Init.class.getClassLoader().getResourceAsStream(template)) { if (in == null) { - fatal("Cannot load package.json template."); + fatal("Cannot load: " + template); } else { - Files.copy(in, file.toPath()); + File target = new File(cwd, template.substring(template.lastIndexOf('/') + 1)); + Files.copy(in, target.toPath()); } } catch (IOException e) { fatal(e.getMessage()); @@ -75,48 +129,23 @@ public void run() { } Map npm = JSON.parse(file, Map.class); - String name = (String) npm.get("name"); + String name = null; - if (name == null) { - // this was a new project, either derive the name from the cwd or set to "unnamed" - if (cwd != null) { - name = cwd.toPath().toRealPath().getFileName().toString(); - } - - if (name == null || "".equals(name)) { - name = "unnamed"; - } - - npm.put("name", name); - } - - Map scripts = (Map) npm.get("scripts"); - - if (scripts == null) { - scripts = new LinkedHashMap(); - npm.put("scripts", scripts); + // this was a new project, either derive the name from the cwd or set to "unnamed" + if (cwd != null) { + name = cwd.toPath().toRealPath().getFileName().toString(); } - String main = (String) npm.get("main"); - if (main == null) { - main = "index.js"; - } - - String test = main; - if (test.endsWith(".js")) { - test = test.substring(0, test.length() - 3) + ".test.js"; - } - if (test.endsWith(".mjs")) { - test = test.substring(0, test.length() - 3) + ".test.mjs"; + if (name == null || "".equals(name)) { + name = "unnamed"; } - scripts.put("postinstall", "es4x install"); - scripts.put("start", "es4x"); - scripts.put("test", "es4x test " + test); + npm.put("name", name); JSON.encode(file, npm); - } catch (IOException e) { + } catch ( + IOException e) { fatal(e.getMessage()); } } diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/InitCommand.java b/pm/src/main/java/io/reactiverse/es4x/commands/InitCommand.java index 2ca5bbdda..4b13734b4 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/InitCommand.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/InitCommand.java @@ -16,7 +16,9 @@ package io.reactiverse.es4x.commands; import io.vertx.core.cli.CLIException; +import io.vertx.core.cli.annotations.Description; import io.vertx.core.cli.annotations.Name; +import io.vertx.core.cli.annotations.Option; import io.vertx.core.cli.annotations.Summary; import io.vertx.core.spi.launcher.DefaultCommand; @@ -24,6 +26,14 @@ @Summary(Init.SUMMARY) public class InitCommand extends DefaultCommand { + private final Init command = new Init(); + + @Option(longName = "ts", shortName = "t", flag = true) + @Description("Init a TypeScript project.") + public void setForce(boolean force) { + command.setTypeScript(force); + } + @Override public void run() throws CLIException { new Init() diff --git a/create-es4x-app/template-js/index.js b/pm/src/main/resources/META-INF/es4x-commands/init/js/index.js similarity index 100% rename from create-es4x-app/template-js/index.js rename to pm/src/main/resources/META-INF/es4x-commands/init/js/index.js diff --git a/create-es4x-app/template-js/index.test.js b/pm/src/main/resources/META-INF/es4x-commands/init/js/index.test.js similarity index 100% rename from create-es4x-app/template-js/index.test.js rename to pm/src/main/resources/META-INF/es4x-commands/init/js/index.test.js diff --git a/create-es4x-app/template-js/package.json b/pm/src/main/resources/META-INF/es4x-commands/init/js/package.json similarity index 74% rename from create-es4x-app/template-js/package.json rename to pm/src/main/resources/META-INF/es4x-commands/init/js/package.json index 6d96dffaf..36e0d0c98 100644 --- a/create-es4x-app/template-js/package.json +++ b/pm/src/main/resources/META-INF/es4x-commands/init/js/package.json @@ -8,11 +8,11 @@ "author": "", "license": "ISC", "dependencies": { - "es4x-pm": "latest", - "@vertx/core": "latest" + "@vertx/core": "${stack.version}" }, "devDependencies": { - "@vertx/unit": "latest" + "create-es4x-app": "${project.version}", + "@vertx/unit": "${stack.version}" }, "scripts": { "postinstall": "es4x install", diff --git a/create-es4x-app/template-ts/index.test.ts b/pm/src/main/resources/META-INF/es4x-commands/init/ts/index.test.ts similarity index 100% rename from create-es4x-app/template-ts/index.test.ts rename to pm/src/main/resources/META-INF/es4x-commands/init/ts/index.test.ts diff --git a/create-es4x-app/template-ts/index.ts b/pm/src/main/resources/META-INF/es4x-commands/init/ts/index.ts similarity index 100% rename from create-es4x-app/template-ts/index.ts rename to pm/src/main/resources/META-INF/es4x-commands/init/ts/index.ts diff --git a/create-es4x-app/template-ts/package.json b/pm/src/main/resources/META-INF/es4x-commands/init/ts/package.json similarity index 73% rename from create-es4x-app/template-ts/package.json rename to pm/src/main/resources/META-INF/es4x-commands/init/ts/package.json index e20e15118..370893280 100644 --- a/create-es4x-app/template-ts/package.json +++ b/pm/src/main/resources/META-INF/es4x-commands/init/ts/package.json @@ -8,12 +8,12 @@ "author": "", "license": "ISC", "dependencies": { - "es4x-pm": "latest", - "@vertx/core": "latest" + "@vertx/core": "${stack.version}" }, "devDependencies": { - "typescript": "latest", - "@vertx/unit": "latest" + "create-es4x-app": "${project.version}", + "typescript": "^4.0.2", + "@vertx/unit": "${stack.version}" }, "scripts": { "postinstall": "es4x install", diff --git a/create-es4x-app/template-ts/tsconfig.json b/pm/src/main/resources/META-INF/es4x-commands/init/ts/tsconfig.json similarity index 71% rename from create-es4x-app/template-ts/tsconfig.json rename to pm/src/main/resources/META-INF/es4x-commands/init/ts/tsconfig.json index 94d4955b8..103dfd306 100644 --- a/create-es4x-app/template-ts/tsconfig.json +++ b/pm/src/main/resources/META-INF/es4x-commands/init/ts/tsconfig.json @@ -1,4 +1,7 @@ { + "$schema": "https://json.schemastore.org/tsconfig", + "display": "es4x", + "compilerOptions": { "outDir": "dist", "sourceMap": true, diff --git a/pm/src/main/resources/META-INF/es4x-commands/package.json b/pm/src/main/resources/META-INF/es4x-commands/package.json deleted file mode 100644 index d7ef4b142..000000000 --- a/pm/src/main/resources/META-INF/es4x-commands/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "1.0.0", - "description": "This is a ES4X empty project.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC" -} diff --git a/pm/src/test/java/io/reactiverse/es4x/commands/InitCommandTest.java b/pm/src/test/java/io/reactiverse/es4x/commands/InitCommandTest.java index 6b9f46c63..a5c6d23e6 100644 --- a/pm/src/test/java/io/reactiverse/es4x/commands/InitCommandTest.java +++ b/pm/src/test/java/io/reactiverse/es4x/commands/InitCommandTest.java @@ -4,7 +4,6 @@ import java.io.File; import java.io.IOException; -import java.util.HashMap; import java.util.Map; import static org.junit.Assert.*; @@ -28,37 +27,5 @@ public void shouldCreateAnEmptyProject() throws IOException { Map json = JSON.parse(packageJson, Map.class); assertEquals(projectName, json.get("name")); - assertEquals("index.js", json.get("main")); - - Map scripts = (Map) json.get("scripts"); - assertNotNull(scripts); - assertEquals("es4x", scripts.get("start")); - assertEquals("es4x test index.test.js", scripts.get("test")); - assertEquals("es4x install", scripts.get("postinstall")); - } - - @Test - public void shouldUpdateAnExisting() throws IOException { - command.setCwd(IOUtils.mkTempDir()); - - File packageJson = new File(command.getCwd(), "package.json"); - packageJson.deleteOnExit(); - - Map json = new HashMap(); - json.put("name", "my-project"); - - JSON.encode(packageJson, json); - - command.run(); - assertTrue(packageJson.exists()); - - json = JSON.parse(packageJson, Map.class); - assertEquals("my-project", json.get("name")); - - Map scripts = (Map) json.get("scripts"); - assertNotNull(scripts); - assertEquals("es4x", scripts.get("start")); - assertEquals("es4x test index.test.js", scripts.get("test")); - assertEquals("es4x install", scripts.get("postinstall")); } } From f827fcb3549200d5fab207d94909d53018c4fdc7 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Fri, 28 Aug 2020 11:23:06 +0200 Subject: [PATCH 11/21] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c88df2b7f..c5996c34a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,9 @@ This is the EcmaScript (5.1+) language support for [Eclipse Vert.x](http://vertx.io) -[![Build Status](https://travis-ci.com/reactiverse/es4x.svg?branch=develop)](https://travis-ci.com/reactiverse/es4x) [![Join the chat at https://gitter.im/es4x/Lobby](https://badges.gitter.im/es4x/Lobby.svg)](https://gitter.im/es4x/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Build Status](https://travis-ci.com/reactiverse/es4x.svg?branch=develop)](https://travis-ci.com/reactiverse/es4x) +[![Join the chat at https://gitter.im/es4x/Lobby](https://badges.gitter.im/es4x/Lobby.svg)](https://gitter.im/es4x/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Security Status](https://snyk-widget.herokuapp.com/badge/mvn/io.reactiverse/es4x/badge.svg)](https://snyk.io/vuln/maven:io.reactiverse:es4x?utm_medium=referral&utm_source=badge&utm_campaign=snyk-widget) ## Why? From badbb118a514f009da2fd395464afacffb689c56 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Fri, 28 Aug 2020 14:20:06 +0200 Subject: [PATCH 12/21] re-work the docs Signed-off-by: Paulo Lopes --- .../es4x/codegen/generator/ReadmeMD.java | 1 + docs/.vuepress/config.js | 33 +- .../@vertx/amqp-bridge/consumer-reply.png | Bin 17850 -> 0 bytes docs/manual/@vertx/amqp-bridge/dataobjects.md | 54 - docs/manual/@vertx/amqp-bridge/index.md | 435 - .../amqp-bridge/producer-reply-handler.png | Bin 13736 -> 0 bytes docs/manual/@vertx/auth-common/dataobjects.md | 64 - docs/manual/@vertx/auth-common/index.md | 200 - docs/manual/@vertx/auth-htdigest/index.md | 90 - .../@vertx/auth-htpasswd/dataobjects.md | 9 - docs/manual/@vertx/auth-htpasswd/index.md | 62 - docs/manual/@vertx/auth-jdbc/dataobjects.md | 14 - docs/manual/@vertx/auth-jdbc/index.md | 316 - docs/manual/@vertx/auth-jwt/dataobjects.md | 47 - docs/manual/@vertx/auth-jwt/index.md | 541 - docs/manual/@vertx/auth-mongo/dataobjects.md | 18 - docs/manual/@vertx/auth-mongo/enums.md | 34 - docs/manual/@vertx/auth-mongo/index.md | 231 - docs/manual/@vertx/auth-oauth2/dataobjects.md | 106 - docs/manual/@vertx/auth-oauth2/enums.md | 11 - docs/manual/@vertx/auth-oauth2/index.md | 728 -- docs/manual/@vertx/auth-shiro/dataobjects.md | 10 - docs/manual/@vertx/auth-shiro/enums.md | 9 - docs/manual/@vertx/auth-shiro/index.md | 227 - .../@vertx/bridge-common/dataobjects.md | 21 - docs/manual/@vertx/bridge-common/enums.md | 16 - .../@vertx/cassandra-client/dataobjects.md | 10 - docs/manual/@vertx/cassandra-client/index.md | 367 - .../@vertx/circuit-breaker/dataobjects.md | 71 - docs/manual/@vertx/circuit-breaker/index.md | 329 - docs/manual/@vertx/cofig-redis/redis-store.md | 63 - .../@vertx/config-consul/consul-store.md | 67 - docs/manual/@vertx/config-git/git-store.md | 89 - .../@vertx/config-hocon/hocon-format.md | 59 - .../kubernetes-store.md | 91 - .../spring-store.md | 74 - .../manual/@vertx/config-vault/dataobjects.md | 16 - .../manual/@vertx/config-vault/vault-store.md | 278 - docs/manual/@vertx/config-yaml/yaml-format.md | 55 - .../config-zookeeper/zookeeper-store.md | 70 - docs/manual/@vertx/config/dataobjects.md | 40 - docs/manual/@vertx/config/index.md | 653 -- .../@vertx/consul-client/dataobjects.md | 920 -- docs/manual/@vertx/consul-client/index.md | 958 -- docs/manual/@vertx/core/buffers.md | 155 - docs/manual/@vertx/core/cli-for-java.md | 107 - docs/manual/@vertx/core/cli.md | 261 - docs/manual/@vertx/core/datagrams.md | 285 - docs/manual/@vertx/core/dataobjects.md | 2367 ----- docs/manual/@vertx/core/dns.md | 370 - docs/manual/@vertx/core/enums.md | 127 - docs/manual/@vertx/core/eventbus.md | 420 - docs/manual/@vertx/core/filesystem.md | 284 - docs/manual/@vertx/core/http.md | 2534 ----- docs/manual/@vertx/core/index.md | 8740 ----------------- docs/manual/@vertx/core/json-pointers.md | 31 - docs/manual/@vertx/core/net.md | 1142 --- docs/manual/@vertx/core/parsetools.md | 147 - docs/manual/@vertx/core/shareddata.md | 300 - docs/manual/@vertx/core/streams.md | 312 - .../@vertx/dropwizard-metrics/dataobjects.md | 29 - .../dropwizard-metrics/hawtio-connect.png | Bin 35910 -> 0 bytes .../@vertx/dropwizard-metrics/hawtio-jmx.png | Bin 177838 -> 0 bytes .../manual/@vertx/dropwizard-metrics/index.md | 874 -- .../manual/@vertx/health-check/dataobjects.md | 12 - docs/manual/@vertx/health-check/index.md | 265 - docs/manual/@vertx/jdbc-client/index.md | 298 - docs/manual/@vertx/jwt/dataobjects.md | 17 - docs/manual/@vertx/kafka-client/admin.md | 90 - .../manual/@vertx/kafka-client/adminclient.md | 151 - .../manual/@vertx/kafka-client/dataobjects.md | 217 - docs/manual/@vertx/kafka-client/index.md | 823 -- docs/manual/@vertx/kafka-client/rxjava2.md | 1 - docs/manual/@vertx/mail-client/dataobjects.md | 70 - docs/manual/@vertx/mail-client/index.md | 310 - .../@vertx/micrometer-metrics/dataobjects.md | 92 - .../manual/@vertx/micrometer-metrics/enums.md | 45 - .../manual/@vertx/micrometer-metrics/index.md | 670 -- .../manual/@vertx/mongo-client/dataobjects.md | 194 - docs/manual/@vertx/mongo-client/index.md | 980 -- .../manual/@vertx/mysql-client/connections.md | 25 - docs/manual/@vertx/mysql-client/cursor.md | 74 - .../manual/@vertx/mysql-client/dataobjects.md | 311 - docs/manual/@vertx/mysql-client/enums.md | 25 - docs/manual/@vertx/mysql-client/index.md | 1339 --- docs/manual/@vertx/mysql-client/queries.md | 157 - .../@vertx/mysql-client/transactions.md | 102 - .../@vertx/mysql-postgresql-client/index.md | 367 - docs/manual/@vertx/pg-client/connections.md | 25 - docs/manual/@vertx/pg-client/cursor.md | 81 - docs/manual/@vertx/pg-client/dataobjects.md | 161 - docs/manual/@vertx/pg-client/enums.md | 18 - docs/manual/@vertx/pg-client/index.md | 1249 --- docs/manual/@vertx/pg-client/queries.md | 157 - docs/manual/@vertx/pg-client/transactions.md | 102 - .../@vertx/rabbitmq-client/dataobjects.md | 33 - docs/manual/@vertx/rabbitmq-client/index.md | 307 - .../manual/@vertx/redis-client/dataobjects.md | 196 - docs/manual/@vertx/redis-client/enums.md | 162 - docs/manual/@vertx/redis-client/index.md | 372 - .../consul-backend.md | 38 - .../redis-backend.md | 65 - .../index.md | 94 - .../consul-bridge.md | 65 - .../docker-links-bridge.md | 48 - .../kubernetes-bridge.md | 90 - .../zookeeper-bridge.md | 76 - .../@vertx/service-discovery/dataobjects.md | 42 - docs/manual/@vertx/service-discovery/enums.md | 11 - docs/manual/@vertx/service-discovery/index.md | 1106 --- docs/manual/@vertx/shell/dataobjects.md | 171 - docs/manual/@vertx/shell/enums.md | 11 - docs/manual/@vertx/shell/index.md | 1120 --- docs/manual/@vertx/sql-client/connections.md | 14 - docs/manual/@vertx/sql-client/cursor.md | 27 - docs/manual/@vertx/sql-client/dataobjects.md | 269 - docs/manual/@vertx/sql-client/queries.md | 78 - docs/manual/@vertx/sql-client/transactions.md | 37 - docs/manual/@vertx/sql-common/dataobjects.md | 96 - docs/manual/@vertx/sql-common/enums.md | 44 - docs/manual/@vertx/sql-common/index.md | 517 - docs/manual/@vertx/stomp/dataobjects.md | 163 - docs/manual/@vertx/stomp/index.md | 766 -- .../@vertx/tcp-eventbus-bridge/index.md | 101 - docs/manual/@vertx/unit/dataobjects.md | 80 - docs/manual/@vertx/unit/index.md | 1154 --- docs/manual/@vertx/vertx-mqtt/dataobjects.md | 131 - docs/manual/@vertx/vertx-mqtt/index.md | 532 - .../@vertx/web-api-contract/dataobjects.md | 28 - docs/manual/@vertx/web-api-contract/enums.md | 56 - docs/manual/@vertx/web-api-contract/index.md | 379 - docs/manual/@vertx/web-client/dataobjects.md | 86 - docs/manual/@vertx/web-client/enums.md | 7 - docs/manual/@vertx/web-client/index.md | 818 -- docs/manual/@vertx/web-graphql/dataobjects.md | 30 - docs/manual/@vertx/web-graphql/enums.md | 17 - docs/manual/@vertx/web-graphql/index.md | 333 - docs/manual/@vertx/web/dataobjects.md | 67 - docs/manual/@vertx/web/enums.md | 23 - docs/manual/@vertx/web/index.md | 3552 ------- docs/manual/README.md | 61 - docs/quick-guide/README.md | 221 + docs/quick-guide/core/README.md | 423 + .../core/eventbus/pointtopoint/receiver.js | 13 + .../core/eventbus/pointtopoint/sender.js | 18 + .../core/eventbus/pubsub/receiver.js | 18 + .../core/eventbus/pubsub/sender.js | 10 + .../core/eventbus/ssl/keystore.jks | Bin 0 -> 2252 bytes .../quick-guide/core/eventbus/ssl/receiver.js | 13 + docs/quick-guide/core/eventbus/ssl/sender.js | 18 + .../core/future/compose_example.js | 30 + docs/quick-guide/core/ha/server.js | 8 + docs/quick-guide/core/http/https/client.js | 20 + .../core/http/https/server-keystore.jks | Bin 0 -> 2252 bytes docs/quick-guide/core/http/https/server.js | 19 + docs/quick-guide/core/http/proxy/client.js | 15 + docs/quick-guide/core/http/proxy/proxy.js | 41 + docs/quick-guide/core/http/proxy/server.js | 25 + .../core/http/proxyconnect/client.js | 31 + .../core/http/proxyconnect/proxy.js | 52 + .../quick-guide/core/http/sendfile/index.html | 14 + .../quick-guide/core/http/sendfile/page1.html | 8 + .../quick-guide/core/http/sendfile/page2.html | 8 + .../core/http/sendfile/send_file.js | 22 + docs/quick-guide/core/http/sharing/client.js | 13 + .../core/http/sharing/http_server_verticle.js | 10 + docs/quick-guide/core/http/sharing/server.js | 9 + docs/quick-guide/core/http/simple/client.js | 11 + docs/quick-guide/core/http/simple/server.js | 10 + .../core/http/simpleform/index.html | 18 + .../http/simpleform/simple_form_server.js | 21 + .../core/http/simpleformupload/index.html | 15 + .../simple_form_upload_server.js | 34 + docs/quick-guide/core/http/upload/client.js | 29 + docs/quick-guide/core/http/upload/server.js | 25 + .../core/http/websockets/client.js | 13 + .../core/http/websockets/server.js | 12 + docs/quick-guide/core/http/websockets/ws.html | 37 + .../core/http2/customframes/client.js | 32 + .../core/http2/customframes/server-cert.pem | 22 + .../core/http2/customframes/server-key.pem | 28 + .../core/http2/customframes/server.js | 25 + docs/quick-guide/core/http2/h2c/client.js | 20 + docs/quick-guide/core/http2/h2c/server.js | 10 + docs/quick-guide/core/http2/push/client.js | 33 + docs/quick-guide/core/http2/push/index.html | 12 + docs/quick-guide/core/http2/push/script.js | 1 + .../core/http2/push/server-cert.pem | 22 + .../core/http2/push/server-key.pem | 28 + docs/quick-guide/core/http2/push/server.js | 38 + docs/quick-guide/core/http2/simple/client.js | 22 + .../core/http2/simple/server-cert.pem | 22 + .../core/http2/simple/server-key.pem | 28 + docs/quick-guide/core/http2/simple/server.js | 19 + docs/quick-guide/core/net/echo/client.js | 23 + docs/quick-guide/core/net/echo/server.js | 15 + docs/quick-guide/core/net/echossl/client.js | 27 + .../core/net/echossl/server-keystore.jks | Bin 0 -> 2252 bytes docs/quick-guide/core/net/echossl/server.js | 21 + docs/quick-guide/core/package.json | 13 + .../verticle/asyncstart/deploy_example.js | 26 + .../core/verticle/deploy/deploy_example.js | 63 + .../core/verticle/worker/main_verticle.js | 15 + .../core/verticle/worker/worker_verticle.js | 11 + package.json | 4 +- 205 files changed, 1881 insertions(+), 47856 deletions(-) delete mode 100644 docs/manual/@vertx/amqp-bridge/consumer-reply.png delete mode 100644 docs/manual/@vertx/amqp-bridge/dataobjects.md delete mode 100644 docs/manual/@vertx/amqp-bridge/index.md delete mode 100644 docs/manual/@vertx/amqp-bridge/producer-reply-handler.png delete mode 100644 docs/manual/@vertx/auth-common/dataobjects.md delete mode 100644 docs/manual/@vertx/auth-common/index.md delete mode 100644 docs/manual/@vertx/auth-htdigest/index.md delete mode 100644 docs/manual/@vertx/auth-htpasswd/dataobjects.md delete mode 100644 docs/manual/@vertx/auth-htpasswd/index.md delete mode 100644 docs/manual/@vertx/auth-jdbc/dataobjects.md delete mode 100644 docs/manual/@vertx/auth-jdbc/index.md delete mode 100644 docs/manual/@vertx/auth-jwt/dataobjects.md delete mode 100644 docs/manual/@vertx/auth-jwt/index.md delete mode 100644 docs/manual/@vertx/auth-mongo/dataobjects.md delete mode 100644 docs/manual/@vertx/auth-mongo/enums.md delete mode 100644 docs/manual/@vertx/auth-mongo/index.md delete mode 100644 docs/manual/@vertx/auth-oauth2/dataobjects.md delete mode 100644 docs/manual/@vertx/auth-oauth2/enums.md delete mode 100644 docs/manual/@vertx/auth-oauth2/index.md delete mode 100644 docs/manual/@vertx/auth-shiro/dataobjects.md delete mode 100644 docs/manual/@vertx/auth-shiro/enums.md delete mode 100644 docs/manual/@vertx/auth-shiro/index.md delete mode 100644 docs/manual/@vertx/bridge-common/dataobjects.md delete mode 100644 docs/manual/@vertx/bridge-common/enums.md delete mode 100644 docs/manual/@vertx/cassandra-client/dataobjects.md delete mode 100644 docs/manual/@vertx/cassandra-client/index.md delete mode 100644 docs/manual/@vertx/circuit-breaker/dataobjects.md delete mode 100644 docs/manual/@vertx/circuit-breaker/index.md delete mode 100644 docs/manual/@vertx/cofig-redis/redis-store.md delete mode 100644 docs/manual/@vertx/config-consul/consul-store.md delete mode 100644 docs/manual/@vertx/config-git/git-store.md delete mode 100644 docs/manual/@vertx/config-hocon/hocon-format.md delete mode 100644 docs/manual/@vertx/config-kubernetes-configmap/kubernetes-store.md delete mode 100644 docs/manual/@vertx/config-spring-config-server/spring-store.md delete mode 100644 docs/manual/@vertx/config-vault/dataobjects.md delete mode 100644 docs/manual/@vertx/config-vault/vault-store.md delete mode 100644 docs/manual/@vertx/config-yaml/yaml-format.md delete mode 100644 docs/manual/@vertx/config-zookeeper/zookeeper-store.md delete mode 100644 docs/manual/@vertx/config/dataobjects.md delete mode 100644 docs/manual/@vertx/config/index.md delete mode 100644 docs/manual/@vertx/consul-client/dataobjects.md delete mode 100644 docs/manual/@vertx/consul-client/index.md delete mode 100644 docs/manual/@vertx/core/buffers.md delete mode 100644 docs/manual/@vertx/core/cli-for-java.md delete mode 100644 docs/manual/@vertx/core/cli.md delete mode 100644 docs/manual/@vertx/core/datagrams.md delete mode 100644 docs/manual/@vertx/core/dataobjects.md delete mode 100644 docs/manual/@vertx/core/dns.md delete mode 100644 docs/manual/@vertx/core/enums.md delete mode 100644 docs/manual/@vertx/core/eventbus.md delete mode 100644 docs/manual/@vertx/core/filesystem.md delete mode 100644 docs/manual/@vertx/core/http.md delete mode 100644 docs/manual/@vertx/core/index.md delete mode 100644 docs/manual/@vertx/core/json-pointers.md delete mode 100644 docs/manual/@vertx/core/net.md delete mode 100644 docs/manual/@vertx/core/parsetools.md delete mode 100644 docs/manual/@vertx/core/shareddata.md delete mode 100644 docs/manual/@vertx/core/streams.md delete mode 100644 docs/manual/@vertx/dropwizard-metrics/dataobjects.md delete mode 100644 docs/manual/@vertx/dropwizard-metrics/hawtio-connect.png delete mode 100644 docs/manual/@vertx/dropwizard-metrics/hawtio-jmx.png delete mode 100644 docs/manual/@vertx/dropwizard-metrics/index.md delete mode 100644 docs/manual/@vertx/health-check/dataobjects.md delete mode 100644 docs/manual/@vertx/health-check/index.md delete mode 100644 docs/manual/@vertx/jdbc-client/index.md delete mode 100644 docs/manual/@vertx/jwt/dataobjects.md delete mode 100644 docs/manual/@vertx/kafka-client/admin.md delete mode 100644 docs/manual/@vertx/kafka-client/adminclient.md delete mode 100644 docs/manual/@vertx/kafka-client/dataobjects.md delete mode 100644 docs/manual/@vertx/kafka-client/index.md delete mode 100644 docs/manual/@vertx/kafka-client/rxjava2.md delete mode 100644 docs/manual/@vertx/mail-client/dataobjects.md delete mode 100644 docs/manual/@vertx/mail-client/index.md delete mode 100644 docs/manual/@vertx/micrometer-metrics/dataobjects.md delete mode 100644 docs/manual/@vertx/micrometer-metrics/enums.md delete mode 100644 docs/manual/@vertx/micrometer-metrics/index.md delete mode 100644 docs/manual/@vertx/mongo-client/dataobjects.md delete mode 100644 docs/manual/@vertx/mongo-client/index.md delete mode 100644 docs/manual/@vertx/mysql-client/connections.md delete mode 100644 docs/manual/@vertx/mysql-client/cursor.md delete mode 100644 docs/manual/@vertx/mysql-client/dataobjects.md delete mode 100644 docs/manual/@vertx/mysql-client/enums.md delete mode 100644 docs/manual/@vertx/mysql-client/index.md delete mode 100644 docs/manual/@vertx/mysql-client/queries.md delete mode 100644 docs/manual/@vertx/mysql-client/transactions.md delete mode 100644 docs/manual/@vertx/mysql-postgresql-client/index.md delete mode 100644 docs/manual/@vertx/pg-client/connections.md delete mode 100644 docs/manual/@vertx/pg-client/cursor.md delete mode 100644 docs/manual/@vertx/pg-client/dataobjects.md delete mode 100644 docs/manual/@vertx/pg-client/enums.md delete mode 100644 docs/manual/@vertx/pg-client/index.md delete mode 100644 docs/manual/@vertx/pg-client/queries.md delete mode 100644 docs/manual/@vertx/pg-client/transactions.md delete mode 100644 docs/manual/@vertx/rabbitmq-client/dataobjects.md delete mode 100644 docs/manual/@vertx/rabbitmq-client/index.md delete mode 100644 docs/manual/@vertx/redis-client/dataobjects.md delete mode 100644 docs/manual/@vertx/redis-client/enums.md delete mode 100644 docs/manual/@vertx/redis-client/index.md delete mode 100644 docs/manual/@vertx/service-discovery-backend-consul/consul-backend.md delete mode 100644 docs/manual/@vertx/service-discovery-backend-redis/redis-backend.md delete mode 100644 docs/manual/@vertx/service-discovery-backend-zookeeper/index.md delete mode 100644 docs/manual/@vertx/service-discovery-bridge-consul/consul-bridge.md delete mode 100644 docs/manual/@vertx/service-discovery-bridge-docker-links/docker-links-bridge.md delete mode 100644 docs/manual/@vertx/service-discovery-bridge-kubernetes/kubernetes-bridge.md delete mode 100644 docs/manual/@vertx/service-discovery-bridge-zookeeper/zookeeper-bridge.md delete mode 100644 docs/manual/@vertx/service-discovery/dataobjects.md delete mode 100644 docs/manual/@vertx/service-discovery/enums.md delete mode 100644 docs/manual/@vertx/service-discovery/index.md delete mode 100644 docs/manual/@vertx/shell/dataobjects.md delete mode 100644 docs/manual/@vertx/shell/enums.md delete mode 100644 docs/manual/@vertx/shell/index.md delete mode 100644 docs/manual/@vertx/sql-client/connections.md delete mode 100644 docs/manual/@vertx/sql-client/cursor.md delete mode 100644 docs/manual/@vertx/sql-client/dataobjects.md delete mode 100644 docs/manual/@vertx/sql-client/queries.md delete mode 100644 docs/manual/@vertx/sql-client/transactions.md delete mode 100644 docs/manual/@vertx/sql-common/dataobjects.md delete mode 100644 docs/manual/@vertx/sql-common/enums.md delete mode 100644 docs/manual/@vertx/sql-common/index.md delete mode 100644 docs/manual/@vertx/stomp/dataobjects.md delete mode 100644 docs/manual/@vertx/stomp/index.md delete mode 100644 docs/manual/@vertx/tcp-eventbus-bridge/index.md delete mode 100644 docs/manual/@vertx/unit/dataobjects.md delete mode 100644 docs/manual/@vertx/unit/index.md delete mode 100644 docs/manual/@vertx/vertx-mqtt/dataobjects.md delete mode 100644 docs/manual/@vertx/vertx-mqtt/index.md delete mode 100644 docs/manual/@vertx/web-api-contract/dataobjects.md delete mode 100644 docs/manual/@vertx/web-api-contract/enums.md delete mode 100644 docs/manual/@vertx/web-api-contract/index.md delete mode 100644 docs/manual/@vertx/web-client/dataobjects.md delete mode 100644 docs/manual/@vertx/web-client/enums.md delete mode 100644 docs/manual/@vertx/web-client/index.md delete mode 100644 docs/manual/@vertx/web-graphql/dataobjects.md delete mode 100644 docs/manual/@vertx/web-graphql/enums.md delete mode 100644 docs/manual/@vertx/web-graphql/index.md delete mode 100644 docs/manual/@vertx/web/dataobjects.md delete mode 100644 docs/manual/@vertx/web/enums.md delete mode 100644 docs/manual/@vertx/web/index.md delete mode 100644 docs/manual/README.md create mode 100644 docs/quick-guide/README.md create mode 100644 docs/quick-guide/core/README.md create mode 100644 docs/quick-guide/core/eventbus/pointtopoint/receiver.js create mode 100644 docs/quick-guide/core/eventbus/pointtopoint/sender.js create mode 100644 docs/quick-guide/core/eventbus/pubsub/receiver.js create mode 100644 docs/quick-guide/core/eventbus/pubsub/sender.js create mode 100644 docs/quick-guide/core/eventbus/ssl/keystore.jks create mode 100644 docs/quick-guide/core/eventbus/ssl/receiver.js create mode 100644 docs/quick-guide/core/eventbus/ssl/sender.js create mode 100644 docs/quick-guide/core/future/compose_example.js create mode 100644 docs/quick-guide/core/ha/server.js create mode 100644 docs/quick-guide/core/http/https/client.js create mode 100644 docs/quick-guide/core/http/https/server-keystore.jks create mode 100644 docs/quick-guide/core/http/https/server.js create mode 100644 docs/quick-guide/core/http/proxy/client.js create mode 100644 docs/quick-guide/core/http/proxy/proxy.js create mode 100644 docs/quick-guide/core/http/proxy/server.js create mode 100644 docs/quick-guide/core/http/proxyconnect/client.js create mode 100644 docs/quick-guide/core/http/proxyconnect/proxy.js create mode 100644 docs/quick-guide/core/http/sendfile/index.html create mode 100644 docs/quick-guide/core/http/sendfile/page1.html create mode 100644 docs/quick-guide/core/http/sendfile/page2.html create mode 100644 docs/quick-guide/core/http/sendfile/send_file.js create mode 100644 docs/quick-guide/core/http/sharing/client.js create mode 100644 docs/quick-guide/core/http/sharing/http_server_verticle.js create mode 100644 docs/quick-guide/core/http/sharing/server.js create mode 100644 docs/quick-guide/core/http/simple/client.js create mode 100644 docs/quick-guide/core/http/simple/server.js create mode 100644 docs/quick-guide/core/http/simpleform/index.html create mode 100644 docs/quick-guide/core/http/simpleform/simple_form_server.js create mode 100644 docs/quick-guide/core/http/simpleformupload/index.html create mode 100644 docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js create mode 100644 docs/quick-guide/core/http/upload/client.js create mode 100644 docs/quick-guide/core/http/upload/server.js create mode 100644 docs/quick-guide/core/http/websockets/client.js create mode 100644 docs/quick-guide/core/http/websockets/server.js create mode 100644 docs/quick-guide/core/http/websockets/ws.html create mode 100644 docs/quick-guide/core/http2/customframes/client.js create mode 100755 docs/quick-guide/core/http2/customframes/server-cert.pem create mode 100755 docs/quick-guide/core/http2/customframes/server-key.pem create mode 100644 docs/quick-guide/core/http2/customframes/server.js create mode 100644 docs/quick-guide/core/http2/h2c/client.js create mode 100644 docs/quick-guide/core/http2/h2c/server.js create mode 100644 docs/quick-guide/core/http2/push/client.js create mode 100755 docs/quick-guide/core/http2/push/index.html create mode 100755 docs/quick-guide/core/http2/push/script.js create mode 100755 docs/quick-guide/core/http2/push/server-cert.pem create mode 100755 docs/quick-guide/core/http2/push/server-key.pem create mode 100644 docs/quick-guide/core/http2/push/server.js create mode 100644 docs/quick-guide/core/http2/simple/client.js create mode 100755 docs/quick-guide/core/http2/simple/server-cert.pem create mode 100755 docs/quick-guide/core/http2/simple/server-key.pem create mode 100644 docs/quick-guide/core/http2/simple/server.js create mode 100644 docs/quick-guide/core/net/echo/client.js create mode 100644 docs/quick-guide/core/net/echo/server.js create mode 100644 docs/quick-guide/core/net/echossl/client.js create mode 100644 docs/quick-guide/core/net/echossl/server-keystore.jks create mode 100644 docs/quick-guide/core/net/echossl/server.js create mode 100644 docs/quick-guide/core/package.json create mode 100644 docs/quick-guide/core/verticle/asyncstart/deploy_example.js create mode 100644 docs/quick-guide/core/verticle/deploy/deploy_example.js create mode 100644 docs/quick-guide/core/verticle/worker/main_verticle.js create mode 100644 docs/quick-guide/core/verticle/worker/worker_verticle.js diff --git a/codegen/src/main/java/io/reactiverse/es4x/codegen/generator/ReadmeMD.java b/codegen/src/main/java/io/reactiverse/es4x/codegen/generator/ReadmeMD.java index 33d914e12..64960c30a 100644 --- a/codegen/src/main/java/io/reactiverse/es4x/codegen/generator/ReadmeMD.java +++ b/codegen/src/main/java/io/reactiverse/es4x/codegen/generator/ReadmeMD.java @@ -67,6 +67,7 @@ public String render(Model model, int index, int size, Map sessi writer.printf("![npm (scoped)](https://img.shields.io/npm/v/%s.svg)\n", getNPMScope(model.getModule())); writer.printf("![npm](https://img.shields.io/npm/l/%s.svg)\n", getNPMScope(model.getModule())); + writer.printf("![Security Status](https://snyk-widget.herokuapp.com/badge/npm/%s.svg)\n", getNPMScope(model.getModule())); writer.print("\n"); writer.print("Generated JavaScript bindings for Eclipse Vert.x.\n"); writer.print("\n"); diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index f427e8697..b5fb78571 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -59,8 +59,8 @@ module.exports = { link: '/advanced/' }, { - text: 'Manual', - link: '/manual/' + text: 'Quick Guides', + link: '/quick-guide/' }, { text: 'APIs', @@ -102,12 +102,13 @@ module.exports = { ] } ], - '/manual/': [ + '/quick-guide/': [ { - title: 'Manuals', + title: 'Quick Guides', collapsable: false, children: [ - '' + '', + 'core/' ] } ], @@ -143,8 +144,8 @@ module.exports = { link: '/advanced/' }, { - text: 'Manuais', - link: '/manual/' + text: 'Guias Rápidos', + link: '/quick-guide/' }, { text: 'APIs', @@ -186,12 +187,13 @@ module.exports = { ] } ], - '/manual/': [ + '/quick-guide/': [ { - title: 'Manuals', + title: 'Guias Rápidos', collapsable: false, children: [ - '' + '', + 'core/' ] } ], @@ -227,8 +229,8 @@ module.exports = { link: '/zh/advanced/' }, { - text: 'Manual', - link: '/manual/' + text: 'Quick Guides', + link: '/quick-guide/' }, { text: 'API参考', @@ -270,12 +272,13 @@ module.exports = { ] } ], - '/manual/': [ + '/quick-guide/': [ { - title: 'Manuals', + title: 'Quick Guides', collapsable: false, children: [ - '' + '', + 'core/' ] } ], diff --git a/docs/manual/@vertx/amqp-bridge/consumer-reply.png b/docs/manual/@vertx/amqp-bridge/consumer-reply.png deleted file mode 100644 index 0dd63eebcf0f17f8a8b3fa60f8ed159a4be96d11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17850 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 R3OtjA!PC{xWt~$(69C}U9ryqM diff --git a/docs/manual/@vertx/amqp-bridge/dataobjects.md b/docs/manual/@vertx/amqp-bridge/dataobjects.md deleted file mode 100644 index d1ca61d45..000000000 --- a/docs/manual/@vertx/amqp-bridge/dataobjects.md +++ /dev/null @@ -1,54 +0,0 @@ -# AmqpBridgeOptions - -Options for configuring the AmqpBridge. - -| | | | -| ---------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@connectTimeout` | `Number (int)` | \- | -| `@containerId` | `String` | Sets the value to use as the container-id field in the AMQP Open frame. Some servers and clients use this for the concept of a 'Client ID'. Defaults to null, which indicates a value will be generated by the bridge when the underlying connection is made. | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSaslMechanisms` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@heartbeat` | `Number (int)` | \- | -| `@hostnameVerificationAlgorithm` | `String` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@localAddress` | `String` | \- | -| `@logActivity` | `Boolean` | \- | -| `@maxFrameSize` | `Number (int)` | \- | -| `@metricsName` | `String` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@proxyOptions` | `ProxyOptions` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reconnectAttempts` | `Number (int)` | \- | -| `@reconnectInterval` | `Number (long)` | \- | -| `@replyHandlingSupport` | `Boolean` | Sets whether the bridge should try to enable support for sending messages with a reply handler set, and replying to messages using the message reply methods. Defaults to true. If the server does not advertise support for 'anonymous sender' links then the bridge won't support reply handling regardless of this setting. | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@sniServerName` | `String` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@trafficClass` | `Number (int)` | \- | -| `@trustAll` | `Boolean` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | -| `@vhost` | `String` | Sets the value to use as the hostname field in the AMQP Open frame. Defaults to null, which indicates the hostname value given when starting the bridge will be used to populate the hostname field. | -| `@virtualHost` | `String` | \- | diff --git a/docs/manual/@vertx/amqp-bridge/index.md b/docs/manual/@vertx/amqp-bridge/index.md deleted file mode 100644 index 4a9828729..000000000 --- a/docs/manual/@vertx/amqp-bridge/index.md +++ /dev/null @@ -1,435 +0,0 @@ -This component provides AMQP 1.0 producer and consumer support via a -bridging layer implementing the Vert.x event bus MessageProducer and -MessageConsumer APIs over the top of -[vertx-proton](https://github.com/vert-x3/vertx-proton/). - -> **Warning** -> -> This component will be removed in Vert.x 4, instead you should use -> [Vert.x AMQP Client](https://vertx.io/docs/vertx-amqp-client/java/) - -# Using Vert.x AMQP Bridge - -To use Vert.x AMQP Bridge, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-amqp-bridge - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile io.vertx:vertx-amqp-bridge:${maven.version} -``` - -# Getting Started - -## Sending a Message - -Here is a simple example of creating a `MessageProducer` and sending a -message with it. First, an `AmqpBridge` is created and started to -establish the underlying AMQP connection, then when this is complete the -producer is created and a message sent using it. You can optionally -supply a username and password when starting the bridge, as well as -supplying `AmqpBridgeOptions` in order to configure various options such -as for using SSL connections. - -``` js -import { AmqpBridge } from "@vertx/amqp-bridge" -let bridge = AmqpBridge.create(vertx); -// Start the bridge, then use the event loop thread to process things thereafter. -bridge.start("localhost", 5672, (res) => { - // Set up a producer using the bridge, send a message with it. - let producer = bridge.createProducer("myAmqpAddress"); - - let amqpMsgPayload = { - }; - amqpMsgPayload.body = "myStringContent"; - - producer.send(amqpMsgPayload); -}); -``` - -## Receiving a Message - -Here is a simple example of creating a `MessageConsumer` and registering -a handler with it. First, an `AmqpBridge` is created and started to -establish the underlying AMQP connection, then when this is complete the -consumer is created and a handler registered that prints the body of -incoming AMQP messages. - -``` js -import { AmqpBridge } from "@vertx/amqp-bridge" -let bridge = AmqpBridge.create(vertx); -// Start the bridge, then use the event loop thread to process things thereafter. -bridge.start("localhost", 5672, (res) => { - // Set up a consumer using the bridge, register a handler for it. - let consumer = bridge.createConsumer("myAmqpAddress"); - consumer.handler((vertxMsg) => { - let amqpMsgPayload = vertxMsg.body(); - let amqpBody = amqpMsgPayload.body; - - console.log("Received a message with body: " + amqpBody); - }); -}); -``` - -Receipt of the AMQP message is accepted automatically as soon as the -consumer’s handler returns upon delivering the message to the -application. - -# Message Payload - -## Overview - -The message payload is passed as a JsonObject with elements representing -various sections of the [AMQP -message](http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#section-message-format). - -The top-level elements supported are: - -**body**: The content for the body section of the AMQP message. -**body\_type**: An optional String used to indicate whether the "body" -element represents an AmqpValue (default), Data, or AmqpSequence -section. The values used are "value", "data", and "sequence" -respectively. **header**: An optional JsonObject representing the -elements of the message Header section. Expanded below. **properties**: -An optional JsonObject representing the elements of the message -Properties section. Expanded below. **application\_properties**: An -optional JsonObject containing any application defined -properties(/headers). **message\_annotations**: An optional JsonObject -representing any message annotations. - -The elements of the optional "header" sub-element are: - -**durable**: optional boolean indicating whether the message is durable -(default false). **priority**: optional short indicating the message -priority (default 4). **ttl**: optional long indicating ttl in -milliseconds (no default). See also 'properties' absolute expiry time. -**first\_acquirer**: boolean indicating if this is the first acquirer of -the message (default false) **delivery\_count**: long indicating the -number of previous *failed* delivery attempts for message. - -The elements of the optional "properties" sub-element are: - -**to**: optional string with address message is being sent to (no -default). **reply\_to**: optional string with address for replies (no -default). Set automatically when sent with reply handler. -**message\_id**: optional string with message id (no default). Set -automatically when sending with reply handler. **correlation\_id**: -optional string with correlation id (no default). Set automatically when -implicit reply is sent. **subject**: optional string with message -subject (no default). **group\_id**: optional string with message group -id (no default). **group\_sequence**: optional long with message group -sequence (no default). **reply\_to\_group\_id**: optional string with -message reply to group id (no default). **content\_type**: optional -string with message content type (no default). Only for use with Data -body sections. **content\_encoding**: optional string with message -content encoding (no default). **creation\_time**: optional long with -message creation time in milliseconds since the unix epoch (no default). -**absolute\_expiry\_time**: optional long with absolute expiry time as -milliseconds since the unix epoch (no default). **user\_id**: optional -string with the id of the user sending the message (no default). - -## Application Properties - -To send a message with application properties, the -"application\_properties" element is added to the payload, containing a -JsonObject whose contents represent the application property entries, -which have string keys and a object representing a simple value such as -String, Boolean, Integer, etc. For example, adding a property to a sent -message could look something like: - -``` js -let applicationProperties = { -}; -applicationProperties.name = "value"; - -let amqpMsgPayload = { -}; -amqpMsgPayload.application_properties = applicationProperties; - -producer.send(amqpMsgPayload); -``` - -When receiving a message with application properties, the -"application\_properties" element is added to the JsonObject payload -returned, containing a JsonObject whose contents represent the -application property entries. For example, retrieving an -application-property from a received message might look like: - -``` js -// Check the application properties section was present before use, it may not be -let appProps = amqpMsgPayload.application_properties; -if ((appProps !== null && appProps !== undefined)) { - let propValue = appProps.propertyName; -} -``` - -# Flow Control - -Message transfer between peers, such as clients and servers, is governed -by credit in AMQP 1.0, with receiving peers granting sending peers a -number of credits to allow them to send messages. As each message is -sent a unit of credit is used up, with the receiving peer needing to -replenish the senders credit over time in order for message delivery to -progress. This allows for recipients to flow control senders by -governing the amount of outstanding credit available. - -## Producers - -While a MessageProducer will buffer outgoing messages if there are -insufficient credits to send them all immediately, and then send them -once credit is granted, it is typically more desirable for the -application to work in tandem with the producer and attempt to send only -what it knows can actually currently be sent. - -This is possible by inspecting whether the producer write queue is full, -i.e it currently has no credit to send: - -``` js -producer.writeQueueFull(); -``` - -This check can be used in concert with a handler that can be registered -to receive callbacks whenever the producer receives more credit and is -able to send messages immediately rather than buffer them: - -``` js -producer.drainHandler((v) => { - // ...do stuff and send... -}); -``` - -## Consumers - -In the case of a MessageConsumer, the bridge automatically gives 1000 -credits to the sending peer when the consumer handler is registered, and -replenishes this credit automatically as messages are delivered to the -handler. It is possible to adjust the amount of credit given initially -(the value must be at least 1) by adjusting the maximum buffered message -value before registering a handler, for example: - -``` js -consumer.setMaxBufferedMessages(5); -consumer.handler((msg) => { - // ...handle received messages... -}); -``` - -# Connecting using SSL - -You can also optionally supply `AmqpBridgeOptions` when creating the -bridge in order to configure various options, the most typically used of -which are around behaviour for SSL connections. - -The following is an example of using configuration to create a bridge -connecting to a server using SSL, authenticating with a username and -password, and supplying a PKCS12 based trust store to verify trust of -the server certificate: - -``` js -import { AmqpBridge } from "@vertx/amqp-bridge" -let bridgeOptions = new AmqpBridgeOptions(); -bridgeOptions.ssl = true; - -let trustOptions = new PfxOptions() - .setPath("path/to/pkcs12.truststore") - .setPassword("password"); -bridgeOptions.pfxTrustOptions = trustOptions; - -let bridge = AmqpBridge.create(vertx, bridgeOptions); -bridge.start("localhost", 5672, "username", "password", (res) => { - // ..do things with the bridge.. -}); -``` - -The following is an example of using configuration to create a bridge -connecting to a server requiring SSL Client Certificate Authentication, -supplying both a PKCS12 based trust store to verify trust of the server -certificate and also a PKCS12 based key store containing an SSL key and -certificate the server can use to verify the client: - -``` js -import { AmqpBridge } from "@vertx/amqp-bridge" -let bridgeOptions = new AmqpBridgeOptions(); -bridgeOptions.ssl = true; - -let trustOptions = new PfxOptions() - .setPath("path/to/pkcs12.truststore") - .setPassword("password"); -bridgeOptions.pfxTrustOptions = trustOptions; - -let keyCertOptions = new PfxOptions() - .setPath("path/to/pkcs12.keystore") - .setPassword("password"); -bridgeOptions.pfxKeyCertOptions = keyCertOptions; - -let bridge = AmqpBridge.create(vertx, bridgeOptions); -bridge.start("localhost", 5672, (res) => { - // ..do things with the bridge.. -}); -``` - -# Sending and Receiving replies. - -Like many messaging protocols, AMQP includes support for a reply-to -address to be set on each message sent so that recipients can be told -where to send any responses required. The vert.x `Message` objects also -support the concept of a reply address, though when using the Event Bus -the sender doesn’t set it explicitly, and it is instead populated -implicitly if a message is sent with a reply `Handler`. This section -describes how the bridge handles sending and receiving AMQP messages -with reply-to while using the Vert.x producer, consumer, and message -APIs implemented by the bridge. - -## Sent messages seeking a reply. - -There are two options when sending messages to which responses are -required: - - - Populate the AMQP reply-to address of the outgoing message - explicitly. - - - Provide a reply handler when sending to populate it implicitly. - -With the first option, you may explicitly populate the "reply\_to" -element of the message "properties" section, as outlined in the [message -payload overview](#message_payload). Here you would provide a string -containing the name of the AMQP address on the server to which -recipients should direct their responses, typically a named queue to -which you have already established a consumer to receive the replies. -This route may be necessary if you need to receive multiple replies to a -given sent AMQP message. - -With the second option a reply `Handler` may also be given in addition -to the message payload when sending a message, to be registered such -that it is invoked when a \[single\] response message is received for -the message being sent. - -To facilitate this, upon startup the bridge internally creates a -consumer from a server-named dynamic address, the name of which it then -uses as the reply-to address on any AMQP messages sent when a -replyHandler was given. The bridge also populates the *message-id* of -the outgoing AMQP message, and uses this value to keep track of the -reply handler. Incoming messages on the internal 'reply consumer' have -their *correlation-id* values inspected in order to match them to the -reply handler originally given, requiring that reply senders populate -the *correlation-id* field with the *message-id* of the original -message. - -The following shows the process for the second option: - -![producer reply handler](./producer-reply-handler.png) - -1. The producer is used to send a message to an AMQP address, providing - a reply handler. - -2. The bridge send implementation populates the *reply-to* and - *message-id* fields of the outgoing AMQP message, records the - handler, and sends the message to the server. - -3. The receiving application (perhaps also a Vert.x AMQP bridge) - consumes the message and sends a reply to its *reply-to* address, - setting its *correlation-id* field as the original messages - *message-id*. - -4. The server dispatches the reply message to the internal 'reply - consumer' of the bridge. - -5. The bridge processes the AMQP message, creating the Vert.x Message - with JsonObject body, uses the *correlation-id* value to match it - with the reply handler, and then invokes the handler with the reply - message. - -The following is a basic example of sending a message and providing a -reply-handler to process the response: - -``` js -let amqpMsgPayload = { -}; -amqpMsgPayload.body = "myRequest"; - -producer.send(amqpMsgPayload, (res) => { - let amqpReplyMessagePayload = res.result().body(); - // ...do something with reply message... -}); -``` - -## Received messages seeking a reply. - -When a message arrives, its replyAddress may be inspected. If the AMQP -message had its *reply-to* field populated, then the address given will -be returned from the Vert.x message replyAddress method. If no -*reply-to* value was present on the message, the value returned will be -null. - -There are two options when receiving messages to which responses are -required: - - - Populate the AMQP reply-to address of an outgoing message sent - explicitly using a producer. - - - Send a reply using the Message reply method. - -With the first option, you may explicitly populate the "reply\_to" -element of the message "properties" section, as outlined in the [message -payload overview](#message_payload), and send it explicitly using a -producer established to the address using the bridge. - -With the second option, a reply message may be sent by calling the reply -method on the Vert.x message object. The reply method implementation -ensures that the outgoing message *correlation-id* is populated -appropriately using the *message-id* of the original message, such that -the response can be matched in the case the original message was sent -from a Vert.x AMQP bridge producer with a reply handler provided. - -The following outlines the process for both routes, of receiving a -message sent by an application (not shown), and sending a reply: - -![consumer reply](./consumer-reply.png) - -1. The server sends an AMQP message to the consumer, with a reply-to - value set to another address. - -2. The bridge processes the AMQP message, creating the Vert.x Message - with JsonObject body. The Message replyAddress is set to the - reply-to value from the AMQP message. - -3. The Message is passed to the consumer Handler, which processes it, - inspecting the replyAddress and preparing to send a response. - -4. The handler chooses to either send a reply using an explicit - producer, or call the reply method on the message object. - -5. The reply message arrives at the response address on the server, - ready to be sent to a reply consumer for the original sending - application . - -The following is a basic example of sending a reply using the message -reply method: - -``` js -consumer.handler((msg) => { - // ...do something with received message...then reply... - let replyAddress = msg.replyAddress(); - if ((replyAddress !== null && replyAddress !== undefined)) { - let amqpReplyMessagePayload = { - }; - amqpReplyMessagePayload.body = "myResponse"; - - msg.reply(amqpReplyMessagePayload); - } -}); -``` diff --git a/docs/manual/@vertx/amqp-bridge/producer-reply-handler.png b/docs/manual/@vertx/amqp-bridge/producer-reply-handler.png deleted file mode 100644 index 3f8ed84aba0d66432e61d7fb694086b93f77c6de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13736 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 - -``` xml - - io.vertx - vertx-auth-common - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-auth-common:${maven.version}' -``` - -# Basic concepts - -*Authentication* means verifying the identity of a user. - -*Authorisation* means verifying a user has an authority. - -What the authority means is determined by the particular implementation -and we don’t mandate any particular model, e.g. a permissions/roles -model, to keep things very flexible. - -For some implementations an authority might represent a permission, for -example the authority to access all printers, or a specific printer. -Other implementations must support roles too, and will often represent -this by prefixing the authority with something like `role:`, e.g. -`role:admin`. Another implementation might have a completely different -model of representing authorities. - -To find out what a particular auth provider expects, consult the -documentation for that auth provider.. - -# Authentication - -To authenticate a user you use `authenticate`. - -The first argument is a JSON object which contains authentication -information. What this actually contains depends on the specific -implementation; for a simple username/password based authentication it -might contain something like: - - { - "username": "tim" - "password": "mypassword" - } - -For an implementation based on JWT token or OAuth bearer tokens it might -contain the token information. - -Authentication occurs asynchronously and the result is passed to the -user on the result handler that was provided in the call. The async -result contains an instance of `User` which represents the authenticated -user and contains operations which allow the user to be authorised. - -Here’s an example of authenticating a user using a simple -username/password implementation: - -``` js -let authInfo = { - "username" : "tim", - "password" : "mypassword" -}; - -authProvider.authenticate(authInfo, (res) => { - if (res.succeeded()) { - - let user = res.result(); - - console.log("User " + user.principal() + " is now authenticated"); - - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Authorisation - -Once you have an `User` instance you can call methods on it to authorise -it. - -to check if a user has a specific authority you use `isAuthorised`. - -The results of all the above are provided asynchronously in the handler. - -Here’s an example of authorising a user: - -``` js -user.isAuthorized("printers:printer1234", (res) => { - if (res.succeeded()) { - - let hasAuthority = res.result(); - - if (hasAuthority) { - console.log("User has the authority"); - } else { - console.log("User does not have the authority"); - } - - } else { - res.cause().printStackTrace(); - } -}); -``` - -And another example of authorising in a roles based model which uses -`role:` as a prefix. - -Please note, as discussed above how the authority string is interpreted -is completely determined by the underlying implementation and Vert.x -makes no assumptions here. - -## Caching authorities - -The user object will cache any authorities so subsequently calls to -check if it has the same authorities will result in the underlying -provider being called. - -In order to clear the internal cache you can use `clearCache`. - -## The User Principal - -You can get the Principal corresponding to the authenticated user with -`principal`. - -What this returns depends on the underlying implementation. - -# Creating your own auth implementation - -If you wish to create your own auth provider you should implement the -`AuthProvider` interface. - -We provide an abstract implementation of user called `AbstractUser` -which you can subclass to make your user implementation. This contains -the caching logic so you don’t have to implement that yourself. - -If you wish your user objects to be clusterable you should make sure -they implement `ClusterSerializable`. - -# Pseudo Random Number Generator - -Since Secure Random from java can block during the acquisition of -entropy from the system, we provide a simple wrapper around it that can -be used without the danger of blocking the event loop. - -By default this PRNG uses a mixed mode, blocking for seeding, non -blocking for generating. The PRNG will also reseed every 5 minutes with -64bits of new entropy. However this can all be configured using the -system properties: - - - io.vertx.ext.auth.prng.algorithm e.g.: SHA1PRNG - - - io.vertx.ext.auth.prng.seed.interval e.g.: 1000 (every second) - - - io.vertx.ext.auth.prng.seed.bits e.g.: 128 - -Most users should not need to configure these values unless if you -notice that the performance of your application is being affected by the -PRNG algorithm. - -## Sharing Pseudo Random Number Generator - -Since the Pseudo Random Number Generator objects are expensive in -resources, they consume system entropy which is a scarce resource it can -be wise to share the PRNG’s across all your handlers. In order to do -this and to make this available to all languages supported by Vert.x you -should look into the `VertxContextPRNG`. - -This interface relaxes the lifecycle management of PRNG’s for the end -user and ensures it can be reused across all your application, for -example: - -``` js -import { VertxContextPRNG } from "@vertx/auth-common" -// Generate a secure token of 32 bytes as a base64 string -let token = VertxContextPRNG.current(vertx).nextString(32); -// Generate a secure random integer -let randomInt = VertxContextPRNG.current(vertx).nextInt(); -``` - -@author \Julien Viet\ -@author \Tim Fox\ diff --git a/docs/manual/@vertx/auth-htdigest/index.md b/docs/manual/@vertx/auth-htdigest/index.md deleted file mode 100644 index d6179b2bc..000000000 --- a/docs/manual/@vertx/auth-htdigest/index.md +++ /dev/null @@ -1,90 +0,0 @@ -# .htdigest Auth Provider implementation - -We provide an implementation of `AuthProvider` which uses the .digest -file format to perform authentication. The provider will not watch for -updates to the file after loading. If you need dynamic user management -it would be more convenient to use dynamic providers such as jdbc or -mongo providers. - -To use this project, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-auth-htdigest - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-auth-htdigest:${maven.version}' -``` - -To create an instance you first need an .htdigest file. This file is -created using the apache htdigest tool. - -Once you’ve got one of these you can create a `HtdigestAuth` instance as -follows: - -``` js -import { HtdigestAuth } from "@vertx/auth-htdigest" -let authProvider = HtdigestAuth.create(vertx, ".htdigest"); -``` - -Once you’ve got your instance you can authenticate with it just like any -`AuthProvider`. - -The out of the box config assumes the usage of the file .htdigest in the -root of the project. - -# Authentication - -When authenticating using this implementation, it assumes that the -digest authorization header is parsed as a JSON object which we refer -from now on as authentication info: - -``` js -let authInfo = { - "username" : "Mufasa", - "realm" : "testrealm@host.com", - "nonce" : "dcd98b7102dd2f0e8b11d0f600bfb0c093", - "method" : "GET", - "uri" : "/dir/index.html", - "response" : "6629fae49393a05397450978507c4ef1" -}; - -authProvider.authenticate(authInfo, (res) => { - if (res.succeeded()) { - let user = res.result(); - } else { - // Failed! - } -}); -``` - -# Provider internal behavior - -The provider will load the specified .htdigest file at start time and -will not watch for modifications. If you require dynamic reloads, you -will need to restart the provider. - -The implementation does not have any other state than the digest file -itself, this means that validation and generation of `nonce` strings and -counters must be handled outside this provider. - -Finally `auth-int` `qop` is not supported to avoid having to consume -potential large blobs of data in order to validate the hash of the full -request. This is usually also not present on modern web browsers. - -If validating if a user has a particular permission it will always -return false since the htdigest file is a pure authentication mechanism -and not authorization. diff --git a/docs/manual/@vertx/auth-htpasswd/dataobjects.md b/docs/manual/@vertx/auth-htpasswd/dataobjects.md deleted file mode 100644 index 074a50758..000000000 --- a/docs/manual/@vertx/auth-htpasswd/dataobjects.md +++ /dev/null @@ -1,9 +0,0 @@ -# HtpasswdAuthOptions - -Options configuring htpasswd authentication. - -| | | | -| ------------------- | --------- | ----------- | -| Name | Type | Description | -| `@htpasswdFile` | `String` | \- | -| `@plainTextEnabled` | `Boolean` | \- | diff --git a/docs/manual/@vertx/auth-htpasswd/index.md b/docs/manual/@vertx/auth-htpasswd/index.md deleted file mode 100644 index a59850ae9..000000000 --- a/docs/manual/@vertx/auth-htpasswd/index.md +++ /dev/null @@ -1,62 +0,0 @@ -# htpasswd Auth Provider implementation - -\ We provide an implementation of `AuthProvider` which uses the -Apache htpasswd file format to perform authentication. The provider will -not watch for updates to the file after loading. If you need dynamic -user management it would be more convenient to use dynamic providers -such as jdbc or mongo providers. \ To use this project, add the -following dependency to the *dependencies* section of your build -descriptor: \ \* Maven (in your `pom.xml`): \ - -``` xml - -io.vertx -vertx-auth-htpasswd -${maven.version} - -``` - -\ \* Gradle (in your `build.gradle` file): \ - -``` groovy -compile 'io.vertx:vertx-auth-htpasswd:${maven.version}' -``` - -\ To create an instance you first need an htpasswd file. This file -is created using the apache htpasswd tool. \ Once you’ve got one of -these you can create a `HtpasswdAuth` instance as follows: \ - -``` js -import { HtpasswdAuth } from "@vertx/auth-htpasswd" -let authProvider = HtpasswdAuth.create(vertx, new HtpasswdAuthOptions()); -``` - -\ Once you’ve got your instance you can authenticate with it just -like any `AuthProvider`. \ The out of the box config assumes the -usage of the file htpasswd in the root of the project. \ == Provider -internal behavior \ The provider will load the specified htpasswd -file at start time and will not watch for modifications. If you require -dynamic reloads, you will need to restart the provider. \ The -implementation does not have any other state than the htpasswd file -itself. \ == Authentication \ When authenticating using this -implementation, it assumes that the username and password are parsed as -a JSON object which we refer from now on as authentication info: \ - -``` js -let authInfo = { - "username" : "someUser", - "password" : "somePassword" -}; - -authProvider.authenticate(authInfo, (res) => { - if (res.succeeded()) { - let user = res.result(); - } else { - // Failed! - } -}); -``` - -\ == Autorization \ Apache htpasswd file is a pure -authentication mechanism and not authorization. This means that -permission checks will always be `false`. diff --git a/docs/manual/@vertx/auth-jdbc/dataobjects.md b/docs/manual/@vertx/auth-jdbc/dataobjects.md deleted file mode 100644 index c26e1915b..000000000 --- a/docs/manual/@vertx/auth-jdbc/dataobjects.md +++ /dev/null @@ -1,14 +0,0 @@ -# JDBCAuthOptions - -Options configuring JDBC authentication. - -| | | | -| ---------------------- | ------------- | ------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@authenticationQuery` | `String` | Set the authentication query to use. Use this if you want to override the default authentication query. | -| `@config` | `Json object` | The configuration of the JDBC client: refer to the Vert.x JDBC Client configuration. | -| `@datasourceName` | `String` | Set the data source name to use, only use in shared mode. | -| `@permissionsQuery` | `String` | Set the permissions query to use. Use this if you want to override the default permissions query. | -| `@rolesPrefix` | `String` | Set the role prefix to distinguish from permissions when checking for isPermitted requests. | -| `@rolesQuery` | `String` | Set the roles query to use. Use this if you want to override the default roles query. | -| `@shared` | `Boolean` | Set whether the JDBC client is shared or non shared. | diff --git a/docs/manual/@vertx/auth-jdbc/index.md b/docs/manual/@vertx/auth-jdbc/index.md deleted file mode 100644 index a3441d739..000000000 --- a/docs/manual/@vertx/auth-jdbc/index.md +++ /dev/null @@ -1,316 +0,0 @@ -# JDBC Auth Provider implementation - -We provide an implementation of `AuthProvider` which uses the Vert.x -`JDBCClient` to perform authentication and authorisation against any -JDBC compliant database. To use this project, add the following -dependency to the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-auth-jdbc - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-auth-jdbc:${maven.version}' -``` - -To create an instance you first need an instance of `JDBCClient`. To -learn how to create one of those please consult the documentation for -the JDBC client. - -Once you’ve got one of those you can create a `JDBCAuth` instance as -follows: - -``` js -import { JDBCClient } from "@vertx/jdbc-client" -import { JDBCAuth } from "@vertx/auth-jdbc" - -let jdbcClient = JDBCClient.createShared(vertx, jdbcClientConfig); - -let authProvider = JDBCAuth.create(vertx, jdbcClient); -``` - -Once you’ve got your instance you can authenticate and authorise with it -just like any `AuthProvider`. - -The out of the box config assumes certain queries for authentication and -authorisation, these can easily be changed with the operations -`setAuthenticationQuery`, `setPermissionsQuery` and `setRolesQuery`, if -you want to use them with a different database schema. - -The default implementation assumes that the password is stored in the -database as a SHA-512 hash after being concatenated with a salt. It also -assumes the salt is stored in the table too. - -The basic data definition for the storage should look like this: - -``` sql --- --- Take this script with a grain of salt and adapt it to your RDBMS --- -CREATE TABLE `user` ( - `username` VARCHAR(255) NOT NULL, - `password` VARCHAR(255) NOT NULL, - `password_salt` VARCHAR(255) NOT NULL -); - -CREATE TABLE `user_roles` ( - `username` VARCHAR(255) NOT NULL, - `role` VARCHAR(255) NOT NULL -); - -CREATE TABLE `roles_perms` ( - `role` VARCHAR(255) NOT NULL, - `perm` VARCHAR(255) NOT NULL -); - -ALTER TABLE user ADD CONSTRAINT `pk_username` PRIMARY KEY (username); -ALTER TABLE user_roles ADD CONSTRAINT `pk_user_roles` PRIMARY KEY (username, role); -ALTER TABLE roles_perms ADD CONSTRAINT `pk_roles_perms` PRIMARY KEY (role); - -ALTER TABLE user_roles ADD CONSTRAINT fk_username FOREIGN KEY (username) REFERENCES user(username); -ALTER TABLE user_roles ADD CONSTRAINT fk_roles FOREIGN KEY (role) REFERENCES roles_perms(role); -``` - -The current password hashing strategy is based on the SHA-512 algorithm. -OWASP as of 2018-01-08 recommends the usage of stronger algorithms, for -this case you can use the PBKDF2 strategy (OWASP recommendation). - -> **Warning** -> -> If you already have a running application switching the strategies -> will make break your existing passwords, so you will need to migrate -> the passwords from one algorithm to the second. - -If you want to override this behaviour you can do so by providing an -alternative hash strategy and setting it with `setHashStrategy`. - -> **Warning** -> -> It is advised to always store your passwords as hashes in your -> database tables which have been created with a salt which should be -> stored in the row too. A strong hashing algorithm should be used. It -> is strongly advised never to store your passwords as plain text. - -# Vertx Auth JDBC and GDPR - -GDPR is a regulation from the common European Union law. It -overrides/supercedes national data protection laws and extents the -previously existing directives. This section of the manual is by no -means a thorough walkthrough of the regulation, it is just a small -summary how this component adheres to the requirements. Companies not -adhering to the requirements can be fined on 4% of the turnover or 20 -million euro. Therefore we want to make sure that as a user of Vert.x -Auth JDBC you’re are on the good track to comply. - -The law defines certain terminology: - - - Data Subject - Person whose personal data is processed (e.g.: User) - - - Personal Data - Any data about an identifiable or identified person - - - Data Processing - Any operation (manual or automated) on personal - data - - - Controller - The entity (company) that requests and uses the data - - - Processors - Any entity that processes data on behalf of a - controller (e.g.: cloud service provider) - -GDPR defines the following functionality: - - - "Forget me" - Right to erasure - - - Mark profile as restricted - Right to restriction of processing - - - Export data - Right to portability - - - Allow profile editing - Right to rectification - - - See all my data - Right to access - - - Consent checkboxes - - - Age checks - - - Data destruction - Data minimization principle - -This module complies to the GDPR law by not storing any identifiable -information about a data subject. The only reference is the username -which is not linked to any personal data. - -In order to add personal data to your application you should create your -own data schema and use the username column as a foreign key to your -data. As a tip you should have a boolean flag to mark the personal data -as restricted to comply to the right to restriction of processing which -means that if you need to handle the data, e.g.: send a bulk email from -a mailing list you are not allowed to do so if the flag is true. - -The right to erasure does not mean that you must wipe all records from -your application, e.g.: in a bank this right cannot be used to erase a -running loan or debt. You are allowed to keep your application data but -must erase the personal data. In case of Vert.x Auth JDBC you should -delete your table but can still use a foreign key to the username as -long as is not possible to link the username to the personal data. - -Important note is that this must survive backups\! As a tip backup the -data, and data erasure on different archives so they can be replayed -individually. - -# Hashing passwords - -Like any application there will be a time where you need to store new -users into the database. Has you have learn passwords are not stored in -plain text but hashed according to the hashing strategy. The same -strategy is required to hash new password before storing it to the -database. Doing it is a 3 step task. - -1. Generate a salt string - -2. Hash the password given the salt string - -3. Store it to the database - - - -``` js -let salt = auth.generateSalt(); -let hash = auth.computeHash("sausages", salt); -// save to the database -conn.updateWithParams("INSERT INTO user VALUES (?, ?, ?)", [ - "tim", - hash, - salt -], (res) => { - if (res.succeeded()) { - // success! - } -}); -``` - -> **Warning** -> -> Hashing user password with salt can be not enough, this approach his -> good enough for avoiding rainbow tables attacks or precomputed table -> attacks but if the attacker gets the database it will be easier to -> setup a brute force attack. This kind of attack is slower but all -> required information is given: the hash and the salt. - -To make the hash attack more complex the default strategy allows you to -provide an application level list of nonces to be used in the -computation. This list should not be stored in the database since it add -an extra variable to the computation that is unknown, making the brute -force attack as potentially the only way to crack the hash. You might -want to refresh the nonces now and then so you should add and never -remove entries to the list, for example: - -``` js -auth.setNonces([ - "random_hash_1", - "random_hash_1" -]); -``` - -In order to decode there is no change required to the code, however to -generate a new user you must specify which nonce (by it’s index) you -want to use. If you look at the previous example, the usage is quite -similar: - -1. Generate a salt string - -2. Hash the password given the salt string and choosen nonce - -3. Store it to the database - - - -``` js -auth.setNonces([ - "random_hash_1", - "random_hash_1" -]); - -let salt = auth.generateSalt(); -// we will pick the second nonce -let hash = auth.computeHash("sausages", salt, 1); -// save to the database -conn.updateWithParams("INSERT INTO user VALUES (?, ?, ?)", [ - "tim", - hash, - salt -], (res) => { - if (res.succeeded()) { - // success! - } -}); -``` - -# Authentication - -When authenticating using this implementation, it assumes `username` and -`password` fields are present in the authentication info: - -``` js -let authInfo = { - "username" : "tim", - "password" : "sausages" -}; - -authProvider.authenticate(authInfo, (res) => { - if (res.succeeded()) { - let user = res.result(); - } else { - // Failed! - } -}); -``` - -# Authorisation - Permission-Role Model - -Although Vert.x auth itself does not mandate any specific model of -permissions (they are just opaque strings), this implementation assumes -a familiar user/role/permission model, where a user can have zero or -more roles and a role can have zero or more permissions. - -If validating if a user has a particular permission simply pass the -permission into. `isAuthorised` as follows: - -``` js -user.isAuthorized("commit_code", (res) => { - if (res.succeeded()) { - let hasPermission = res.result(); - } else { - // Failed to - } -}); -``` - -If validating that a user has a particular *role* then you should prefix -the argument with the role prefix. - -``` js -user.isAuthorized("role:manager", (res) => { - if (res.succeeded()) { - let hasRole = res.result(); - } else { - // Failed to - } -}); -``` - -The default role prefix is `role:`. You can change this with -`setRolePrefix`. - -@author \Julien Viet\ -@author \Tim Fox\ diff --git a/docs/manual/@vertx/auth-jwt/dataobjects.md b/docs/manual/@vertx/auth-jwt/dataobjects.md deleted file mode 100644 index 288a6bb1d..000000000 --- a/docs/manual/@vertx/auth-jwt/dataobjects.md +++ /dev/null @@ -1,47 +0,0 @@ -# JWTAuthOptions - -Options describing how an JWT Auth should behave. - -| | | | -| ---------------------- | --------------------------- | ----------- | -| Name | Type | Description | -| `@jwks` | `Array of Json object` | \- | -| `@jwtOptions` | `JWTOptions` | \- | -| `@keyStore` | `KeyStoreOptions` | \- | -| `@permissionsClaimKey` | `String` | \- | -| `@pubSecKeys` | `Array of PubSecKeyOptions` | \- | -| `@secrets` | `Array of SecretOptions` | \- | - -# JWTKeyStoreOptions - -Options describing how an JWT KeyStore should behave. - -| | | | -| ----------- | -------- | ----------- | -| Name | Type | Description | -| `@password` | `String` | \- | -| `@path` | `String` | \- | -| `@type` | `String` | \- | - -# JWTOptions - -Options related to creation of new tokens. If any expiresInMinutes, -audience, subject, issuer are not provided, there is no default. The jwt -generated won't include those properties in the payload. Generated JWTs -will include an iat claim by default unless noTimestamp is specified. - -| | | | -| ------------------- | ----------------- | ----------- | -| Name | Type | Description | -| `@algorithm` | `String` | \- | -| `@audience` | `Array of String` | \- | -| `@audiences` | `Array of String` | \- | -| `@expiresInMinutes` | `Number (int)` | \- | -| `@expiresInSeconds` | `Number (int)` | \- | -| `@header` | `Json object` | \- | -| `@ignoreExpiration` | `Boolean` | \- | -| `@issuer` | `String` | \- | -| `@leeway` | `Number (int)` | \- | -| `@noTimestamp` | `Boolean` | \- | -| `@permissions` | `Array of String` | \- | -| `@subject` | `String` | \- | diff --git a/docs/manual/@vertx/auth-jwt/index.md b/docs/manual/@vertx/auth-jwt/index.md deleted file mode 100644 index 4d03d1d4e..000000000 --- a/docs/manual/@vertx/auth-jwt/index.md +++ /dev/null @@ -1,541 +0,0 @@ -# The JWT auth provider - -This component contains an out of the box a JWT implementation. To use -this project, add the following dependency to the *dependencies* section -of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-auth-jwt - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-auth-jwt:${maven.version}' -``` - -JSON Web Token is a simple way to send information in the clear (usually -in a URL) whose contents can be verified to be trusted. JWT are well -suited for scenarios as: - - - In a Single Sign-On scenario where you want a separate - authentication server that can then send user information in a - trusted way. - - - Stateless API servers, very well suited for single page - applications. - - - etc…​ - -Before deciding on using JWT, it’s important to note that JWT does not -encrypt the payload, it only signs it. You should not send any secret -information using JWT, rather you should send information that is not -secret but needs to be verified. For instance, sending a signed user id -to indicate the user that should be logged in would work great\! Sending -a user’s password would be very, very bad. - -Its main advantages are: - - - It allows you to verify token authenticity. - - - It has a json body to contain any variable amount of data you want. - - - It’s completely stateless. - -To create an instance of the provider you use `JWTAuth`. You specify the -configuration in a JSON object. - -Here’s an example of creating a JWT auth provider: - -``` java -import { JWTAuth } from "@vertx/auth-jwt" - -let config = new JWTAuthOptions() - .setKeyStore(new KeyStoreOptions() - .setPath("keystore.jceks") - .setPassword("secret")); - -let provider = JWTAuth.create(vertx, config); -``` - -A typical flow of JWT usage is that in your application you have one end -point that issues tokens, this end point should be running in SSL mode, -there after you verify the request user, say by its username and -password you would do: - -``` java -import { JWTAuth } from "@vertx/auth-jwt" - -let config = new JWTAuthOptions() - .setKeyStore(new KeyStoreOptions() - .setPath("keystore.jceks") - .setPassword("secret")); - -let provider = JWTAuth.create(vertx, config); - -// on the verify endpoint once you verify the identity of the user by its username/password -if ("paulo" == username && "super_secret" == password) { - let token = provider.generateToken({ - "sub" : "paulo" - }, new JWTOptions()); - // now for any request to protected resources you should pass this string in the HTTP header Authorization as: - // Authorization: Bearer -} -``` - -## Loading Keys - -Loading keys can be performed in 3 different ways: - - - Using secrets (symmetric keys) - - - Using OpenSSL `pem` formatted files (pub/sec keys) - - - Using Java Keystore files (both symmetric and pub/sec keys) - -It is recommended to avoid java keystores, as java keystores are complex -to generate and make many assumptions in order to choose the right key -for the authenticator. - -### Using Symmetric Keys - -The default signature method for JWT’s is known as `HS256`. `HS` stands -in this case for `HMAC Signature using SHA256`. - -This is the simplest key to load. All you need is a secret that is -shared between you and the 3rd party, for example assume that the secret -is: `keyboard cat` then you can configure your Auth as: - -``` java -import { JWTAuth } from "@vertx/auth-jwt" -let provider = JWTAuth.create(vertx, new JWTAuthOptions() - .setPubSecKeys([new PubSecKeyOptions() - .setAlgorithm("HS256") - .setPublicKey("keyboard cat") - .setSymmetric(true)])); - -let token = provider.generateToken({ -}); -``` - -In this case the secret is configured as a public key, as it is a token -that is known to both parties and you configure your PubSec key as being -symmetric. - -### Using RSA keys - -This section is by no means a manual on OpenSSL and a read on OpenSSL -command line usage is advised. We will cover how to generate the most -common keys and how to use them with JWT auth. - -Imagine that you would like to protect your application using the very -common `RS256` JWT algorithm. Contrary to some belief, 256 is not the -key length but the hashing algorithm signature length. Any RSA key can -be used with this JWT algorithm. Here is an information table: - -| "alg" Param Value | Digital Signature Algorithm | -| ----------------- | ------------------------------------ | -| *RS256* | **RSASSA-PKCS1-v1\_5 using SHA-256** | -| *RS384* | **RSASSA-PKCS1-v1\_5 using SHA-384** | -| *RS512* | **RSASSA-PKCS1-v1\_5 using SHA-512** | - -If you would like to generate a 2048bit RSA key pair, then you would do -(please remember **not** to add a passphrase otherwise you will not be -able to read the private key in the JWT auth): - - openssl genrsa -out private.pem 2048 - -You can observe that the key is correct as the file content is similar -to this: - - -----BEGIN RSA PRIVATE KEY----- - MIIEowIBAAKCAQEAxPSbCQY5mBKFDIn1kggvWb4ChjrctqD4nFnJOJk4mpuZ/u3h - ... - e4k0yN3F1J1DVlqYWJxaIMzxavQsi9Hz4p2JgyaZMDGB6kGixkMo - -----END RSA PRIVATE KEY----- - -The standard JDK cannot read this file as is, so we **must** convert it -to PKCS8 format first: - - openssl pkcs8 -topk8 -inform PEM -in private.pem -out private_key.pem -nocrypt - -Now the new file `private_key.pem` which resembles the original one -contains: - - -----BEGIN PRIVATE KEY----- - MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDE9JsJBjmYEoUM - ... - 0fPinYmDJpkwMYHqQaLGQyg= - -----END PRIVATE KEY----- - -If we are verifying tokens only (you will only need the private\_key.pem -file) however at some point you will need to issue tokens too, so you -will a public key. In this case you need to extract the public key from -the private key file: - - openssl rsa -in private.pem -outform PEM -pubout -out public.pem - -And you should see that the content of the file is similar to this: - - -----BEGIN PUBLIC KEY----- - MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxPSbCQY5mBKFDIn1kggv - ... - qwIDAQAB - -----END PUBLIC KEY----- - -Now you can use this to issue or validate tokens: - -``` java -import { JWTAuth } from "@vertx/auth-jwt" -let provider = JWTAuth.create(vertx, new JWTAuthOptions() - .setPubSecKeys([new PubSecKeyOptions() - .setAlgorithm("RS256") - .setPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxPSbCQY5mBKFDIn1kggv\nWb4ChjrctqD4nFnJOJk4mpuZ/u3h2ZgeKJJkJv8+5oFO6vsEwF7/TqKXp0XDp6IH\nbyaOSWdkl535rCYR5AxDSjwnuSXsSp54pvB+fEEFDPFF81GHixepIbqXCB+BnCTg\nN65BqwNn/1Vgqv6+H3nweNlbTv8e/scEgbg6ZYcsnBBB9kYLp69FSwNWpvPmd60e\n3DWyIo3WCUmKlQgjHL4PHLKYwwKgOHG/aNl4hN4/wqTixCAHe6KdLnehLn71x+Z0\nSyXbWooftefpJP1wMbwlCpH3ikBzVIfHKLWT9QIOVoRgchPU3WAsZv/ePgl5i8Co\nqwIDAQAB") - .setSecretKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDE9JsJBjmYEoUM\nifWSCC9ZvgKGOty2oPicWck4mTiam5n+7eHZmB4okmQm/z7mgU7q+wTAXv9Oopen\nRcOnogdvJo5JZ2SXnfmsJhHkDENKPCe5JexKnnim8H58QQUM8UXzUYeLF6khupcI\nH4GcJOA3rkGrA2f/VWCq/r4fefB42VtO/x7+xwSBuDplhyycEEH2Rgunr0VLA1am\n8+Z3rR7cNbIijdYJSYqVCCMcvg8cspjDAqA4cb9o2XiE3j/CpOLEIAd7op0ud6Eu\nfvXH5nRLJdtaih+15+kk/XAxvCUKkfeKQHNUh8cotZP1Ag5WhGByE9TdYCxm/94+\nCXmLwKirAgMBAAECggEAeQ+M+BgOcK35gAKQoklLqZLEhHNL1SnOhnQd3h84DrhU\nCMF5UEFTUEbjLqE3rYGP25mdiw0ZSuFf7B5SrAhJH4YIcZAO4a7ll23zE0SCW+/r\nzr9DpX4Q1TP/2yowC4uGHpBfixxpBmVljkWnai20cCU5Ef/O/cAh4hkhDcHrEKwb\nm9nymKQt06YnvpCMKoHDdqzfB3eByoAKuGxo/sbi5LDpWalCabcg7w+WKIEU1PHb\nQi+RiDf3TzbQ6TYhAEH2rKM9JHbp02TO/r3QOoqHMITW6FKYvfiVFN+voS5zzAO3\nc5X4I+ICNzm+mnt8wElV1B6nO2hFg2PE9uVnlgB2GQKBgQD8xkjNhERaT7f78gBl\nch15DRDH0m1rz84PKRznoPrSEY/HlWddlGkn0sTnbVYKXVTvNytKSmznRZ7fSTJB\n2IhQV7+I0jeb7pyLllF5PdSQqKTk6oCeL8h8eDPN7awZ731zff1AGgJ3DJXlRTh/\nO6zj9nI8llvGzP30274I2/+cdwKBgQDHd/twbiHZZTDexYewP0ufQDtZP1Nk54fj\nEpkEuoTdEPymRoq7xo+Lqj5ewhAtVKQuz6aH4BeEtSCHhxy8OFLDBdoGCEd/WBpD\nf+82sfmGk+FxLyYkLxHCxsZdOb93zkUXPCoCrvNRaUFO1qq5Dk8eftGCdC3iETHE\n6h5avxHGbQKBgQCLHQVMNhL4MQ9slU8qhZc627n0fxbBUuhw54uE3s+rdQbQLKVq\nlxcYV6MOStojciIgVRh6FmPBFEvPTxVdr7G1pdU/k5IPO07kc6H7O9AUnPvDEFwg\nsuN/vRelqbwhufAs85XBBY99vWtxdpsVSt5nx2YvegCgdIj/jUAU2B7hGQKBgEgV\nsCRdaJYr35FiSTsEZMvUZp5GKFka4xzIp8vxq/pIHUXp0FEz3MRYbdnIwBfhssPH\n/yKzdUxcOLlBtry+jgo0nyn26/+1Uyh5n3VgtBBSePJyW5JQAFcnhqBCMlOVk5pl\n/7igiQYux486PNBLv4QByK0gV0SPejDzeqzIyB+xAoGAe5if7DAAKhH0r2M8vTkm\nJvbCFjwuvhjuI+A8AuS8zw634BHne2a1Fkvc8c3d9VDbqsHCtv2tVkxkKXPjVvtB\nDtzuwUbp6ebF+jOfPK0LDuJoTdTdiNjIcXJ7iTTI3cXUnUNWWphYnFogzPFq9CyL\n0fPinYmDJpkwMYHqQaLGQyg=")])); - -let token = provider.generateToken({ -}, new JWTOptions() - .setAlgorithm("RS256")); -``` - -Do note that all the lines `-----BEGIN …​` and `-----END…​` should be -stripped from the string to be passed to the configuration. - -### Using EC keys - -Elliptic Curse keys are also supported, however the default JDK has some -limitations on the features that can be used. - -The usage is very similar to RSA, first you create a private key: - - openssl ecparam -name secp256r1 -genkey -out private.pem - -So you will get something similar to this: - - -----BEGIN EC PARAMETERS----- - BggqhkjOPQMBBw== - -----END EC PARAMETERS----- - -----BEGIN EC PRIVATE KEY----- - MHcCAQEEIMZGaqZDTHL+IzFYEWLIYITXpGzOJuiQxR2VNGheq7ShoAoGCCqGSM49 - AwEHoUQDQgAEG1O9LCrP6hg3Y9q68+LF0q48UcOkwVKE1ax0b56wjVusf3qnuFO2 - /+XHKKhtzEavvFMeXRQ+ZVEqM0yGNb04qw== - -----END EC PRIVATE KEY----- - -However the JDK prefers PKCS8 format so we must convert: - - openssl pkcs8 -topk8 -nocrypt -in private.pem -out private_key.pem - -Which will give you a key similar to this: - - -----BEGIN PRIVATE KEY----- - MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgxkZqpkNMcv4jMVgR - YshghNekbM4m6JDFHZU0aF6rtKGhRANCAAQbU70sKs/qGDdj2rrz4sXSrjxRw6TB - UoTVrHRvnrCNW6x/eqe4U7b/5ccoqG3MRq+8Ux5dFD5lUSozTIY1vTir - -----END PRIVATE KEY----- - -Using the private key you can already generate tokens: - -``` java -import { JWTAuth } from "@vertx/auth-jwt" -let provider = JWTAuth.create(vertx, new JWTAuthOptions() - .setPubSecKeys([new PubSecKeyOptions() - .setAlgorithm("ES256") - .setSecretKey("MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeRyEfU1NSHPTCuC9\nrwLZMukaWCH2Fk6q5w+XBYrKtLihRANCAAStpUnwKmSvBM9EI+W5QN3ALpvz6bh0\nSPCXyz5KfQZQuSj4f3l+xNERDUDaygIUdLjBXf/bc15ur2iZjcq4r0Mr")])); - -let token = provider.generateToken({ -}, new JWTOptions() - .setAlgorithm("ES256")); -``` - -So in order to validate the tokens you will need a public key: - - openssl ec -in private.pem -pubout -out public.pem - -So you can do all operations with it: - -``` java -import { JWTAuth } from "@vertx/auth-jwt" -let provider = JWTAuth.create(vertx, new JWTAuthOptions() - .setPubSecKeys([new PubSecKeyOptions() - .setAlgorithm("ES256") - .setPublicKey("MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEraVJ8CpkrwTPRCPluUDdwC6b8+m4\ndEjwl8s+Sn0GULko+H95fsTREQ1A2soCFHS4wV3/23Nebq9omY3KuK9DKw==\n") - .setSecretKey("MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgeRyEfU1NSHPTCuC9\nrwLZMukaWCH2Fk6q5w+XBYrKtLihRANCAAStpUnwKmSvBM9EI+W5QN3ALpvz6bh0\nSPCXyz5KfQZQuSj4f3l+xNERDUDaygIUdLjBXf/bc15ur2iZjcq4r0Mr")])); - -let token = provider.generateToken({ -}, new JWTOptions() - .setAlgorithm("ES256")); -``` - -### The JWT keystore file - -If you prefer to use Java Keystores, then you can do it either. - -This auth provider requires a keystore in the classpath or in the -filesystem with either a `javax.crypto.Mac` or a -`java.security.Signature` in order to sign and verify the generated -tokens. - -The implementation will, by default, look for the following aliases, -however not all are required to be present. As a good practice `HS256` -should be present: - - `HS256`:: HMAC using SHA-256 hash algorithm - `HS384`:: HMAC using SHA-384 hash algorithm - `HS512`:: HMAC using SHA-512 hash algorithm - `RS256`:: RSASSA using SHA-256 hash algorithm - `RS384`:: RSASSA using SHA-384 hash algorithm - `RS512`:: RSASSA using SHA-512 hash algorithm - `ES256`:: ECDSA using P-256 curve and SHA-256 hash algorithm - `ES384`:: ECDSA using P-384 curve and SHA-384 hash algorithm - `ES512`:: ECDSA using P-521 curve and SHA-512 hash algorithm - -When no keystore is provided the implementation falls back in unsecure -mode and signatures will not be verified, this is useful for the cases -where the payload if signed and or encrypted by external means. - -#### Generate a new Keystore file - -The only required tool to generate a keystore file is `keytool`, you can -now specify which algorithms you need by running: - - keytool -genseckey -keystore keystore.jceks -storetype jceks -storepass secret -keyalg HMacSHA256 -keysize 2048 -alias HS256 -keypass secret - keytool -genseckey -keystore keystore.jceks -storetype jceks -storepass secret -keyalg HMacSHA384 -keysize 2048 -alias HS384 -keypass secret - keytool -genseckey -keystore keystore.jceks -storetype jceks -storepass secret -keyalg HMacSHA512 -keysize 2048 -alias HS512 -keypass secret - keytool -genkey -keystore keystore.jceks -storetype jceks -storepass secret -keyalg RSA -keysize 2048 -alias RS256 -keypass secret -sigalg SHA256withRSA -dname "CN=,OU=,O=,L=,ST=,C=" -validity 360 - keytool -genkey -keystore keystore.jceks -storetype jceks -storepass secret -keyalg RSA -keysize 2048 -alias RS384 -keypass secret -sigalg SHA384withRSA -dname "CN=,OU=,O=,L=,ST=,C=" -validity 360 - keytool -genkey -keystore keystore.jceks -storetype jceks -storepass secret -keyalg RSA -keysize 2048 -alias RS512 -keypass secret -sigalg SHA512withRSA -dname "CN=,OU=,O=,L=,ST=,C=" -validity 360 - keytool -genkeypair -keystore keystore.jceks -storetype jceks -storepass secret -keyalg EC -keysize 256 -alias ES256 -keypass secret -sigalg SHA256withECDSA -dname "CN=,OU=,O=,L=,ST=,C=" -validity 360 - keytool -genkeypair -keystore keystore.jceks -storetype jceks -storepass secret -keyalg EC -keysize 384 -alias ES384 -keypass secret -sigalg SHA384withECDSA -dname "CN=,OU=,O=,L=,ST=,C=" -validity 360 - keytool -genkeypair -keystore keystore.jceks -storetype jceks -storepass secret -keyalg EC -keysize 521 -alias ES512 -keypass secret -sigalg SHA512withECDSA -dname "CN=,OU=,O=,L=,ST=,C=" -validity 360 - -## Read only tokens - -If you need to consume JWT tokens issues by third parties you probably -won’t have the private key with you, in that case all you need to have -is a public key im PEM format. - -``` js -import { JWTAuth } from "@vertx/auth-jwt" - -let config = new JWTAuthOptions() - .setPubSecKeys([new PubSecKeyOptions() - .setAlgorithm("RS256") - .setPublicKey("BASE64-ENCODED-PUBLIC_KEY")]); - -let provider = JWTAuth.create(vertx, config); -``` - -# AuthN/AuthZ with JWT - -A common scenario when developing for example micro services is that you -want you application to consume APIs. These api’s are not meant to be -consumed by humans so we should remove all the interactive part of -authenticating the consumer out of the picture. - -In this scenario one can use HTTP as the protocol to consume this API -and the HTTP protocol already defines that there is a header -`Authorization` that should be used for passing authorization -information. In most cases you will see that tokens are sent as bearer -tokens, i.e.: `Authorization: Bearer some+base64+string`. - -## Authenticating (AuthN) - -For this provider a user is authenticated if the token passes the -signature checks and that the token is not expired. For this reason it -is imperative that private keys are kept private and not copy pasted -across project since it would be a security hole. - -``` js -// This string is what you see after the string "Bearer" in the -// HTTP Authorization header -jwtAuth.authenticate({ - "jwt" : "BASE64-ENCODED-STRING" -}, (res) => { - if (res.succeeded()) { - let theUser = res.result(); - } else { - // Failed! - } -}); -``` - -In a nutshell the provider is checking for several things: - - - token signature is valid against internal private key - - - fields: `exp`, `iat`, `nbf`, `audience`, `issuer` are valid - according to the config - -If all these are valid then the token is considered good and a user -object is returned. - -While the fields `exp`, `iat` and `nbf` are simple timestamp checks only -`exp` can be configured to be ignored: - -``` js -// This string is what you see after the string "Bearer" in the -// HTTP Authorization header - -// In this case we are forcing the provider to ignore the `exp` field -jwtAuth.authenticate({ - "jwt" : "BASE64-ENCODED-STRING", - "options" : { - "ignoreExpiration" : true - } -}, (res) => { - if (res.succeeded()) { - let theUser = res.result(); - } else { - // Failed! - } -}); -``` - -In order to verify the `aud` field one needs to pass the options like -before: - -``` js -// This string is what you see after the string "Bearer" in the -// HTTP Authorization header - -// In this case we are forcing the provider to ignore the `exp` field -jwtAuth.authenticate({ - "jwt" : "BASE64-ENCODED-STRING", - "options" : { - "audience" : [ - "paulo@server.com" - ] - } -}, (res) => { - if (res.succeeded()) { - let theUser = res.result(); - } else { - // Failed! - } -}); -``` - -And the same for the issuer: - -``` js -// This string is what you see after the string "Bearer" in the -// HTTP Authorization header - -// In this case we are forcing the provider to ignore the `exp` field -jwtAuth.authenticate({ - "jwt" : "BASE64-ENCODED-STRING", - "options" : { - "issuer" : "mycorp.com" - } -}, (res) => { - if (res.succeeded()) { - let theUser = res.result(); - } else { - // Failed! - } -}); -``` - -## Authorizing (AuthZ) - -Once a token is parsed and is valid we can use it to perform -authorization tasks. The most simple is to verify if a user has a -specific authority. In this case one needs to to: - -``` js -user.isAuthorized("create-report", (res) => { - if (res.succeeded() && res.result()) { - // Yes the user can create reports - } -}); -``` - -By default the provider will lookup under the key `permissions` but like -the other providers one can extend the concept to authorities to roles -by using the `:` as a splitter, so `role:authority` can be used to -lookup the token. - -Since JWT are quite free form and there is no standard on where to -lookup for the claims the location can be configured to use something -else than `permissions`, for example one can even lookup under a path -like this: - -``` js -import { JWTAuth } from "@vertx/auth-jwt" - -let config = { - "public-key" : "BASE64-ENCODED-PUBLIC_KEY", - "permissionsClaimKey" : "realm_access/roles" -}; - -let provider = JWTAuth.create(vertx, config); -``` - -So in this example we configure the JWT to work with Keycloak token -format. In this case the claims will be checked under the path -`realm_access/roles` rather than `permissions`. - -## Validating Tokens - -When the method `authenticate` is invoked, the token is validated -against the `JWTOptions` provided during the initialization. The -validation performs the following steps: - -1. if `ignoreExpiration` (default is false) is false then the token is - checked for expiration, this will check the fields: `exp`, `iat` and - `nbf`. Since sometimes clocks are not reliable, it is possible to - configure some `leeway` to be applied to the dates so we allow some - grace period if the dates are outside the required limits. - -2. if `audience` is provided, then the token `aud` is checked against - the configured one and all configured audiences must be in the - token. - -3. if `issuer` is configured, then the tokens `iss` is checked against - the configured one. - -Once these validations complete a JWTUser object is then returned, the -object is configured with a reference to the permission claims key -provided in the configuration. This value is used later when doing -authorization. The value corresponds to the json path where authorities -should be checked. - -## Customizing Token Generation - -In the same way tokens are validated, the generation is initially -configured during the initialization. - -When generating a token an optional extra parameter can be supplied to -control the token generation, this is a `JWTOptions` object. The token -signature algorithm (default HS256) can be configured using the property -`algorithm`. In this case a lookup for a key that corresponds to the -algorithm is performed and used to sign. - -Token headers can be added by specifying any extra headers to be merged -with the default ones using the options `headers` property. - -Sometimes it might be useful to issue tokens without a timestamp (test, -development time for example) in this case the property `noTimestamp` -should be set to true (default false). This means that there is no `iat` -field in the token. - -Token expiration is controlled by the property `expiresInSeconds`, by -default there is no expiration. Other control fields `audience`, -`issuer` and `subject` are then picked from the config is available and -added to the token metadata. - -Finally the token is signed and encoded in the correct format. - -@author \Julien Viet\ -@author \Tim Fox\ @author \Paulo Lopes\ diff --git a/docs/manual/@vertx/auth-mongo/dataobjects.md b/docs/manual/@vertx/auth-mongo/dataobjects.md deleted file mode 100644 index 2f427f341..000000000 --- a/docs/manual/@vertx/auth-mongo/dataobjects.md +++ /dev/null @@ -1,18 +0,0 @@ -# MongoAuthOptions - -Options configuring Mongo authentication. - -| | | | -| -------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@collectionName` | `String` | The property name to be used to set the name of the collection inside the config. | -| `@config` | `Json object` | The mongo client configuration: see Mongo Client documentation. | -| `@datasourceName` | `String` | The mongo data source name: see Mongo Client documentation. | -| `@passwordField` | `String` | The property name to be used to set the name of the field, where the password is stored inside | -| `@permissionField` | `String` | The property name to be used to set the name of the field, where the permissions are stored inside. | -| `@roleField` | `String` | The property name to be used to set the name of the field, where the roles are stored inside. | -| `@saltField` | `String` | The property name to be used to set the name of the field, where the SALT is stored inside. | -| `@saltStyle` | `HashSaltStyle` | The property name to be used to set the name of the field, where the salt style is stored inside | -| `@shared` | `Boolean` | Use a shared Mongo client or not. | -| `@usernameCredentialField` | `String` | The property name to be used to set the name of the field, where the username for the credentials is stored inside. | -| `@usernameField` | `String` | The property name to be used to set the name of the field, where the username is stored inside. | diff --git a/docs/manual/@vertx/auth-mongo/enums.md b/docs/manual/@vertx/auth-mongo/enums.md deleted file mode 100644 index 517ecf225..000000000 --- a/docs/manual/@vertx/auth-mongo/enums.md +++ /dev/null @@ -1,34 +0,0 @@ -# HashAlgorithm - - ---- - - - - - - - - - - - - - - -

Name

Description

SHA512

The default algorithm for backward compatible systems.

-

Should not be used for new projects as OWASP recommends stronger hashing algorithms.

PBKDF2

Stronger hashing algorithm, recommended by OWASP as of 2018.

- -# HashSaltStyle - -Password hash salt configuration. - -| | | -| ---------- | ---------------------------------------------------------------------------------------------------- | -| Name | Description | -| `NO_SALT` | Password hashes are not salted | -| `COLUMN` | Salt is in a separate column for each user in the database | -| `EXTERNAL` | Salt is NOT stored in the database, but defined as external value like application preferences or so | diff --git a/docs/manual/@vertx/auth-mongo/index.md b/docs/manual/@vertx/auth-mongo/index.md deleted file mode 100644 index 90c42ae8c..000000000 --- a/docs/manual/@vertx/auth-mongo/index.md +++ /dev/null @@ -1,231 +0,0 @@ -# Mongo Auth Provider implementation - -We provide an implementation of `AuthProvider` which uses the Vert.x -`MongoClient` to perform authentication and authorisation against a -MongoDb. - -To use this project, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-auth-mongo - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-auth-mongo:${maven.version}' -``` - -To create an instance you first need an instance of `MongoClient`. To -learn how to create one of those please consult the documentation for -the MongoClient. - -Once you’ve got one of those you can create a `MongoAuth` instance as -follows: - -``` js -import { MongoClient } from "@vertx/mongo-client" -import { MongoAuth } from "@vertx/auth-mongo" -let client = MongoClient.createShared(vertx, mongoClientConfig); -let authProperties = { -}; -let authProvider = MongoAuth.create(client, authProperties); -``` - -Once you’ve got your instance you can authenticate and authorise with it -just like any `AuthProvider`. - -The out of the box config assumes the usage of the collection with name -"user", the username stored and read by field "username" some others. - -In order to avoid duplicates of user names your "user" collection should -have a unique index on "username". In order to do this you should run -the following snippet on your mongo server: - - db.user.createIndex( { username: 1 }, { unique: true } ) - -The reason you should add the index is that due to the nature of mongo -doing a query first to verify if a username is already taken and then -insert a document cannot be run as an atomic action. Using the index the -code will try to insert the row and fail if duplicate. - -You can also change all the defaults for the mongo collection and column -names using any of the methods: - -`setCollectionName` `setUsernameField` `setPasswordField` -`setPermissionField` `setRoleField` if you want to adapt that to your -needs. - -The default implementation assumes that the password is stored in the -database as a SHA-512 hash after being concatenated with a salt. It also -assumes the salt is stored in the table too. The field, where the salt -is stored can be set by `setSaltField`, the default is "salt". You are -able to change this behaviour by using `setSaltStyle`. The HashStrategy -you can retrieve by `getHashStrategy`. By using this, you are able to -set: `NO_SALT` by which passwords are not crypted and stored in -cleartext. ( see the warning below\! ) `COLUMN`, which will create a -salt per user and store this inside the defined column of the user. ( -see the warning below\! ) `EXTERNAL`, which will store only the crypted -password in the database and will use a salt from external, which you -will have to set by `setExternalSalt` - -If you want to override this behaviour you can do so by providing an -alternative hash strategy and setting it with `setHashStrategy` - -> **Warning** -> -> It is strongly advised to use the `EXTERNAL` option. The NO\_SALT -> option is existing for development phase only and even the COLUMN -> option is not recommended, cause salt and password are stored inside -> the same place\! - -> **Warning** -> -> As of 2018 OWASP recommends the usage of stronger encryption -> algorithms to hash user passwords for this case you can change from -> the default (preserved for backwards-compatibility) to PBKDF2. For new -> projects this should be the standard. - -``` js -import { MongoClient } from "@vertx/mongo-client" -import { MongoAuth } from "@vertx/auth-mongo" -let client = MongoClient.createShared(vertx, mongoClientConfig); -let authProperties = { -}; -let authProvider = MongoAuth.create(client, authProperties); -authProvider.setHashAlgorithm(HashAlgorithm.PBKDF2); -``` - -# Vertx Auth JDBC and GDPR - -GDPR is a regulation from the common European Union law. It -overrides/supercedes national data protection laws and extents the -previously existing directives. This section of the manual is by no -means a thorough walkthrough of the regulation, it is just a small -summary how this component adheres to the requirements. Companies not -adhering to the equirements can be fined on 4% of the turnover or 20 -million euro. Therefore we want to make sure that as a user of Vert.x -Auth JDBC you’re are on the good track to comply. - -The law defines certain terminology: - - - Data Subject - Person whose personal data is processed (e.g.: User) - - - Personal Data - Any data about an identifiable or identified person - - - Data Processing - Any operation (manual or automated) on personal - data - - - Controller - The entity (company) that requests and uses the data - - - Processors - Any entity that processes data on behalf of a - controller (e.g.: cloud service provider) - -GDPR defines the following functionality: - - - "Forget me" - Right to erasure - - - Mark profile as restricted - Right to restriction of processing - - - Export data - Right to portability - - - Allow profile editing - Right to rectification - - - See all my data - Right to access - - - Consent checkboxes - - - Age checks - - - Data destruction - Data minimization principle - -This module complies to the GDPR law by not storing any identifiable -information about a data subject. The only reference is the username -which is not linked to any personal data. - -In order to add personal data to your application you should create your -own data schema and use the username column as a reference to your data. -As a tip you should have a boolean flag to mark the personal data as -restricted to comply to the right to restriction of processing which -means that if you need to handle the data, e.g.: send a bulk email from -a mailing list you are not allowed to do so if the flag is true. - -The right to erasure does not mean that you must wipe all records from -your application, e.g.: in a bank this right cannot be used to erase a -running loan or debt. You are allowed to keep your application data but -must erase the personal data. In case of Vert.x Auth JDBC you should -delete your table but can still use a reference to the username as long -as is not possible to link the username to the personal data. - -Important note is that this must survive backups\! As a tip backup the -data, and data erasure on different archives so they can be replayed -individually. - -# Authentication - -When authenticating using this implementation, it assumes `username` and -`password` fields are present in the authentication info: - -``` js -let authInfo = { - "username" : "tim", - "password" : "sausages" -}; -authProvider.authenticate(authInfo, (res) => { - if (res.succeeded()) { - let user = res.result(); - } else { - // Failed! - } -}); -``` - -Instead of the `username` and `password` field names used in the -previous snippet, you should use: `setUsernameCredentialField` and -`setPasswordCredentialField` - -# Authorisation - Permission-Role Model - -Although Vert.x auth itself does not mandate any specific model of -permissions (they are just opaque strings), this implementation assumes -a familiar user/role/permission model, where a user can have zero or -more roles and a role can have zero or more permissions. - -If validating if a user has a particular permission simply pass the -permission into. `isAuthorised` as follows: - -``` js -user.isAuthorized("commit_code", (res) => { - if (res.succeeded()) { - let hasPermission = res.result(); - } else { - // Failed to - } -}); -``` - -If validating that a user has a particular *role* then you should prefix -the argument with the role prefix. - -``` js -import { MongoAuth } from "@vertx/auth-mongo" - -user.isAuthorized(MongoAuth.ROLE_PREFIX + "manager", (res) => { - if (res.succeeded()) { - let hasRole = res.result(); - } else { - // Failed to - } -}); -``` diff --git a/docs/manual/@vertx/auth-oauth2/dataobjects.md b/docs/manual/@vertx/auth-oauth2/dataobjects.md deleted file mode 100644 index 4e0a4d1ea..000000000 --- a/docs/manual/@vertx/auth-oauth2/dataobjects.md +++ /dev/null @@ -1,106 +0,0 @@ -# OAuth2ClientOptions - -Options describing how an OAuth2 will make connections. - -| | | | -| --------------------------------------------- | --------------------------- | --------------------------------------------------------------------- | -| Name | Type | Description | -| `@alpnVersions` | `Array of HttpVersion` | \- | -| `@authorizationPath` | `String` | Get the Oauth2 authorization resource path. e.g.: /oauth/authorize | -| `@clientID` | `String` | Set the provider client id | -| `@clientSecret` | `String` | Set the provider client secret | -| `@clientSecretParameterName` | `String` | Override the HTTP form field name for client secret | -| `@connectTimeout` | `Number (int)` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@decoderInitialBufferSize` | `Number (int)` | \- | -| `@defaultHost` | `String` | \- | -| `@defaultPort` | `Number (int)` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@extraParameters` | `Json object` | Set extra parameters to be sent to the provider on each request | -| `@flow` | `OAuth2FlowType` | \- | -| `@forceSni` | `Boolean` | \- | -| `@headers` | `Json object` | Set custom headers to be sent with every request to the provider | -| `@http2ClearTextUpgrade` | `Boolean` | \- | -| `@http2ConnectionWindowSize` | `Number (int)` | \- | -| `@http2KeepAliveTimeout` | `Number (int)` | \- | -| `@http2MaxPoolSize` | `Number (int)` | \- | -| `@http2MultiplexingLimit` | `Number (int)` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@initialSettings` | `Http2Settings` | \- | -| `@introspectionPath` | `String` | Set the provider token introspection resource path | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@jwkPath` | `String` | \- | -| `@jwtOptions` | `JWTOptions` | \- | -| `@keepAlive` | `Boolean` | \- | -| `@keepAliveTimeout` | `Number (int)` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@localAddress` | `String` | \- | -| `@logActivity` | `Boolean` | \- | -| `@logoutPath` | `String` | Set the provider logout path | -| `@maxChunkSize` | `Number (int)` | \- | -| `@maxHeaderSize` | `Number (int)` | \- | -| `@maxInitialLineLength` | `Number (int)` | \- | -| `@maxPoolSize` | `Number (int)` | \- | -| `@maxRedirects` | `Number (int)` | \- | -| `@maxWaitQueueSize` | `Number (int)` | \- | -| `@maxWebSocketFrameSize` | `Number (int)` | \- | -| `@maxWebSocketMessageSize` | `Number (int)` | \- | -| `@maxWebsocketFrameSize` | `Number (int)` | \- | -| `@maxWebsocketMessageSize` | `Number (int)` | \- | -| `@metricsName` | `String` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@pipelining` | `Boolean` | \- | -| `@pipeliningLimit` | `Number (int)` | \- | -| `@poolCleanerPeriod` | `Number (int)` | \- | -| `@protocolVersion` | `HttpVersion` | \- | -| `@proxyOptions` | `ProxyOptions` | \- | -| `@pubSecKeys` | `Array of PubSecKeyOptions` | The provider PubSec key options | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@revocationPath` | `String` | Set the Oauth2 revocation resource path. e.g.: /oauth/revoke | -| `@scopeSeparator` | `String` | Set the provider scope separator | -| `@sendBufferSize` | `Number (int)` | \- | -| `@sendUnmaskedFrames` | `Boolean` | \- | -| `@site` | `String` | Root URL for the provider | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@tokenPath` | `String` | Get the Oauth2 token resource path. e.g.: /oauth/token | -| `@trafficClass` | `Number (int)` | \- | -| `@trustAll` | `Boolean` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@tryUseCompression` | `Boolean` | \- | -| `@tryUsePerFrameWebSocketCompression` | `Boolean` | \- | -| `@tryUsePerFrameWebsocketCompression` | `Boolean` | \- | -| `@tryUsePerMessageWebSocketCompression` | `Boolean` | \- | -| `@tryUsePerMessageWebsocketCompression` | `Boolean` | \- | -| `@tryWebSocketDeflateFrameCompression` | `Boolean` | \- | -| `@tryWebsocketDeflateFrameCompression` | `Boolean` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@useBasicAuthorizationHeader` | `Boolean` | Flag to use HTTP basic auth header with client id, client secret. | -| `@usePooledBuffers` | `Boolean` | \- | -| `@userAgent` | `String` | Set a custom user agent to use when communicating to a provider | -| `@userInfoParameters` | `Json object` | Set custom parameters to be sent during the userInfo resource request | -| `@userInfoPath` | `String` | Set the provider userInfo resource path | -| `@validateIssuer` | `Boolean` | \- | -| `@verifyHost` | `Boolean` | \- | -| `@webSocketCompressionAllowClientNoContext` | `Boolean` | \- | -| `@webSocketCompressionLevel` | `Number (int)` | \- | -| `@webSocketCompressionRequestServerNoContext` | `Boolean` | \- | -| `@websocketCompressionAllowClientNoContext` | `Boolean` | \- | -| `@websocketCompressionLevel` | `Number (int)` | \- | -| `@websocketCompressionRequestServerNoContext` | `Boolean` | \- | diff --git a/docs/manual/@vertx/auth-oauth2/enums.md b/docs/manual/@vertx/auth-oauth2/enums.md deleted file mode 100644 index 371c2dc28..000000000 --- a/docs/manual/@vertx/auth-oauth2/enums.md +++ /dev/null @@ -1,11 +0,0 @@ -# OAuth2FlowType - -OAuth2 Flows - -| | | -| ----------- | ----------- | -| Name | Description | -| `AUTH_CODE` | \- | -| `CLIENT` | \- | -| `PASSWORD` | \- | -| `AUTH_JWT` | RFC7523 | diff --git a/docs/manual/@vertx/auth-oauth2/index.md b/docs/manual/@vertx/auth-oauth2/index.md deleted file mode 100644 index 5a6878e31..000000000 --- a/docs/manual/@vertx/auth-oauth2/index.md +++ /dev/null @@ -1,728 +0,0 @@ -# The OAuth2 auth provider - -This component contains an out of the box OAuth2 (and to some extent -OpenID Connect) relying party implementation. To use this project, add -the following dependency to the *dependencies* section of your build -descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-auth-oauth2 - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-auth-oauth2:${maven.version}' -``` - -OAuth2 lets users grant the access to the desired resources to third -party applications, giving them the possibility to enable and disable -those accesses whenever they want. - -Vert.x OAuth2 supports the following flows. - - - Authorization Code Flow (for apps with servers that can store - persistent information). - - - Password Credentials Flow (when previous flow can’t be used or - during development). - - - Client Credentials Flow (the client can request an access token - using only its client credentials) - -The same code will work with OpenID Connect - servers and supports the Discovery -protocol as specified in - . - -## Authorization Code Flow - -The authorization code grant type is used to obtain both access tokens -and refresh tokens and is optimized for confidential clients. As a -redirection-based flow, the client must be capable of interacting with -the resource owner’s user-agent (typically a web browser) and capable of -receiving incoming requests (via redirection) from the authorization -server. - -For more details see [Oauth2 specification, -section 4.1](http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.1). - -## Password Credentials Flow - -The resource owner password credentials grant type is suitable in cases -where the resource owner has a trust relationship with the client, such -as the device operating system or a highly privileged application. The -authorization server should take special care when enabling this grant -type, and only allow it when other flows are not viable. - -The grant type is suitable for clients capable of obtaining the resource -owner’s credentials (username and password, typically using an -interactive form). It is also used to migrate existing clients using -direct authentication schemes such as HTTP Basic or Digest -authentication to OAuth by converting the stored credentials to an -access token. - -For more details see [Oauth2 specification, -section 4.3](http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.3). - -## Client Credentials Flow - -The client can request an access token using only its client credentials -(or other supported means of authentication) when the client is -requesting access to the protected resources under its control, or those -of another resource owner that have been previously arranged with the -authorization server (the method of which is beyond the scope of this -specification). - -The client credentials grant type MUST only be used by confidential -clients. - -For more details see [Oauth2 specification, -section 4.4](http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.4). - -## Extensions - -The provider supports RFC7523 an extension to allow server to server -authorization based on JWT. - -## Getting Started - -An example on how to use this provider and authenticate with GitHub can -be implemented as: - -``` js -import { OAuth2Auth } from "@vertx/auth-oauth2" - -let oauth2 = OAuth2Auth.create(vertx, OAuth2FlowType.AUTH_CODE, new OAuth2ClientOptions() - .setClientID("YOUR_CLIENT_ID") - .setClientSecret("YOUR_CLIENT_SECRET") - .setSite("https://github.com/login") - .setTokenPath("/oauth/access_token") - .setAuthorizationPath("/oauth/authorize")); - -// when there is a need to access a protected resource or call a protected method, -// call the authZ url for a challenge - -let authorization_uri = oauth2.authorizeURL({ - "redirect_uri" : "http://localhost:8080/callback", - "scope" : "notifications", - "state" : "3(#0/!~" -}); - -// when working with web application use the above string as a redirect url - -// in this case GitHub will call you back in the callback uri one should now complete the handshake as: - - -let code = "xxxxxxxxxxxxxxxxxxxxxxxx"; - -oauth2.authenticate({ - "code" : code, - "redirect_uri" : "http://localhost:8080/callback" -}, (res) => { - if (res.failed()) { - // error, the code provided is not valid - } else { - // save the token and continue... - } -}); -``` - -### Authorization Code flow - -The Authorization Code flow is made up from two parts. At first your -application asks to the user the permission to access their data. If the -user approves the OAuth2 server sends to the client an authorization -code. In the second part, the client POST the authorization code along -with its client secret to the authority server in order to get the -access token. - -``` js -import { OAuth2Auth } from "@vertx/auth-oauth2" - -// Set the client credentials and the OAuth2 server -let credentials = new OAuth2ClientOptions() - .setClientID("") - .setClientSecret("") - .setSite("https://api.oauth.com"); - - -// Initialize the OAuth2 Library -let oauth2 = OAuth2Auth.create(vertx, OAuth2FlowType.AUTH_CODE, credentials); - -// Authorization oauth2 URI -let authorization_uri = oauth2.authorizeURL({ - "redirect_uri" : "http://localhost:8080/callback", - "scope" : "", - "state" : "" -}); - -// Redirect example using Vert.x -response.putHeader("Location", authorization_uri).setStatusCode(302).end(); - -let tokenConfig = { - "code" : "", - "redirect_uri" : "http://localhost:3000/callback" -}; - -// Callbacks -// Save the access token -oauth2.authenticate(tokenConfig, (res) => { - if (res.failed()) { - console.error("Access Token Error: " + res.cause().getMessage()); - } else { - // Get the access token object (the authorization code is given from the previous step). - let token = res.result(); - } -}); -``` - -### Password Credentials Flow - -This flow is suitable when the resource owner has a trust relationship -with the client, such as its computer operating system or a highly -privileged application. Use this flow only when other flows are not -viable or when you need a fast way to test your application. - -``` js -import { OAuth2Auth } from "@vertx/auth-oauth2" -import { AccessToken } from "@vertx/auth-oauth2" - -// Initialize the OAuth2 Library -let oauth2 = OAuth2Auth.create(vertx, OAuth2FlowType.PASSWORD); - -let tokenConfig = { - "username" : "username", - "password" : "password" -}; - -// Callbacks -// Save the access token -oauth2.authenticate(tokenConfig, (res) => { - if (res.failed()) { - console.error("Access Token Error: " + res.cause().getMessage()); - } else { - // Get the access token object (the authorization code is given from the previous step). - let token = res.result(); - - token.fetch("/users", (res2) => { - // the user object should be returned here... - }); - } -}); -``` - -### Client Credentials Flow - -This flow is suitable when client is requesting access to the protected -resources under its control. - -``` js -import { OAuth2Auth } from "@vertx/auth-oauth2" - -// Set the client credentials and the OAuth2 server -let credentials = new OAuth2ClientOptions() - .setClientID("") - .setClientSecret("") - .setSite("https://api.oauth.com"); - - -// Initialize the OAuth2 Library -let oauth2 = OAuth2Auth.create(vertx, OAuth2FlowType.CLIENT, credentials); - -let tokenConfig = { -}; - -// Callbacks -// Save the access token -oauth2.authenticate(tokenConfig, (res) => { - if (res.failed()) { - console.error("Access Token Error: " + res.cause().getMessage()); - } else { - // Get the access token object (the authorization code is given from the previous step). - let token = res.result(); - } -}); -``` - -## OpenID Connect Discovery - -There is limited support for OpenID Discovery servers. Using OIDC -Discovery will simplify the configuration of your auth module into a -single line of code, for example, consider setting up your auth using -Google: - -``` js -import { OpenIDConnectAuth } from "@vertx/auth-oauth2" - -OpenIDConnectAuth.discover(vertx, new OAuth2ClientOptions() - .setSite("https://accounts.google.com") - .setClientID("clientId"), (res) => { - if (res.succeeded()) { - // the setup call succeeded. - // at this moment your auth is ready to use and - // google signature keys are loaded so tokens can be decoded and verified. - } else { - // the setup failed. - } -}); -``` - -Behind the scenes a couple of actions are performed: - -1. HTTP get request to the `.well-known/openid-configuration` resource - -2. Validation of the response `issuer` field as mandated by the spec - (the issuer value must match the request one) - -3. If the JWK uri is present, keys are loaded from the server and added - to the auth keychain - -4. the auth module is configure and returned to the user. - -A couple of well known OpenID Connect Discovery providers are: - - - Keycloak: `http://keycloakhost:keycloakport/auth/realms/{realm}` - - - Google: `https://accounts.google.com` - - - SalesForce: `https://login.salesforce.com` - - - Microsoft: `https://login.windows.net/common` - -This and the given `client id` is enough to configure your auth provider -object. - -## AccessToken object - -When a token expires we need to refresh it. OAuth2 offers the -AccessToken class that add a couple of useful methods to refresh the -access token when it is expired. - -``` js -// Check if the token is expired. If expired it is refreshed. -if (token.expired()) { - // Callbacks - token.refresh((res) => { - if (res.succeeded()) { - // success - } else { - // error handling... - } - }); -} -``` - -When you’ve done with the token or you want to log out, you can revoke -the access token and refresh token. - -``` js -// Revoke only the access token -token.revoke("access_token", (res) => { - // Session ended. But the refresh_token is still valid. - - // Revoke the refresh_token - token.revoke("refresh_token", (res1) => { - console.log("token revoked."); - }); -}); -``` - -## Example configuration for common OAuth2 providers - -For convenience there are several helpers to assist your with your -configuration. Currently we provide: - - - Azure Active Directory `AzureADAuth` - - - Box.com `BoxAuth` - - - Dropbox `DropboxAuth` - - - Facebook `FacebookAuth` - - - Foursquare `FoursquareAuth` - - - Github `GithubAuth` - - - Google `GoogleAuth` - - - Instagram `InstagramAuth` - - - Keycloak `KeycloakAuth` - - - LinkedIn `LinkedInAuth` - - - Mailchimp `MailchimpAuth` - - - Salesforce `SalesforceAuth` - - - Shopify `ShopifyAuth` - - - Soundcloud `SoundcloudAuth` - - - Stripe `StripeAuth` - - - Twitter `TwitterAuth` - -### JBoss Keycloak - -When using this Keycloak the provider has knowledge on how to parse -access tokens and extract grants from inside. This information is quite -valuable since it allows to do authorization at the API level, for -example: - -``` js -import { KeycloakAuth } from "@vertx/auth-oauth2" -import { AccessToken } from "@vertx/auth-oauth2" -// you would get this config from the keycloak admin console -let keycloakJson = { - "realm" : "master", - "realm-public-key" : "MIIBIjANBgkqhk...wIDAQAB", - "auth-server-url" : "http://localhost:9000/auth", - "ssl-required" : "external", - "resource" : "frontend", - "credentials" : { - "secret" : "2fbf5e18-b923-4a83-9657-b4ebd5317f60" - } -}; - -// Initialize the OAuth2 Library -let oauth2 = KeycloakAuth.create(vertx, OAuth2FlowType.PASSWORD, keycloakJson); - -// first get a token (authenticate) -oauth2.authenticate({ - "username" : "user", - "password" : "secret" -}, (res) => { - if (res.failed()) { - // error handling... - } else { - let token = res.result(); - - // now check for permissions - token.isAuthorized("account:manage-account", (r) => { - if (r.result()) { - // this user is authorized to manage its account - } - }); - } -}); -``` - -We also provide a helper class for Keycloak so that we can we can easily -retrieve decoded token and some necessary data (e.g. -`preferred_username`) from the Keycloak principal. For example: - -``` js -import { KeycloakHelper } from "@vertx/auth-oauth2" -// you can get the decoded `id_token` from the Keycloak principal -let idToken = KeycloakHelper.idToken(principal); - -// you can also retrieve some properties directly from the Keycloak principal -// e.g. `preferred_username` -let username = KeycloakHelper.preferredUsername(principal); -``` - -Please remember that Keycloak **does** implement OpenID Connect, so you -can configure it just by using it’s discovery url: - -``` js -import { OpenIDConnectAuth } from "@vertx/auth-oauth2" - -OpenIDConnectAuth.discover(vertx, new OAuth2ClientOptions() - .setSite("http://server:port/auth/realms/your_realm") - .setClientID("clientId"), (res) => { - if (res.succeeded()) { - // the setup call succeeded. - // at this moment your auth is ready to use and - // google signature keys are loaded so tokens can be decoded and verified. - } else { - // the setup failed. - } -}); -``` - -Since you can deploy your Keycloak server anywhere, just replace -`server:port` with the correct value and the `your_realm` value with -your application realm. - -### Google Server to Server - -The provider also supports Server to Server or the RFC7523 extension. -This is a feature present on Google with their service account. - -## Token Introspection - -Tokens can be introspected in order to assert that they are still valid. -Although there is RFC7662 for this purpose not many providers implement -it. Instead there are variations also known as `TokenInfo` end points. -The OAuth2 provider will accept both end points as a configuration. -Currently we are known to work with `Google` and `Keycloak`. - -Token introspection assumes that tokens are opaque, so they need to be -validated on the provider server. Every time a token is validated it -requires a round trip to the provider. Introspection can be performed at -the OAuth2 level or at the User level: - -``` js -// OAuth2Auth level -oauth2.introspectToken("opaque string", (res) => { - if (res.succeeded()) { - // token is valid! - let accessToken = res.result(); - } -}); - -// User level -token.introspect((res) => { - if (res.succeeded()) { - // Token is valid! - } -}); -``` - -## Verifying JWT tokens - -We’ve just covered how to introspect a token however when dealing with -JWT tokens one can reduce the amount of trips to the provider server -thus enhancing your overall response times. In this case tokens will be -verified using the JWT protocol at your application side only. Verifying -JWT tokens is cheaper and offers better performance, however due to the -stateless nature of JWTs it is not possible to know if a user is logged -out and a token is invalid. For this specific case one needs to use the -token introspection if the provider supports it. - -``` js -// OAuth2Auth level -oauth2.decodeToken("jwt-token", (res) => { - if (res.succeeded()) { - // token is valid! - let accessToken = res.result(); - } -}); -``` - -Until now we covered mostly authentication, although the implementation -is relying party (that means that the real authentication happens -somewhere else), there is more you can do with the handler. For example -you can also do authorization if the provider is known to support JSON -web tokens. This is a common feature if your provider is a OpenId -Connect provider or if the provider does support \`access\_token\`s as -JWTs. - -Such provider is Keycloak that is a OpenId Connect implementation. In -that case you will be able to perform authorization in a very easy way. - -# Role Based Access Control - -OAuth2 is an AuthN protocol, however OpenId Connect adds JWTs to the -token format which means that AuthZ can be encoded at the token level. -Currently there are 2 known JWT AuthZ known formats: - - - Keycloak - - - MicroProfile JWT 1.1 spec - -## Keycloak JWT - -Given that Keycloak does provide `JWT` \`access\_token\`s one can -authorize at two distinct levels: - - - role - - - authority - -To distinct the two, the auth provider follows the same recommendations -from the base user class, i.e.: use the\`:\` as a separator for the two. -It should be noted that both role and authorities do not need to be -together, in the most simple case an authority is enough. - -In order to map to keycloak’s token format the following checks are -performed: - -1. If no role is provided, it is assumed to the the provider realm name - -2. If the role is `realm` then the lookup happens in `realm_access` - list - -3. If a role is provided then the lookup happends in the - `resource_access` list under the role name - -### Check for a specific authorities - -Here is one example how you can perform authorization after the user has -been loaded from the oauth2 handshake, for example you want to see if -the user can `print` in the current application: - -``` js -user.isAuthorized("print", (res) => { - // in this case it is assumed that the role is the current application - if (res.succeeded() && res.result()) { - // Yes the user can print - } -}); -``` - -However this is quite specific, you might want to verify if the user can -`add-user` to the whole system (the realm): - -``` js -user.isAuthorized("realm:add-user", (res) => { - // the role is "realm" - // the authority is "add-user" - if (res.succeeded() && res.result()) { - // Yes the user can add users to the application - } -}); -``` - -Or if the user can access the `year-report` in the `finance` department: - -``` js -user.isAuthorized("finance:year-report", (res) => { - // the role is "finance" - // the authority is "year-report" - if (res.succeeded() && res.result()) { - // Yes the user can access the year report from the finance department - } -}); -``` - -## MicroProfile JWT 1.1 spec - -Another format in the form of a spec is the MP-JWT 1.1. This spec -defines a JSON array of strings under the property name `groups` that -define the "groups" the token has an authority over. - -In order to use this spec to assert AuthZ the right handler must be set: - -``` js -import { MicroProfileRBAC } from "@vertx/auth-oauth2" -// use the MP-JWT 1.1 spec handler to -// handle Role-Based Access Control (AuthZ) -oauth2Auth.rbacHandler(MicroProfileRBAC.create()); -``` - -# Token Management - -## Check if it is expired - -Tokens are usually fetched from the server and cached, in this case when -used later they might have already expired and be invalid, you can -verify if the token is still valid like this: - -``` js -// internal validation against, expiration date -let isExpired = user.expired(); -``` - -This call is totally offline, it could still happen that the Oauth2 -server invalidated your token but you get a non expired token result. -The reason behind this is that the expiration is checked against the -token expiration dates, not before date and such values. - -## Refresh token - -There are times you know the token is about to expire and would like to -avoid to redirect the user again to the login screen. In this case you -can refresh the token. To refresh a token you need to have already a -user and call: - -``` js -user.refresh((res) => { - if (res.succeeded()) { - // the refresh call succeeded - } else { - // the token was not refreshed, a best practise would be - // to forcefully logout the user since this could be a - // symptom that you're logged out by the server and this - // token is not valid anymore. - } -}); -``` - -## Revoke token - -Since tokens can be shared across various applications you might want to -disallow the usage of the current token by any application. In order to -do this one needs to revoke the token against the Oauth2 server: - -``` js -user.revoke("access_token", (res) => { - if (res.succeeded()) { - // the refresh call succeeded - } else { - // the token was not refreshed, a best practise would be - // to forcefully logout the user since this could be a - // symptom that you're logged out by the server and this - // token is not valid anymore. - } -}); -``` - -It is important to note that this call requires a token type. The reason -is because some providers will return more than one token e.g.: - - - id\_token - - - refresh\_token - - - access\_token - -So one needs to know what token to invalidate. It should be obvious that -if you invalidate the `refresh_token` you’re still logged in but you -won’t be able to refresh anymore, which means that once the token -expires you need to redirect the user again to the login page. - -## Introspect - -Introspect a token is similar to a expiration check, however one needs -to note that this check is fully online. This means that the check -happens on the OAuth2 server. - -``` js -user.introspect((res) => { - if (res.succeeded()) { - // the introspection call succeeded - } else { - // the token failed the introspection. You should proceed - // to logout the user since this means that this token is - // not valid anymore. - } -}); -``` - -Important note is that even if the `expired()` call is `true` the return -from the `introspect` call can still be an error. This is because the -OAuth2 might have received a request to invalidate the token or a -loggout in between. - -## Logging out - -Logging out is not a `Oauth2` feature but it is present on `OpenID -Connect` and most providers do support some sort of logging out. This -provider also covers this area if the configuration is enough to let it -make the call. For the user this is as simple as: - -``` js -user.logout((res) => { - if (res.succeeded()) { - // the logout call succeeded - } else { - // the user might not have been logged out - // to know why: - console.log(res.cause()); - } -}); -``` diff --git a/docs/manual/@vertx/auth-shiro/dataobjects.md b/docs/manual/@vertx/auth-shiro/dataobjects.md deleted file mode 100644 index dd6b00e42..000000000 --- a/docs/manual/@vertx/auth-shiro/dataobjects.md +++ /dev/null @@ -1,10 +0,0 @@ -# ShiroAuthOptions - -Shiro auth configuration options, see Vert.x Auth Shiro component and/or -Apache Shiro project. - -| | | | -| --------- | -------------------- | -------------------------------- | -| Name | Type | Description | -| `@config` | `Json object` | Set the Shiro auth config. | -| `@type` | `ShiroAuthRealmType` | Set the Shiro auth options type. | diff --git a/docs/manual/@vertx/auth-shiro/enums.md b/docs/manual/@vertx/auth-shiro/enums.md deleted file mode 100644 index aedcd275e..000000000 --- a/docs/manual/@vertx/auth-shiro/enums.md +++ /dev/null @@ -1,9 +0,0 @@ -# ShiroAuthRealmType - -The type of the Shiro auth realm - -| | | -| ------------ | --------------------------------------------- | -| Name | Description | -| `PROPERTIES` | The realm is a Shiro properties auth provider | -| `LDAP` | The realm is a Shiro LDAP auth provider | diff --git a/docs/manual/@vertx/auth-shiro/index.md b/docs/manual/@vertx/auth-shiro/index.md deleted file mode 100644 index 88b8fac24..000000000 --- a/docs/manual/@vertx/auth-shiro/index.md +++ /dev/null @@ -1,227 +0,0 @@ -# The Apache Shiro Auth provider implementation - -This is an auth provider implementation that uses [Apache -Shiro](http://shiro.apache.org/). To use this project, add the following -dependency to the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-auth-shiro - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-auth-shiro:${maven.version}' -``` - -We provide out of the box support for properties and LDAP based auth -using Shiro, and you can also plugin in any other Shiro Realm which -expects username and password for credentials. - -To create an instance of the provider you use `ShiroAuth`. You specify -the type of Shiro auth provider that you want with `ShiroAuthRealmType`, -and you specify the configuration in a JSON object. - -Here’s an example of creating a Shiro auth provider by specifying the -type: - -``` java -import { ShiroAuth } from "@vertx/auth-shiro" - -let config = { - "properties_path" : "classpath:test-auth.properties" -}; - -let provider = ShiroAuth.create(vertx, new ShiroAuthOptions() - .setType("PROPERTIES") - .setConfig(config)); -``` - -# Authentication - -When authenticating using this implementation, it assumes `username` and -`password` fields are present in the authentication info: - -``` java -let authInfo = { - "username" : "tim", - "password" : "sausages" -}; - -authProvider.authenticate(authInfo, (res) => { - if (res.succeeded()) { - let user = res.result(); - } else { - // Failed! - } -}); -``` - -# Authorisation - Permission-Role Model - -Although Vert.x auth itself does not mandate any specific model of -permissions (they are just opaque strings), this implementation uses a -familiar user/role/permission model, where a user can have zero or more -roles and a role can have zero or more permissions. - -If validating if a user has a particular permission simply pass the -permission into. `isAuthorised` as follows: - -``` java -user.isAuthorized("newsletter:edit:13", (res) => { - if (res.succeeded()) { - let hasPermission = res.result(); - } else { - // Failed to - } -}); -``` - -If validating that a user has a particular *role* then you should prefix -the argument with the role prefix. - -``` java -user.isAuthorized("role:manager", (res) => { - if (res.succeeded()) { - let hasRole = res.result(); - } else { - // Failed to - } -}); -``` - -The default role prefix is `role:`. You can change this with -`setRolePrefix`. - -## The Shiro properties auth provider - -This auth provider implementation uses Apache Shiro to get -user/role/permission information from a properties file. - -Note that roles are not available directly on the API due to the fact -that vertx-auth tries to be as portable as possible. However one can run -assertions on role by using the prefix `role:` or by specifying the -prefered prefix with `setRolePrefix`. - -The implementation will, by default, look for a file called -`vertx-users.properties` on the classpath. - -If you want to change this, you can use the `properties_path` -configuration element to define how the properties file is found. - -The default value is `classpath:vertx-users.properties`. - -If the value is prefixed with `classpath:` then the classpath will be -searched for a properties file of that name. - -If the value is prefixed with `file:` then it specifies a file on the -file system. - -If the value is prefixed with `url:` then it specifies a URL from where -to load the properties. - -The properties file should have the following structure: - -Each line should either contain the username, password and roles for a -user or the permissions in a role. - -For a user line it should be of the form: - -user.{username}={password},{roleName1},{roleName2},…​,{roleNameN} - -For a role line it should be of the form: - -role.{roleName}={permissionName1},{permissionName2},…​,{permissionNameN} - -Here’s an example: - - user.tim = mypassword,administrator,developer - user.bob = hispassword,developer - user.joe = anotherpassword,manager - role.administrator=* - role.manager=play_golf,say_buzzwords - role.developer=do_actual_work - -When describing roles a wildcard `*` can be used to indicate that the -role has all permissions. - -## The Shiro LDAP auth provider - -The LDAP auth realm gets user/role/permission information from an LDAP -server. - -The following configuration properties are used to configure the LDAP -realm: - - - `ldap_user_dn_template` - this is used to determine the actual lookup to use when looking up a - user with a particular id. An example is - `uid={0},ou=users,dc=foo,dc=com` - the element `{0}` is substituted - with the user id to create the actual lookup. This setting is - mandatory. - - - `ldap_url` - the url to the LDAP server. The url must start with `ldap://` and a - port must be specified. An example is - `ldap://myldapserver.mycompany.com:10389` - - - `ldap_authentication_mechanism` - Sets the type of LDAP authentication mechanism to use when - connecting to the LDAP server. - - - `ldap_context_factory_class_name` - The name of the ContextFactory class to use. This defaults to the - SUN LDAP JNDI implementation but can be overridden to use custom - LDAP factories. - - - `ldap_pooling_enabled` - Sets whether or not connection pooling should be used when possible - and appropriate. - - - `ldap_referral` - Sets the LDAP referral behavior when creating a connection. Defaults - to `follow`. See the Sun/Oracle LDAP referral documentation for - more: - - - - `ldap_system_username` - Sets the system username that will be used when creating an LDAP - connection used for authorization queries. The user must have the - ability to query for authorization data for any application user. - Note that setting this property is not required if the calling LDAP - Realm does not perform authorization checks. - - - `ldap_system_password` - Sets the password of the that will be used when creating an LDAP - connection used for authorization queries. Note that setting this - property is not required if the calling LDAP Realm does not perform - authorization checks. - -For more information, refer to the documentation of -org.apache.shiro.realm.ldap.JndiLdapContextFactory. - -## Using another Shiro Realm - -It’s also possible to create an auth provider instance using a -pre-created Apache Shiro Realm object. - -This is done as follows: - -``` java -import { ShiroAuth } from "@vertx/auth-shiro" - -let provider = ShiroAuth.create(vertx, realm); -``` - -The implementation currently assumes that user/password based -authentication is used. diff --git a/docs/manual/@vertx/bridge-common/dataobjects.md b/docs/manual/@vertx/bridge-common/dataobjects.md deleted file mode 100644 index 86468c639..000000000 --- a/docs/manual/@vertx/bridge-common/dataobjects.md +++ /dev/null @@ -1,21 +0,0 @@ -# BridgeOptions - -Specify the event bus bridge options. - -| | | | -| --------------------- | --------------------------- | -------------------------------------------- | -| Name | Type | Description | -| `@inboundPermitteds` | `Array of PermittedOptions` | Sets the list of inbound permitted options. | -| `@outboundPermitteds` | `Array of PermittedOptions` | Sets the list of outbound permitted options. | - -# PermittedOptions - -Represents a match to allow for inbound and outbound traffic. - -| | | | -| -------------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@address` | `String` | The exact address the message is being sent to. If you want to allow messages based on an exact address you use this field. | -| `@addressRegex` | `String` | A regular expression that will be matched against the address. If you want to allow messages based on a regular expression you use this field. If the link value is specified this will be ignored. | -| `@match` | `Json object` | This allows you to allow messages based on their structure. Any fields in the match must exist in the message with the same values for them to be allowed. This currently only works with JSON messages. | -| `@requiredAuthority` | `String` | Declare a specific authority that user must have in order to allow messages | diff --git a/docs/manual/@vertx/bridge-common/enums.md b/docs/manual/@vertx/bridge-common/enums.md deleted file mode 100644 index 8bdf03190..000000000 --- a/docs/manual/@vertx/bridge-common/enums.md +++ /dev/null @@ -1,16 +0,0 @@ -# BridgeEventType - -Bridge Event Types. - -| | | -| ---------------- | ------------------------------------------------------------------------------------------------ | -| Name | Description | -| `SOCKET_CREATED` | This event will occur when a new SockJS socket is created. | -| `SOCKET_CLOSED` | This event will occur when a SockJS socket is closed. | -| `SOCKET_IDLE` | This event will occur when SockJS socket is on idle for longer period of time than configured. | -| `SOCKET_PING` | This event will occur when the last ping timestamp is updated for the SockJS socket. | -| `SEND` | This event will occur when a message is attempted to be sent from the client to the server. | -| `PUBLISH` | This event will occur when a message is attempted to be published from the client to the server. | -| `RECEIVE` | This event will occur when a message is attempted to be delivered from the server to the client. | -| `REGISTER` | This event will occur when a client attempts to register a handler. | -| `UNREGISTER` | This event will occur when a client attempts to unregister a handler. | diff --git a/docs/manual/@vertx/cassandra-client/dataobjects.md b/docs/manual/@vertx/cassandra-client/dataobjects.md deleted file mode 100644 index d954a6ee9..000000000 --- a/docs/manual/@vertx/cassandra-client/dataobjects.md +++ /dev/null @@ -1,10 +0,0 @@ -# CassandraClientOptions - -Eclipse Vert.x Cassandra client options. - -| | | | -| ---------------- | ----------------- | ---------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@contactPoints` | `Array of String` | Set a list of hosts, where some of cluster nodes is located. | -| `@keyspace` | `String` | Set the keyspace to use when creating the Cassandra session. Defaults to `null`. | -| `@port` | `Number (int)` | Set which port should be used for all the hosts to connect to a cassandra service. | diff --git a/docs/manual/@vertx/cassandra-client/index.md b/docs/manual/@vertx/cassandra-client/index.md deleted file mode 100644 index 80110a7e2..000000000 --- a/docs/manual/@vertx/cassandra-client/index.md +++ /dev/null @@ -1,367 +0,0 @@ -A Vert.x client allowing applications to interact with an [Apache -Cassandra](http://cassandra.apache.org/) service. - -> **Warning** -> -> This module has *Tech Preview* status, this means the API can change -> between versions. - -# Getting started - -To use this module, add the following to the *dependencies* section of -your Maven POM file: - -``` xml - - io.vertx - vertx-cassandra-client - ${maven.version} - -``` - -Or, if you use Gradle: - -``` groovy -compile 'io.vertx:vertx-cassandra-client:${maven.version}' -``` - -> **Warning** -> -> The Cassandra client is not compatible with the Vert.x Dropwizard -> Metrics library. Both are using a different major version of the -> Dropwizard Metrics library and the Datastax Java driver [won’t -> upgrade](https://github.com/datastax/java-driver/pull/943) to the most -> recent version due to the drop of Java 7. The next major version (4.x) -> of the driver will use a more recent Dropwizard Metrics library -> version. - -# Creating a client - -## Client options - -Cassandra is a distributed system, and it can have many nodes. To -connect to Cassandra you need to specify the addresses of some cluster -nodes when creating a `CassandraClientOptions` object: - -``` js -import { CassandraClient } from "@vertx/cassandra" -let options = new CassandraClientOptions() - .setContactPoints(["node1.address", "node2.address", "node3.address"]); -let client = CassandraClient.create(vertx, options); -``` - -By default, the Cassandra client for Vert.x connects to the local -machine’s port `9042` and is not tied to any specific keyspace. But you -can set either or both of these options: - -``` js -import { CassandraClient } from "@vertx/cassandra" -let options = new CassandraClientOptions() - .setPort(9142) - .setKeyspace("my_keyspace"); -let client = CassandraClient.create(vertx, options); -``` - -> **Tip** -> -> For fine tuning purposes, `CassandraClientOptions` exposes a -> `com.datastax.driver.core.Cluster.Builder` instance. - -## Shared clients - -If you deploy multiple instances of your verticle or have different -verticles interacting with the same database, it is recommended to -create a shared client: - -``` js -import { CassandraClient } from "@vertx/cassandra" -let options = new CassandraClientOptions() - .setContactPoints(["node1.address", "node2.address", "node3.address"]) - .setKeyspace("my_keyspace"); -let client = CassandraClient.createShared(vertx, "sharedClientName", options); -``` - -Shared clients with the same name will use a single underlying -`com.datastax.driver.core.Session`. - -## Client lifecycle - -After the client is created, it is not connected until the first query -is executed. - -> **Tip** -> -> A shared client can be connected after creation if another client with -> the same name has already executed a query. - -Clients created inside a verticle are automatically stopped when the -verticle is undeployed. In other words, you do not need to invoke -`close` in the verticle `stop` method. - -In all other cases, you must manually close the client. - -> **Note** -> -> When a shared client is closed, the driver dession is not closed if -> other clients with the same name are still running. - -# Using the API - -The client API is represented by `CassandraClient`. - -## Querying - -You can get query results using three different ways. - -### Streaming - -The streaming API is most appropriate when you need to consume results -iteratively, e.g you want to process each item. This is very efficient -specially for large amount of rows. - -In order to give you some inspiration and ideas on how you can use the -API, we’d like to you to consider this example: - -``` js -cassandraClient.queryStream("SELECT my_string_col FROM my_keyspace.my_table where my_key = 'my_value'", (queryStream) => { - if (queryStream.succeeded()) { - let stream = queryStream.result(); - - // resume stream when queue is ready to accept buffers again - response.drainHandler((v) => { - stream.resume(); - }); - - stream.handler((row) => { - let value = row.getString("my_string_col"); - response.write(value); - - // pause row stream when we buffer queue is full - if (response.writeQueueFull()) { - stream.pause(); - } - }); - - // end request when we reached end of the stream - stream.endHandler((end) => { - response.end(); - }); - - } else { - queryStream.cause().printStackTrace(); - // response with internal server error if we are not able to execute given query - response.setStatusCode(500).end("Unable to execute the query"); - } -}); -``` - -In the example, we are executing a query, and stream results via HTTP. - -### Bulk fetching - -This API should be used when you need to process all the rows at the -same time. - -``` js -cassandraClient.executeWithFullFetch("SELECT * FROM my_keyspace.my_table where my_key = 'my_value'", (executeWithFullFetch) => { - if (executeWithFullFetch.succeeded()) { - let rows = executeWithFullFetch.result(); - rows.forEach(row => { - // handle each row here - }); - } else { - console.log("Unable to execute the query"); - executeWithFullFetch.cause().printStackTrace(); - } -}); -``` - -> **Caution** -> -> Use bulk fetching only if you can afford to load the full result set -> in memory. - -## Collector queries - -You can use Java collectors with the query API: - -``` js -Code not translatable -``` - -### Low level fetch - -This API provides greater control over loading at the expense of being a -bit lower-level than the streaming and bulk fetching APIs. - -``` js -cassandraClient.execute("SELECT * FROM my_keyspace.my_table where my_key = 'my_value'", (execute) => { - if (execute.succeeded()) { - let resultSet = execute.result(); - - resultSet.one((one) => { - if (one.succeeded()) { - let row = one.result(); - console.log("One row successfully fetched"); - } else { - console.log("Unable to fetch a row"); - one.cause().printStackTrace(); - } - }); - - resultSet.fetchMoreResults((fetchMoreResults) => { - if (fetchMoreResults.succeeded()) { - let availableWithoutFetching = resultSet.getAvailableWithoutFetching(); - console.log("Now we have " + availableWithoutFetching + " rows fetched, but not consumed!"); - if (resultSet.isFullyFetched()) { - console.log("The result is fully fetched, we don't need to call this method for one more time!"); - } else { - console.log("The result still does not fully fetched"); - } - } else { - console.log("Unable to fetch more results"); - fetchMoreResults.cause().printStackTrace(); - } - }); - - } else { - console.log("Unable to execute the query"); - execute.cause().printStackTrace(); - } -}); -``` - -## Prepared queries - -For security and efficiency reasons, it is a good idea to use prepared -statements for all the queries you are using more than once. - -You can prepare a query: - -``` js -cassandraClient.prepare("SELECT * FROM my_keyspace.my_table where my_key = ? ", (preparedStatementResult) => { - if (preparedStatementResult.succeeded()) { - console.log("The query has successfully been prepared"); - let preparedStatement = preparedStatementResult.result(); - // now you can use this PreparedStatement object for the next queries - } else { - console.log("Unable to prepare the query"); - preparedStatementResult.cause().printStackTrace(); - } -}); -``` - -And then use the -[`PreparedStatement`](https://docs.datastax.com/en/drivers/java/${datastax.driver.minor.version}/com/datastax/driver/core/PreparedStatement.html) -for all the next queries: - -``` js -// You can execute you prepared statement using any way to execute queries. - -// Low level fetch API -cassandraClient.execute(preparedStatement.bind("my_value"), (done) => { - let results = done.result(); - // handle results here -}); - -// Bulk fetching API -cassandraClient.executeWithFullFetch(preparedStatement.bind("my_value"), (done) => { - let results = done.result(); - // handle results here -}); - -// Streaming API -cassandraClient.queryStream(preparedStatement.bind("my_value"), (done) => { - let results = done.result(); - // handle results here -}); -``` - -## Batching - -In case you’d like to execute several queries at once, you can use -[`BatchStatement`](https://docs.datastax.com/en/drivers/java/${datastax.driver.minor.version}/com/datastax/driver/core/BatchStatement.html) -for that: - -``` js -let batchStatement = new (Java.type("com.datastax.driver.core.BatchStatement"))().add(new (Java.type("com.datastax.driver.core.SimpleStatement"))("INSERT INTO NAMES (name) VALUES ('Pavel')")).add(new (Java.type("com.datastax.driver.core.SimpleStatement"))("INSERT INTO NAMES (name) VALUES ('Thomas')")).add(new (Java.type("com.datastax.driver.core.SimpleStatement"))("INSERT INTO NAMES (name) VALUES ('Julien')")); - -cassandraClient.execute(batchStatement, (result) => { - if (result.succeeded()) { - console.log("The given batch executed successfully"); - } else { - console.log("Unable to execute the batch"); - result.cause().printStackTrace(); - } -}); -``` - -## Object Mapper - -You can use the object `Mapper` to map between domain classes and -queries. - -First, add the following to the *dependencies* section of your Maven POM -file: - -``` xml - - com.datastax.cassandra - cassandra-driver-mapping - ${datastax.driver.version} - -``` - -Or, if you use Gradle: - -``` groovy -compile 'com.datastax.cassandra:cassandra-driver-mapping:${datastax.driver.version}' -``` - -Consider the following entity: - -``` java -@Table(keyspace = "test", name = "names") -public class MappedClass { - @PartitionKey - private String name; - - public MappedClass(String name) { - this.name = name; - } - - MappedClass() { - // Required for mapping - } - - // getters / setters -} -``` - -Create a mapper for it and you may save, retrieve or delete data from -the corresponding table: - -``` js -import { MappingManager } from "@vertx/cassandra" -let mappingManager = MappingManager.create(cassandraClient); -let mapper = mappingManager.mapper(Java.type("examples.CassandraClientExamples.MappedClass").class); - -let value = new (Java.type("examples.CassandraClientExamples.MappedClass"))("foo"); - -mapper.save(value, (handler) => { - // Entity saved -}); - -mapper.get(Java.type("java.util.Collections").singletonList("foo"), (handler) => { - // Entity loaded -}); - -mapper.delete(Java.type("java.util.Collections").singletonList("foo"), (handler) => { - // Entity deleted -}); -``` - -> **Tip** -> -> It is safe to reuse mapping manager and mapper instances for a given -> Cassandra client. diff --git a/docs/manual/@vertx/circuit-breaker/dataobjects.md b/docs/manual/@vertx/circuit-breaker/dataobjects.md deleted file mode 100644 index ba3df286e..000000000 --- a/docs/manual/@vertx/circuit-breaker/dataobjects.md +++ /dev/null @@ -1,71 +0,0 @@ -# CircuitBreakerOptions - -Circuit breaker configuration options. All time are given in -milliseconds. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@failuresRollingWindow

Number (long)

Sets the rolling window used for metrics.

@fallbackOnFailure

Boolean

Sets whether or not the fallback is executed on failure, even when the circuit is closed.

@maxFailures

Number (int)

Sets the maximum number of failures before opening the circuit.

@maxRetries

Number (int)

Configures the number of times the circuit breaker tries to redo the operation before failing.

@metricsRollingBuckets

Number (int)

Sets the configured number of buckets the rolling window is divided into.

-

The following must be true - metrics.rollingStats.timeInMilliseconds % metrics.rollingStats.numBuckets == 0 - otherwise it will throw an exception.

-

In other words, 10000/10 is okay, so is 10000/20 but 10000/7 is not.

@metricsRollingWindow

Number (long)

Sets the rolling window used for metrics.

@notificationAddress

String

Sets the event bus address on which the circuit breaker publish its state change.

@notificationPeriod

Number (long)

Configures the period in milliseconds where the circuit breaker send a notification on the event bus with its current state.

@resetTimeout

Number (long)

Sets the time in ms before it attempts to re-close the circuit (by going to the half-open state). If the circuit is closed when the timeout is reached, nothing happens. -1 disables this feature.

@timeout

Number (long)

Sets the timeout in milliseconds. If an action is not completed before this timeout, the action is considered as a failure.

diff --git a/docs/manual/@vertx/circuit-breaker/index.md b/docs/manual/@vertx/circuit-breaker/index.md deleted file mode 100644 index 23534a78b..000000000 --- a/docs/manual/@vertx/circuit-breaker/index.md +++ /dev/null @@ -1,329 +0,0 @@ -# Vert.x Circuit Breaker - -Vert.x Circuit Breaker is an implementation of the Circuit Breaker -*pattern* for Vert.x. It keeps track of the number of failures and -*opens the circuit* when a threshold is reached. Optionally, a fallback -is executed. - -Supported failures are: - - - failures reported by your code in a `Future` - - - exception thrown by your code - - - uncompleted futures (timeout) - -Operations guarded by a circuit breaker are intended to be non-blocking -and asynchronous in order to benefit from the Vert.x execution model. - -# Using the vert.x circuit breaker - -To use the Vert.x Circuit Breaker, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-circuit-breaker - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-circuit-breaker:${maven.version}' -``` - -# Using the circuit breaker - -To use the circuit breaker you need to: - -1. Create a circuit breaker, with the configuration you want (timeout, - number of failure before opening the circuit) - -2. Execute some code using the breaker - -**Important**: Don’t recreate a circuit breaker on every call. A circuit -breaker is a staful entity. It is recommended to store the circuit -breaker instance in a field. - -Here is an example: - -``` js -import { CircuitBreaker } from "@vertx/circuit-breaker" -let breaker = CircuitBreaker.create("my-circuit-breaker", vertx, new CircuitBreakerOptions() - .setMaxFailures(5) - .setTimeout(2000) - .setFallbackOnFailure(true) - .setResetTimeout(10000)); - -// --- -// Store the circuit breaker in a field and access it as follows -// --- - -breaker.execute((future) => { - // some code executing with the breaker - // the code reports failures or success on the given future. - // if this future is marked as failed, the breaker increased the - // number of failures -}).setHandler((ar) => { - // Get the operation result. -}); -``` - -The executed block receives a `Future` object as parameter, to denote -the success or failure of the operation as well as the result. For -example in the following example, the result is the output of a REST -endpoint invocation: - -``` js -import { CircuitBreaker } from "@vertx/circuit-breaker" -let breaker = CircuitBreaker.create("my-circuit-breaker", vertx, new CircuitBreakerOptions() - .setMaxFailures(5) - .setTimeout(2000)); - -// --- -// Store the circuit breaker in a field and access it as follows -// --- - -breaker.execute((future) => { - vertx.createHttpClient().getNow(8080, "localhost", "/", (response) => { - if (response.statusCode() !== 200) { - future.fail("HTTP error"); - } else { - response.exceptionHandler(future.fail).bodyHandler((buffer) => { - future.complete(buffer.toString()); - }); - } - }); -}).setHandler((ar) => { - // Do something with the result -}); -``` - -The result of the operation is provided using the: - - - returned `Future` when calling `execute` methods - - - provided `Future` when calling the `executeAndReport` methods - -Optionally, you can provide a fallback which is executed when the -circuit is open: - -``` js -import { CircuitBreaker } from "@vertx/circuit-breaker" -let breaker = CircuitBreaker.create("my-circuit-breaker", vertx, new CircuitBreakerOptions() - .setMaxFailures(5) - .setTimeout(2000)); - -// --- -// Store the circuit breaker in a field and access it as follows -// --- - -breaker.executeWithFallback((future) => { - vertx.createHttpClient().getNow(8080, "localhost", "/", (response) => { - if (response.statusCode() !== 200) { - future.fail("HTTP error"); - } else { - response.exceptionHandler(future.fail).bodyHandler((buffer) => { - future.complete(buffer.toString()); - }); - } - }); -}, (v) => { - // Executed when the circuit is opened - return "Hello" -}).setHandler((ar) => { - // Do something with the result -}); -``` - -The fallback is called whenever the circuit is open, or if the -`isFallbackOnFailure` is enabled. When a fallback is set, the result is -using the output of the fallback function. The fallback function takes -as parameter a `Throwable` object and returns an object of the expected -type. - -The fallback can also be set on the `CircuitBreaker` object directly: - -``` js -import { CircuitBreaker } from "@vertx/circuit-breaker" -let breaker = CircuitBreaker.create("my-circuit-breaker", vertx, new CircuitBreakerOptions() - .setMaxFailures(5) - .setTimeout(2000)).fallback((v) => { - // Executed when the circuit is opened. - return "hello" -}); - -breaker.execute((future) => { - vertx.createHttpClient().getNow(8080, "localhost", "/", (response) => { - if (response.statusCode() !== 200) { - future.fail("HTTP error"); - } else { - response.exceptionHandler(future.fail).bodyHandler((buffer) => { - future.complete(buffer.toString()); - }); - } - }); -}); -``` - -# Retries - -You can also specify how often the circuit breaker should try your code -before failing with `setMaxRetries`. If you set this to something higher -than 0 your code gets executed several times before finally failing in -the last execution. If the code succeeded in one of the retries your -handler gets notified and any retries left are skipped. Retries are only -supported when the circuit is closed. - -Notice that if you set `maxRetries` to 2 for instance, your operation -may be called 3 times: the initial attempt and 2 retries. - -By default the timeout between retries is set to 0 which means that -retries will be executed one after another without any delay. This, -however, will result in increased load on the called service and may -delay it’s recovery. In order to mitigate this problem it is recommended -to execute retries with delays. `retryPolicy` method can be used to -specify retry policy. Retry policy is a function which receives retry -count as single argument and returns timeout in milliseconds before -retry is executed and allows to implement a more complex policy, e.g. -exponential backoff with jitter. Below is an example of retry timeout -which grows linearly with each retry count: - -``` js -import { CircuitBreaker } from "@vertx/circuit-breaker" -let breaker = CircuitBreaker.create("my-circuit-breaker", vertx, new CircuitBreakerOptions() - .setMaxFailures(5) - .setMaxRetries(5) - .setTimeout(2000)).openHandler((v) => { - console.log("Circuit opened"); -}).closeHandler((v) => { - console.log("Circuit closed"); -}).retryPolicy((retryCount) => { - retryCount * 100; -}); - -breaker.execute((future) => { - vertx.createHttpClient().getNow(8080, "localhost", "/", (response) => { - if (response.statusCode() !== 200) { - future.fail("HTTP error"); - } else { - // Do something with the response - future.complete(); - } - }); -}); -``` - -# Callbacks - -You can also configures callbacks invoked when the circuit is opened or -closed: - -``` js -import { CircuitBreaker } from "@vertx/circuit-breaker" -let breaker = CircuitBreaker.create("my-circuit-breaker", vertx, new CircuitBreakerOptions() - .setMaxFailures(5) - .setTimeout(2000)).openHandler((v) => { - console.log("Circuit opened"); -}).closeHandler((v) => { - console.log("Circuit closed"); -}); - -breaker.execute((future) => { - vertx.createHttpClient().getNow(8080, "localhost", "/", (response) => { - if (response.statusCode() !== 200) { - future.fail("HTTP error"); - } else { - // Do something with the response - future.complete(); - } - }); -}); -``` - -You can also be notified when the circuit breaker decides to attempt to -reset (half-open state). You can register such a callback with -`halfOpenHandler`. - -# Event bus notification - -Every time the circuit state changes, an event is published on the event -bus. The address on which the events are sent is configurable with -`setNotificationAddress`. If `null` is passed to this method, the -notifications are disabled. By default, the used address is -`vertx.circuit-breaker`. - -Each event contains a Json Object with: - - - `state` : the new circuit breaker state (`OPEN`, `CLOSED`, - `HALF_OPEN`) - - - `name` : the name of the circuit breaker - - - `failures` : the number of failures - - - `node` : the identifier of the node (`local` if Vert.x is not - running in cluster mode) - -# The half-open state - -When the circuit is "open", calls to the circuit breaker fail -immediately, without any attempt to execute the real operation. After a -suitable amount of time (configured from `setResetTimeout`, the circuit -breaker decides that the operation has a chance of succeeding, so it -goes into the `half-open` state. In this state, the next call to the -circuit breaker is allowed to execute the dangerous operation. Should -the call succeed, the circuit breaker resets and returns to the `closed` -state, ready for more routine operation. If this trial call fails, -however, the circuit breaker returns to the `open` state until another -timeout elapses. - -# Reported exceptions - -The fallback receives a: - - - `OpenCircuitException` when the circuit breaker is opened - - - `TimeoutException` when the operation timed out - -# Pushing circuit breaker metrics to the Hystrix Dashboard - -Netflix Hystrix comes with a dashboard to present the current state of -the circuit breakers. The Vert.x circuit breakers can publish their -metrics in order to be consumed by this Hystrix Dashboard. The Hystrix -dashboard requires a SSE stream sending the metrics. This stream is -provided by the `HystrixMetricHandler` Vert.x Web Handler: - -``` js -import { CircuitBreaker } from "@vertx/circuit-breaker" -import { Router } from "@vertx/web" -import { HystrixMetricHandler } from "@vertx/circuit-breaker" -// Create the circuit breaker as usual. -let breaker = CircuitBreaker.create("my-circuit-breaker", vertx); -let breaker2 = CircuitBreaker.create("my-second-circuit-breaker", vertx); - -// Create a Vert.x Web router -let router = Router.router(vertx); -// Register the metric handler -router.get("/hystrix-metrics").handler(HystrixMetricHandler.create(vertx)); - -// Create the HTTP server using the router to dispatch the requests -vertx.createHttpServer().requestHandler(router).listen(8080); -``` - -In the Hystrix Dashboard, configure the stream url like: -`http://localhost:8080/metrics`. The dashboard now consumes the metrics -from the Vert.x circuit breakers. - -Notice that the metrics are collected by the Vert.x Web handler using -the event bus notifications. If you don’t use the default notification -address, you need to pass it when creating the metrics handler. diff --git a/docs/manual/@vertx/cofig-redis/redis-store.md b/docs/manual/@vertx/cofig-redis/redis-store.md deleted file mode 100644 index b8b9c253d..000000000 --- a/docs/manual/@vertx/cofig-redis/redis-store.md +++ /dev/null @@ -1,63 +0,0 @@ -# Redis Configuration Store - -The Redis Configuration Store extends the Vert.x Configuration Retriever -and provides the way to retrieve configuration from a Redis server. - -## Using the Redis Configuration Store - -To use the Redis Configuration Store, add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-redis - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-redis:${maven.version}' -``` - -## Configuring the store - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this store: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("redis") - .setConfig({ - "host" : "localhost", - "port" : 6379, - "key" : "my-configuration" - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -The store configuration is used to create an instance of `RedisClient`. -check the documentation of the Vert.x Redis Client for further details. - -In addition, you can set the `key` instructing the store in which -*field* the configuration is stored. `configuration` is used by default. - -The created Redis client retrieves the configuration using the `HGETALL` -configuration. diff --git a/docs/manual/@vertx/config-consul/consul-store.md b/docs/manual/@vertx/config-consul/consul-store.md deleted file mode 100644 index 77be030aa..000000000 --- a/docs/manual/@vertx/config-consul/consul-store.md +++ /dev/null @@ -1,67 +0,0 @@ -# Consul Configuration Store - -The Consul Configuration Store extends the Vert.x Configuration -Retriever and provides the way to retrieve configuration from a -[Consul](https://www.consul.io). - -## Using the Consul Configuration Store - -To use the Consul Configuration Store, add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-consul - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-consul:${maven.version}' -``` - -## Configuring the store - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this store: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("consul") - .setConfig({ - "host" : "localhost", - "port" : 8500, - "prefix" : "foo" - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -The store configuration is used to create an instance of `ConsulClient`. -Check the documentation of the Vert.x Consul Client for further details. -And this is the parameters specific to the Consul Configuration Store: - - - `prefix` - A prefix that will not be taken into account when building the - configuration tree. Defaults to empty. - - - `delimiter` - Symbol that used to split keys in the Consul storage to obtain - levels in the configuration tree. Defaults to "/". diff --git a/docs/manual/@vertx/config-git/git-store.md b/docs/manual/@vertx/config-git/git-store.md deleted file mode 100644 index 5e28c91eb..000000000 --- a/docs/manual/@vertx/config-git/git-store.md +++ /dev/null @@ -1,89 +0,0 @@ -# Git Configuration Store - -The Git Configuration Store is an extension to the Vert.x Configuration -Retriever to retrieve configuration from a Git repository. - -## Using the Git Configuration Store - -To use the Git Configuration, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-git - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-git:${maven.version}' -``` - -## Configuring the store - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this store: - -``` js -import { ConfigRetriever } from "@vertx/config" - -let git = new ConfigStoreOptions() - .setType("git") - .setConfig({ - "url" : "https://github.com/cescoffier/vertx-config-test.git", - "path" : "local", - "filesets" : [ - { - "pattern" : "*.json" - } - ] - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([git])); -``` - -The configuration requires: - - - the `url` of the repository - - - the `path` where the repository is cloned (local directory) - - - the `user` for private repository (no authentication by default) - - - the `password` of the user - - - the `idRsaKeyPath` for private repository and requires ssh uri - - - at least `fileset` indicating the set of files to read (same - behavior as the directory configuration store). - -You can also configure the `branch` (`master` by default) to use and the -name of the `remote` repository (`origin` by default). - -## How does it works - -If the local `path` does not exist, the configuration store clones the -repository into this directory. Then it reads the file matching the -different file sets. - -It the local `path` exist, it tried to update it (it switches branch if -needed)). If the update failed the configuration retrieval fails. - -Periodically, the repositories is updated to check if the configuration -has been updated. diff --git a/docs/manual/@vertx/config-hocon/hocon-format.md b/docs/manual/@vertx/config-hocon/hocon-format.md deleted file mode 100644 index bc9840f10..000000000 --- a/docs/manual/@vertx/config-hocon/hocon-format.md +++ /dev/null @@ -1,59 +0,0 @@ -# Hocon Configuration Format - -The Hocon Configuration Format extends the Vert.x Configuration -Retriever and provides the support for the -HOCON() -format. - -It supports includes, json, properties, macros…​ - -## Using the Hocon Configuration Format - -To use the Hocon Configuration Format, add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-hocon - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-hocon:${maven.version}' -``` - -## Configuring the store to use HOCON - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this format: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("file") - .setFormat("hocon") - .setConfig({ - "path" : "my-config.conf" - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -You just need to set `format` to `hocon`. diff --git a/docs/manual/@vertx/config-kubernetes-configmap/kubernetes-store.md b/docs/manual/@vertx/config-kubernetes-configmap/kubernetes-store.md deleted file mode 100644 index 655039835..000000000 --- a/docs/manual/@vertx/config-kubernetes-configmap/kubernetes-store.md +++ /dev/null @@ -1,91 +0,0 @@ -# Kubernetes ConfigMap Store - -The Kubernetes ConfigMap Store extends the Vert.x Configuration -Retriever and provides support Kubernetes Config Map and Secrets. So, -configuration is retrieved by reading the config map or the secrets. - -## Using the Kubernetes ConfigMap Store - -To use the Kubernetes ConfigMap Store, add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-kubernetes-configmap - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-kubernetes-configmap:${maven.version}' -``` - -## Configuring the store - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this store: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("configmap") - .setConfig({ - "namespace" : "my-project-namespace", - "name" : "configmap-name" - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -You need to configure the store to find the right configmap. this is -done with: - - - `namespace` - the project namespace, `default` by default. If the - `KUBERNETES_NAMESPACE` ENV variable is set, it uses this value. - - - `name` - the name of the config map - - - `optional` - whether or not the config map is optional (`true` by - default) - -If the config map is composed by several element, you can use the `key` -parameter to tell which `key` is read - -The application must have the permissions to read the config map. - -To read data from a secret, just configure the `secret` property to -`true`: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("configmap") - .setConfig({ - "namespace" : "my-project-namespace", - "name" : "my-secret", - "secret" : true - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -If the config map is not available, an empty JSON object is passed as -configuration chunk. To disable this behavior and explicitly fail, you -can set the `optional` configuration to `false`. diff --git a/docs/manual/@vertx/config-spring-config-server/spring-store.md b/docs/manual/@vertx/config-spring-config-server/spring-store.md deleted file mode 100644 index 3f1464590..000000000 --- a/docs/manual/@vertx/config-spring-config-server/spring-store.md +++ /dev/null @@ -1,74 +0,0 @@ -# Spring Config Server Store - -The Spring Config Server Store extends the Vert.x Configuration -Retriever and provides the a way to retrieve configuration from a Spring -Server. - -## Using the Spring Config Server Store - -To use the Spring Config Server Store, add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-spring-config-server - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-spring-config-server:${maven.version}' -``` - -## Configuring the store - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this store: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("spring-config-server") - .setConfig({ - "url" : "http://localhost:8888/foo/development" - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -Configurable attributes are: - - - `url` - the `url` to retrieve the configuration (mandatory), - supports two type of formats: - - - `/{application}/{environment}` which produces response with - separated propertySources - - - `/{application}-{environment}.json` which produces response as - JSON with unique fields and resolved Spring placeholders - - - `timeout` - the timeout (in milliseconds) to retrieve the - configuration, 3000 by default - - - `user` - the `user` (no authentication by default) - - - `password` - the `password` - - - `httpClientConfiguration` - the configuration of the underlying HTTP - client diff --git a/docs/manual/@vertx/config-vault/dataobjects.md b/docs/manual/@vertx/config-vault/dataobjects.md deleted file mode 100644 index f114402df..000000000 --- a/docs/manual/@vertx/config-vault/dataobjects.md +++ /dev/null @@ -1,16 +0,0 @@ -# TokenRequest - -The token request structure. - -| | | | -| ------------------ | ----------------- | ----------- | -| Name | Type | Description | -| `@displayName` | `String` | \- | -| `@id` | `String` | \- | -| `@meta` | `String` | \- | -| `@noDefaultPolicy` | `Boolean` | \- | -| `@noParent` | `Boolean` | \- | -| `@numUses` | `Number (long)` | \- | -| `@policies` | `Array of String` | \- | -| `@role` | `String` | \- | -| `@ttl` | `String` | \- | diff --git a/docs/manual/@vertx/config-vault/vault-store.md b/docs/manual/@vertx/config-vault/vault-store.md deleted file mode 100644 index 79e5dae9f..000000000 --- a/docs/manual/@vertx/config-vault/vault-store.md +++ /dev/null @@ -1,278 +0,0 @@ -# Vault Config Store - -The Vault Store extends the Vert.x Configuration Retriever and provides -support for Vault (). So, configuration -(secrets) is retrieved from Vault. - -> The secrets engines supported by this store are Vault Key/Value -> version 1 and version 2 engines -> (). Other -> secrets engine are not supported. - -## Using the Vault Config Store - -To use the Vault Config Store, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-vault - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-vault:${maven.version}' -``` - -## Configuring the store - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this store: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("vault") - .setConfig(config); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -To use the Vault config store, set the `type` to `vault`. The -configuration is provided as Json. It configures the access to Vault, -authentication and the path of the secret to retrieve: - -``` js -import { ConfigRetriever } from "@vertx/config" -let vault_config = { - "host" : "127.0.0.1", - "port" : 8200, - "ssl" : true -}; - -// Certificates -let certs = new PemKeyCertOptions() - .setCertPaths(["target/vault/config/ssl/client-cert.pem"]) - .setKeyPaths(["target/vault/config/ssl/client-privatekey.pem"]); -vault_config.pemKeyCertOptions = certs; - -// Truststore -let jks = new JksOptions() - .setPath("target/vault/config/ssl/truststore.jks"); -vault_config.trustStoreOptions = jks; - -// Path to the secret to read. -vault_config.path = "secret/my-secret"; - -let store = new ConfigStoreOptions() - .setType("vault") - .setConfig(vault_config); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -} -``` - -The `vault_config` object can contain the HTTP client / Web client -configuration such as trust stores, timeout, certificates, port and -host. The `path` and `host` entries are mandatory. The `path` indicates -the secret to retrieve. The `host` is the hostname of the Vault server. -By default the port 8200 is used. SSL is disabled by default, but you -should enable it for production settings. - -Then, you need to use one of the following method to configure the token -to use or the authentication mechanism. - -## Using an existing token - -If you know the token to use, set the `token` entry in the -configuration: - -``` js -import { ConfigRetriever } from "@vertx/config" -let vault_config = { -}; - -// ... - -// Path to the secret to read. -vault_config.path = "secret/my-secret"; - -// The token -vault_config.token = token; - -let store = new ConfigStoreOptions() - .setType("vault") - .setConfig(vault_config); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -You can use the root token, but it’s not recommended. When the token is -revoked, the access to the secret is blocked. If the token is renewable, -the token is renewed when it expires. - -## Generating a token - -If you have a token allowing you to generate new token, you can request -the token generation: - -``` js -import { ConfigRetriever } from "@vertx/config" -let vault_config = { -}; - -// ... - -// Path to the secret to read. -vault_config.path = "secret/my-secret"; - -// Configure the token generation - -// Configure the token request (https://www.vaultproject.io/docs/auth/token.html) -let tokenRequest = { - "ttl" : "1h", - "noDefault" : true, - "token" : token -}; - -vault_config.auth-backend = "token".renew-window = 5000.token-request = tokenRequest; - -let store = new ConfigStoreOptions() - .setType("vault") - .setConfig(vault_config); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -When using this approach, no token must be provided in the root -configuration, the the token use to request the generation is passed in -the nested JSON structure. If the generated token is renewable, it will -be renewed automatically upon expiration. The `renew-window` is the time -window to add to the token validity to renew it. If the generated token -is revoked, the access to the secret is blocked. - -## Using certificates - -You can use TLS certificates as authentication mechanism. So, you don’t -need to know a token, the token is generated automatically. - -``` js -import { ConfigRetriever } from "@vertx/config" -let vault_config = { -}; - -// ... - -let certs = new PemKeyCertOptions() - .setCertPaths(["target/vault/config/ssl/client-cert.pem"]) - .setKeyPaths(["target/vault/config/ssl/client-privatekey.pem"]); -vault_config.pemKeyCertOptions = certs; - -let trust = new PemTrustOptions() - .setCertPaths(["target/vault/config/ssl/cert.pem"]); -vault_config.pemTrustStoreOptions = trust; - -let jks = new JksOptions() - .setPath("target/vault/config/ssl/truststore.jks"); -vault_config.trustStoreOptions = jks; - -vault_config.auth-backend = "cert"; - -// Path to the secret to read. -vault_config.path = "secret/my-secret"; - -let store = new ConfigStoreOptions() - .setType("vault") - .setConfig(vault_config); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -Check out the HTTP client and Web client configuration to pass the -certificates. If the generated token is renewable, it will be renewed. -If not, the store attempts to authenticate again. - -## Using AppRole - -`AppRole` is used when your application is known by Vault and you have -the `appRoleId` and `secretId`. You don’t need a token, the token being -generated automatically: - -``` js -import { ConfigRetriever } from "@vertx/config" -let vault_config = { -}; - -// ... - -vault_config.auth-backend = "approle".approle = { - "role-id" : appRoleId, - "secret-id" : secretId -}; - -// Path to the secret to read. -vault_config.path = "secret/my-secret"; - -let store = new ConfigStoreOptions() - .setType("vault") - .setConfig(vault_config); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -If the generated token is renewable, it will be renewed. If not, the -store attempts to authenticate again. - -## Using username and password - -The `userpass` auth backend is used when the user / app is authenticated -using a username/password. You don’t need a token as the token is -generated during the authentication process: - -``` js -import { ConfigRetriever } from "@vertx/config" -let vault_config = { -}; - -// ... - -vault_config.auth-backend = "userpass".user-credentials = { - "username" : username, - "password" : password -}; - -// Path to the secret to read. -vault_config.path = "secret/my-secret"; - -let store = new ConfigStoreOptions() - .setType("vault") - .setConfig(vault_config); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -If the generated token is renewable, it will be renewed. If not, the -store attempts to authenticate again. diff --git a/docs/manual/@vertx/config-yaml/yaml-format.md b/docs/manual/@vertx/config-yaml/yaml-format.md deleted file mode 100644 index d75321d8c..000000000 --- a/docs/manual/@vertx/config-yaml/yaml-format.md +++ /dev/null @@ -1,55 +0,0 @@ -# Yaml Configuration Format - -The Yaml Configuration Format extends the Vert.x Configuration Retriever -and provides the support for the Yaml Configuration Format format. - -## Using the Yaml Configuration Format - -To use the Yaml Configuration Format, add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-yaml - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-yaml:${maven.version}' -``` - -## Configuring the store to use YAML - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this format: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("file") - .setFormat("yaml") - .setConfig({ - "path" : "my-config.yaml" - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -You just need to set `format` to `yaml`. diff --git a/docs/manual/@vertx/config-zookeeper/zookeeper-store.md b/docs/manual/@vertx/config-zookeeper/zookeeper-store.md deleted file mode 100644 index 248ebbc52..000000000 --- a/docs/manual/@vertx/config-zookeeper/zookeeper-store.md +++ /dev/null @@ -1,70 +0,0 @@ -# Zookeeper Configuration Store - -The Zookeeper Configuration Store extends the Vert.x Configuration -Retriever and provides the way to retrieve configuration from a -Zookeeper server. It uses Apache Curator as client. - -## Using the Zookeeper Configuration Store - -To use the Redis Configuration Store, add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config-zookeeper - ${maven.version} - - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' -compile 'io.vertx:vertx-config-zookeeper:${maven.version}' -``` - -## Configuring the store - -Once added to your classpath or dependencies, you need to configure the -`ConfigRetriever` to use this store: - -``` js -import { ConfigRetriever } from "@vertx/config" -let store = new ConfigStoreOptions() - .setType("zookeeper") - .setConfig({ - "connection" : "localhost:2181", - "path" : "/path/to/my/conf" - }); - -let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([store])); -``` - -The store configuration is used to configure the Apache Curator client -and the *path* of the Zookeeper node containing the configuration. -Notice that the format of the configuration can be JSON, or any -supported format. - -The configuration requires the `configuration` attribute indicating the -connection *string* of the Zookeeper server, and the `path` attribute -indicating the path of the node containing the configuration. - -In addition you can configure: - - - `maxRetries`: the number of connection attempt, 3 by default - - - `baseSleepTimeBetweenRetries`: the amount of milliseconds to wait - between retries (exponential backoff strategy). 1000 ms by default. diff --git a/docs/manual/@vertx/config/dataobjects.md b/docs/manual/@vertx/config/dataobjects.md deleted file mode 100644 index b44122e62..000000000 --- a/docs/manual/@vertx/config/dataobjects.md +++ /dev/null @@ -1,40 +0,0 @@ -# ConfigChange - -A structure representing a configuration change. - -| | | | -| ------------------------ | ------------- | -------------------------------- | -| Name | Type | Description | -| `@newConfiguration` | `Json object` | Sets the new configuration. | -| `@previousConfiguration` | `Json object` | Sets the previous configuration. | - -# ConfigRetrieverOptions - -Options to configure the - -ConfigRetriever - -. - -| | | | -| ----------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@includeDefaultStores` | `Boolean` | Enables or disables the inclusion of the default stored in the configuration. | -| `@scanPeriod` | `Number (long)` | Configures the scan period, in ms. This is the time amount between two checks of the configuration updates. | -| `@stores` | `Array of ConfigStoreOptions` | Sets the configuration stores. | - -# ConfigStoreOptions - -Data object representing the configuration of a configuration store. -This object describes the configuration of a chunk of configuration that -you retrieve. It specifies its type (type of configuration store), the -format of the retrieved configuration chunk, and you can also configures -the store if it needs configuration to retrieve the configuration chunk. - -| | | | -| ----------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@config` | `Json object` | Sets the configuration of the store | -| `@format` | `String` | Sets the format of the configuration that is retrieved from the store. | -| `@optional` | `Boolean` | Sets whether or not the store is optional. When the configuration is retrieve, if an optional store returns a failure, the failure is ignored and an empty json object is used instead (for this store). | -| `@type` | `String` | Sets the configuration type | diff --git a/docs/manual/@vertx/config/index.md b/docs/manual/@vertx/config/index.md deleted file mode 100644 index 08f3492e9..000000000 --- a/docs/manual/@vertx/config/index.md +++ /dev/null @@ -1,653 +0,0 @@ -Vert.x Config provides a way to configure your Vert.x application. It: - - - offers multiple configuration syntaxes (JSON, properties, Yaml - (extension), Hocon (extension)…​ - - - offers multiple configuration stores such as files, directories, - HTTP, git (extension), Redis (extension), system properties and - environment properties. - - - lets you define the processing order and overloading - - - supports runtime reconfiguration - -# Concepts - -The library is structured around: - - - a\*Config Retriever**instantiated and used by the Vert.x - application. It configures a set of configuration - store**Configuration store\*\* defines a location from where the - configuration data is read and also a format (JSON by default) - -The configuration is retrieved as a JSON Object. - -# Using the Config Retriever - -To use the Config Retriever, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-config - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-config:${maven.version}' ----- -``` - -Once done, you first need to instantiate the `ConfigRetriever`: - - import { ConfigRetriever } from "@vertx/config" - let retriever = ConfigRetriever.create(vertx); - -By default, the Config Retriever is configured with the following stores -(in this order): - - - The Vert.x verticle `config()` - - - The system properties - - - The environment variables - - - A `conf/config.json` file. This path can be overridden using the - `vertx-config-path` system property or `VERTX_CONFIG_PATH` - environment variable. - -You can configure your own stores: - - import { ConfigRetriever } from "@vertx/config" - let httpStore = new ConfigStoreOptions() - .setType("http") - .setConfig({ - "host" : "localhost", - "port" : 8080, - "path" : "/conf" - }); - - let fileStore = new ConfigStoreOptions() - .setType("file") - .setConfig({ - "path" : "my-config.json" - }); - - let sysPropsStore = new ConfigStoreOptions() - .setType("sys"); - - - let options = new ConfigRetrieverOptions() - .setStores([httpStore, fileStore, sysPropsStore]); - - let retriever = ConfigRetriever.create(vertx, options); - -More details about the overloading rules and available stores are -available below. Each store can be marked as `optional`. If a failure is -caught while retrieving (or processing) the configuration from an -optional store, the failure is logged, but the processing does not fail. -Instead, an empty JSON object is returned (`{}`). To mark a store as -optional, use the `optional` attribute: - - import { ConfigRetriever } from "@vertx/config" - let fileStore = new ConfigStoreOptions() - .setType("file") - .setOptional(true) - .setConfig({ - "path" : "my-config.json" - }); - let sysPropsStore = new ConfigStoreOptions() - .setType("sys"); - - let options = new ConfigRetrieverOptions() - .setStores([fileStore, sysPropsStore]); - - let retriever = ConfigRetriever.create(vertx, options); - -Once you have the instance of the Config Retriever, *retrieve* the -configuration as follows: - - retriever.getConfig((ar) => { - if (ar.failed()) { - // Failed to retrieve the configuration - } else { - let config = ar.result(); - } - }); - -# Overloading rules - -The declaration order of the configuration store is important as it -defines the overloading. For conflicting key, configuration stores -arriving *last* overloads the value provided by the previous -configuration stores. Let’s take an example. We have 2 configuration -stores: - - - `A` provides `{a:value, b:1}` - - - `B` provides `{a:value2, c:2}` - -Declared in this order (A, B), the resulting configuration would be: -`{a:value2, b:1, c:2}`. - -If you declare them in the reverse order (B, A), you will get: -`{a:value, b:1, c:2}`. - -# Using the retrieve configuration - -The retrieve configuration allows: - - - configuring verticles, - - - configure ports, clients, locations and so on, - - - configuring Vert.x itself - -This section gives a few examples of usage. - -## Configuring a single verticle - -The following example can be placed in the `start` method of a verticle. -It retrieves the configuration (using the default stores), and configure -an HTTP server with the content of the configuration. - - import { ConfigRetriever } from "@vertx/config" - let retriever = ConfigRetriever.create(vertx); - retriever.getConfig((json) => { - let result = json.result(); - - vertx.createHttpServer().requestHandler((req) => { - result.message; - }).listen(result.port); - }); - -## Configuring a set of verticles - -The following example configures 2 verticles using the configurations -contained in the `verticles.json` file: - - import { ConfigRetriever } from "@vertx/config" - let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([new ConfigStoreOptions() - .setType("file") - .setConfig({ - "path" : "verticles.json" - })])); - - retriever.getConfig((json) => { - let a = json.result().a; - let b = json.result().b; - vertx.deployVerticle(Java.type("examples.GreetingVerticle").class.getName(), new DeploymentOptions() - .setConfig(a)); - vertx.deployVerticle(Java.type("examples.GreetingVerticle").class.getName(), new DeploymentOptions() - .setConfig(b)); - }); - -## Configuring Vert.x itself - -You can also configure Vert.x directly. For this, you need a temporary -Vert.x instance used to retrieve the configuration. Then the actual -instance is created: - - import { Vertx } from "@vertx/core" - import { ConfigRetriever } from "@vertx/config" - // Create a first instance of Vert.x - let vertx = Vertx.vertx(); - // Create the config retriever - let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([new ConfigStoreOptions() - .setType("file") - .setConfig({ - "path" : "vertx.json" - })])); - - // Retrieve the configuration - retriever.getConfig((json) => { - let result = json.result(); - // Close the vert.x instance, we don't need it anymore. - vertx.close(); - - // Create a new Vert.x instance using the retrieve configuration - let options = result; - let newVertx = Vertx.vertx(options); - - // Deploy your verticle - newVertx.deployVerticle(Java.type("examples.GreetingVerticle").class.getName(), new DeploymentOptions() - .setConfig(result.a)); - }); - -## Propagating configuration changes to the event bus - -Vert.x Config notifies you when the configuration changes. If you want -to react to this event, you need to implement the reaction yourself. For -instance, you can un-deploy and redeploy verticle or send the new -configuration on the event bus. The following example shows this latter -case. It sends the new configuration on the event bus. Interested -verticles can listen for this address and update themselves: - - import { ConfigRetriever } from "@vertx/config" - let retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions() - .setStores([new ConfigStoreOptions() - .setType("file") - .setConfig({ - "path" : "verticles.json" - })])); - - retriever.getConfig((json) => { - //... - }); - - retriever.listen((change) => { - let json = change.newConfiguration; - vertx.eventBus().publish("new-configuration", json); - }); - -# Available configuration stores - -The Config Retriever provides a set of configuration stores and formats. -More are available as extensions, and you can also implement your own. - -## Structure of the configuration - -Each declared data store must specify the `type`. It can also define the -`format`. If not set JSON is used. - -Some configurations tore requires additional configuration (such a -path…​). This configuration is passed as a Json Object using -`setConfig` - -## File - -This configuration store just read the configuration from a file. It -supports all supported formats. - -``` js -let file = new ConfigStoreOptions() - .setType("file") - .setFormat("properties") - .setConfig({ - "path" : "path-to-file.properties" - }); -``` - -The `path` configuration is required. - -## JSON - -The JSON configuration store serves the given JSON config as it is. - -``` js -let json = new ConfigStoreOptions() - .setType("json") - .setConfig({ - "key" : "value" - }); -``` - -The only supported format for this configuration store is JSON. - -## Environment Variables - -This configuration store transforms environment variables to a JSON -Object contributed to the global configuration. - -``` js -let json = new ConfigStoreOptions() - .setType("env"); -``` - -This configuration store does not support the `format` configuration. By -default, the retrieved value is transformed into JSON compatible -structures (number, string, boolean, JSON object and JSON array). To -avoid this conversion, configure the `raw-data` attribute: - -``` js -let json = new ConfigStoreOptions() - .setType("env") - .setConfig({ - "raw-data" : true - }); -``` - -You can configure the `raw-data` attribute (`false` by default). If -`raw-data` is `true` no attempts to convert values is made, and you’ll -be able to get raw values using `config.getString(key)`. It is useful -when manipulating large integers. - -If you want to select the set of keys to import, use the `keys` -attributes. It filters out all non selected keys. Keys must be listed -individually: - -``` js -let json = new ConfigStoreOptions() - .setType("env") - .setConfig({ - "keys" : [ - "SERVICE1_HOST", - "SERVICE2_HOST" - ] - }); -``` - -## System Properties - -This configuration store transforms system properties to a JSON Object -contributed to the global configuration. - -``` js -let json = new ConfigStoreOptions() - .setType("sys") - .setConfig({ - "cache" : "false" - }); -``` - -This configuration store does not support the `format` configuration. - -You can configure the `cache` attribute (`true` by default) let you -decide whether or not it caches the system properties on the first -access and does not reload them. - -You can also configure the `raw-data` attribute (`false` by default). If -`raw-data` is `true` no attempts to convert values is made, and you’ll -be able to get raw values using `config.getString(key)`. It is useful -when manipulating large integers. - -## HTTP - -This configuration store retrieves the configuration from an HTTP -location. It can use any supported format. - -``` js -let http = new ConfigStoreOptions() - .setType("http") - .setConfig({ - "host" : "localhost", - "port" : 8080, - "path" : "/A" - }); -``` - -It creates a Vert.x HTTP Client with the store configuration (see next -snippet). To ease the configuration; you can also configure the `host`, -`port` and `path` with the `host`, `port` and `path` properties. - -``` js -let http = new ConfigStoreOptions() - .setType("http") - .setConfig({ - "defaultHost" : "localhost", - "defaultPort" : 8080, - "ssl" : true, - "path" : "/A" - }); -``` - -## Event Bus - -This event bus configuration store receives the configuration from the -event bus. This stores let you distribute your configuration among your -local and distributed components. - -``` js -let eb = new ConfigStoreOptions() - .setType("event-bus") - .setConfig({ - "address" : "address-getting-the-conf" - }); -``` - -This configuration store supports any format. - -## Directory - -This configuration store is similar to the `file` configuration store, -but instead of reading a single file, read several files from a -directory. - -This configuration store configuration requires: - - - a `path` - the root directory in which files are located - - - at least one `fileset` - an object to select the files - - - for properties file, you can indicate if you want to disable the - type conversion using the `raw-data` attribute - -Each `fileset` contains: \* a `pattern` : a Ant-style pattern to select -files. The pattern is applied on the relative path of the files from the -current working directory. \* an optional `format` indicating the format -of the files (each fileset can use a different format, BUT files in a -fileset must share the same format). - -``` js -let dir = new ConfigStoreOptions() - .setType("directory") - .setConfig({ - "path" : "config", - "filesets" : [ - { - "pattern" : "dir/*json" - }, - { - "pattern" : "dir/*.properties", - "format" : "properties" - } - ] - }); - -let dirWithRawData = new ConfigStoreOptions() - .setType("directory") - .setConfig({ - "path" : "config", - "filesets" : [ - { - "pattern" : "dir/*json" - }, - { - "pattern" : "dir/*.properties", - "format" : "properties", - "raw-data" : true - } - ] - }); -``` - -## Properties file and raw data - -Vert.x Config can read properties file. When reading such a file, you -can pass the `raw-data` attribute to indicate to Vert.x to not attempt -to convert values. It is useful when manipulating large integers. Values -can be retrieved using `config.getString(key)`. - -``` js -let propertyWithRawData = new ConfigStoreOptions() - .setFormat("properties") - .setType("file") - .setConfig({ - "path" : "raw.properties", - "raw-data" : true - }); -``` - -Some properties configuration maybe is hierarchical in nature. When -reading such a file, you can pass the `hierarchical` attribute to -indicate to Vert.x to convert the configuration to a json object while -maintaining this hierarchy, in contrast to the previous method with a -flat structure. - -Example: - - server.host=localhost - server.port=8080 - multiple.values=1,2,3 - -Get values: - -``` js -import { Vertx } from "@vertx/core" -import { ConfigRetriever } from "@vertx/config" -let propertyWitHierarchical = new ConfigStoreOptions() - .setFormat("properties") - .setType("file") - .setConfig({ - "path" : "hierarchical.properties", - "hierarchical" : true - }); -let options = new ConfigRetrieverOptions() - .setStores([propertyWitHierarchical]); - -let configRetriever = ConfigRetriever.create(Vertx.vertx(), options); - -configRetriever.configStream().handler((config) => { - let host = config.server.host; - let port = config.server.port; - let multiple = config.multiple.values; - for (let i = 0;i < multiple.length;i++) { - let value = multiple[i]; - } -}); -``` - -# Listening for configuration changes - -The Configuration Retriever periodically retrieve the configuration, and -if the outcome is different from the current one, your application can -be reconfigured. By default, the configuration is reloaded every 5 -seconds. - -``` js -import { Vertx } from "@vertx/core" -import { ConfigRetriever } from "@vertx/config" -let options = new ConfigRetrieverOptions() - .setScanPeriod(2000) - .setStores([store1, store2]); - -let retriever = ConfigRetriever.create(Vertx.vertx(), options); -retriever.getConfig((json) => { - // Initial retrieval of the configuration -}); - -retriever.listen((change) => { - // Previous configuration - let previous = change.previousConfiguration; - // New configuration - let conf = change.newConfiguration; -}); -``` - -# Retrieving the last retrieved configuration - -You can retrieve the last retrieved configuration without "waiting" to -be retrieved using: - -``` js -let last = retriever.getCachedConfig(); -``` - -# Reading configuration as a stream - -The `ConfigRetriever` provide a way to access the stream of -configuration. It’s a `ReadStream` of `JsonObject`. By registering the -right set of handlers you are notified: - - - when a new configuration is retrieved - - - when an error occur while retrieving a configuration - - - when the configuration retriever is closed (the `endHandler` is - called). - - - -``` js -import { Vertx } from "@vertx/core" -import { ConfigRetriever } from "@vertx/config" -let options = new ConfigRetrieverOptions() - .setScanPeriod(2000) - .setStores([store1, store2]); - -let retriever = ConfigRetriever.create(Vertx.vertx(), options); -retriever.configStream().endHandler((v) => { - // retriever closed -}).exceptionHandler((t) => { - // an error has been caught while retrieving the configuration -}).handler((conf) => { - // the configuration -}); -``` - -# Processing the configuration - -You can configure a *processor* that can validate and update the -configuration. This is done using the `setConfigurationProcessor` -method. - -The prcessing must not return `null`. It takes the retrieved -configuration and returns the processed one. If the processor does not -update the configuration, it must return the input configuration. If the -processor can throw an exception (for example for validation purpose). - -# Retrieving the configuration as a Future - -The `ConfigRetriever` provide a way to retrieve the configuration as a -`Future`: - -``` js -import { ConfigRetriever } from "@vertx/config" -let future = ConfigRetriever.getConfigAsFuture(retriever); -future.setHandler((ar) => { - if (ar.failed()) { - // Failed to retrieve the configuration - } else { - let config = ar.result(); - } -}); -``` - -# Extending the Config Retriever - -You can extend the configuration by implementing: - - - the `ConfigProcessor` SPI to add support for a format - - - the `ConfigStoreFactory` SPI to add support for configuration store - (place from where the configuration data is retrieved) - -# Additional formats - -Besides of the out of the box format supported by this library, Vert.x -Config provides additional formats you can use in your application. - -Unresolved directive in index.adoc - include::hocon-format.adoc\[\] - -Unresolved directive in index.adoc - include::yaml-format.adoc\[\] - -# Additional stores - -Besides of the out of the box stores supported by this library, Vert.x -Config provides additional stores you can use in your application. - -Unresolved directive in index.adoc - include::git-store.adoc\[\] - -Unresolved directive in index.adoc - include::kubernetes-store.adoc\[\] - -Unresolved directive in index.adoc - include::redis-store.adoc\[\] - -Unresolved directive in index.adoc - include::zookeeper-store.adoc\[\] - -Unresolved directive in index.adoc - include::consul-store.adoc\[\] - -Unresolved directive in index.adoc - include::spring-store.adoc\[\] - -Unresolved directive in index.adoc - include::vault-store.adoc\[\] diff --git a/docs/manual/@vertx/consul-client/dataobjects.md b/docs/manual/@vertx/consul-client/dataobjects.md deleted file mode 100644 index 01c987dbc..000000000 --- a/docs/manual/@vertx/consul-client/dataobjects.md +++ /dev/null @@ -1,920 +0,0 @@ -# AclToken - -Holds properties of Acl token - -| | | | -| -------- | -------------- | ------------------- | -| Name | Type | Description | -| `@id` | `String` | Set ID of token | -| `@name` | `String` | Set name of token | -| `@rules` | `String` | Set rules for token | -| `@type` | `AclTokenType` | Set type of token | - -# BlockingQueryOptions - -Options used to perform blocking query that used to wait for a potential -change using long polling. - -| | | | -| -------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@index` | `Number (long)` | Set index indicating that the client wishes to wait for any changes subsequent to that index. | -| `@wait` | `String` | Specifying a maximum duration for the blocking request. This is limited to 10 minutes. If not set, the wait time defaults to 5 minutes. This value can be specified in the form of "10s" or "5m" (i.e., 10 seconds or 5 minutes, respectively). | - -# Check - -Holds check properties - -| | | | -| -------------- | ------------- | -------------------------------------------------------- | -| Name | Type | Description | -| `@id` | `String` | Set the ID of check | -| `@name` | `String` | Set the name of check | -| `@nodeName` | `String` | Set the name of node | -| `@notes` | `String` | Set the human-readable note of check | -| `@output` | `String` | Set the output of check | -| `@serviceId` | `String` | Set the ID of service with which this check associated | -| `@serviceName` | `String` | Set the name of service with which this check associated | -| `@status` | `CheckStatus` | Set the status of check | - -# CheckList - -Holds result of checks query - -| | | | -| -------- | ---------------- | ---------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of checks | -| `@list` | `Array of Check` | Set list of checks | - -# CheckOptions - -Options used to register checks in Consul. - -| | | | -| ------------------ | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@deregisterAfter` | `String` | Set deregister timeout. This is optional field, which is a timeout in the same time format as Interval and TTL. If a check is associated with a service and has the critical state for more than this configured value, then its associated service (and all of its associated checks) will automatically be deregistered. The minimum timeout is 1 minute, and the process that reaps critical services runs every 30 seconds, so it may take slightly longer than the configured timeout to trigger the deregistration. This should generally be configured with a timeout that's much, much longer than any expected recoverable outage for the given service. | -| `@grpc` | `String` | Specifies a gRPC check's endpoint that supports the standard gRPC health checking protocol. The state of the check will be updated at the given Interval by probing the configured endpoint. The endpoint must be represented as `address:port/service` | -| `@grpcTls` | `Boolean` | Specifies whether to use TLS for this gRPC health check. If TLS is enabled, then by default, a valid TLS certificate is expected. Certificate verification can be turned off by setting `TLSSkipVerify` to `true`. | -| `@http` | `String` | Set HTTP address to check. Also you should set checking interval | -| `@id` | `String` | Set check ID | -| `@interval` | `String` | Set checking interval | -| `@name` | `String` | Set check name. This is mandatory field | -| `@notes` | `String` | Set check notes | -| `@scriptArgs` | `Array of String` | Set scriptArgs. Also you should set checking interval | -| `@serviceId` | `String` | Set the service ID to associate the registered check with an existing service provided by the agent. | -| `@status` | `CheckStatus` | Set the check status to specify the initial state of the health check. | -| `@tcp` | `String` | Set TCP address to check. Also you should set checking interval | -| `@tlsSkipVerify` | `Boolean` | Specifies if the certificate for an HTTPS check should not be verified. | -| `@ttl` | `String` | Set Time to Live of check. | - -# CheckQueryOptions - -Options used to requesting list of checks - -| | | | -| ------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query | -| `@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node. | - -# ConsulClientOptions - -Options used to create Consul client. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@aclToken

String

Set the ACL token. When provided, the client will use this token when making requests to the Consul by providing the "?token" query parameter. When not provided, the empty token, which maps to the 'anonymous' ACL policy, is used.

@alpnVersions

Array of HttpVersion

Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiation. When the list is empty, the client provides a best effort list according to link:

-

: [ "h2", "http/1.1" ] otherwise: [link]

@connectTimeout

Number (int)

Set the connect timeout

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@dc

String

Set the datacenter name. When provided, the client will use it when making requests to the Consul by providing the "?dc" query parameter. When not provided, the datacenter of the consul agent is queried.

@decoderInitialBufferSize

Number (int)

set to initialBufferSizeHttpDecoder the initial buffer of the HttpDecoder.

@defaultHost

String

Set the default host name to be used by this client in requests if none is provided when making the request.

@defaultPort

Number (int)

Set the default port to be used by this client in requests if none is provided when making the request.

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Add an enabled SSL/TLS protocols, appended to the ordered protocols.

@followRedirects

Boolean

Configure the default behavior of the client to follow HTTP 30x redirections.

@forceSni

Boolean

By default, the server name is only sent for Fully Qualified Domain Name (FQDN), setting this property to true forces the server name to be always sent.

@http2ClearTextUpgrade

Boolean

Set to true when an h2c connection is established using an HTTP/1.1 upgrade request, and false when an h2c connection is established directly (with prior knowledge).

@http2ConnectionWindowSize

Number (int)

Set the default HTTP/2 connection window size. It overrides the initial window size set by , so the connection window size is greater than for its streams, in order the data throughput. A value of -1 reuses the initial window size setting.

@http2KeepAliveTimeout

Number (int)

-

@http2MaxPoolSize

Number (int)

Set the maximum pool size for HTTP/2 connections

@http2MultiplexingLimit

Number (int)

Set a client limit of the number concurrent streams for each HTTP/2 connection, this limits the number of streams the client can create for a connection. The effective number of streams for a connection is the min of this value and the server's initial settings. Setting the value to -1 means to use the value sent by the server's initial settings. -1 is the default value.

@idleTimeout

Number (int)

Set the idle timeout, in seconds. zero means don't timeout. This determines if a connection will timeout and be closed if no data is received within the timeout.

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@initialSettings

Http2Settings

Set the HTTP/2 connection settings immediately sent by to the server when the client connects.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keepAlive

Boolean

Set whether keep alive is enabled on the client

@keepAliveTimeout

Number (int)

-

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@localAddress

String

Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@maxChunkSize

Number (int)

Set the maximum HTTP chunk size

@maxHeaderSize

Number (int)

Set the maximum length of all headers for HTTP/1.x .

@maxInitialLineLength

Number (int)

Set the maximum length of the initial line for HTTP/1.x (e.g. "HTTP/1.1 200 OK")

@maxPoolSize

Number (int)

Set the maximum pool size for connections

@maxRedirects

Number (int)

Set to maxRedirects the maximum number of redirection a request can follow.

@maxWaitQueueSize

Number (int)

Set the maximum requests allowed in the wait queue, any requests beyond the max size will result in a ConnectionPoolTooBusyException. If the value is set to a negative number then the queue will be unbounded.

@maxWebSocketFrameSize

Number (int)

-

@maxWebSocketMessageSize

Number (int)

-

@maxWebsocketFrameSize

Number (int)

Set the max websocket frame size

@maxWebsocketMessageSize

Number (int)

Set the max websocket message size

@metricsName

String

Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options.

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@pipelining

Boolean

Set whether pipe-lining is enabled on the client

@pipeliningLimit

Number (int)

Set the limit of pending requests a pipe-lined HTTP/1 connection can send.

@poolCleanerPeriod

Number (int)

-

@protocolVersion

HttpVersion

Set the protocol version.

@proxyOptions

ProxyOptions

Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@sendUnmaskedFrames

Boolean

Set true when the client wants to skip frame masking. You may want to set it true on server by server websocket communication: In this case you are by passing RFC6455 protocol. It's false as default.

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

-

@sslHandshakeTimeoutUnit

TimeUnit

-

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@timeout

Number (long)

Sets the amount of time (in milliseconds) after which if the request does not return any data within the timeout period an failure will be passed to the handler and the request will be closed.

@trafficClass

Number (int)

Set the value of traffic class

@trustAll

Boolean

Set whether all server certificates should be trusted

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@tryUseCompression

Boolean

Set whether compression is enabled

@tryUsePerFrameWebSocketCompression

Boolean

-

@tryUsePerFrameWebsocketCompression

Boolean

-

@tryUsePerMessageWebSocketCompression

Boolean

-

@tryUsePerMessageWebsocketCompression

Boolean

-

@tryWebSocketDeflateFrameCompression

Boolean

-

@tryWebsocketDeflateFrameCompression

Boolean

-

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

@userAgent

String

Sets the Web Client user agent header. Defaults to Vert.x-WebClient/<version>.

@userAgentEnabled

Boolean

Sets whether the Web Client should send a user agent header. Defaults to true.

@verifyHost

Boolean

Set whether hostname verification is enabled

@webSocketCompressionAllowClientNoContext

Boolean

-

@webSocketCompressionLevel

Number (int)

-

@webSocketCompressionRequestServerNoContext

Boolean

-

@websocketCompressionAllowClientNoContext

Boolean

-

@websocketCompressionLevel

Number (int)

-

@websocketCompressionRequestServerNoContext

Boolean

-

- -# Coordinate - -Holds network coordinates of node - -| | | | -| --------- | ------------------------- | ---------------- | -| Name | Type | Description | -| `@adj` | `Number (float)` | Set adjustment | -| `@err` | `Number (float)` | Set error | -| `@height` | `Number (float)` | Set height | -| `@node` | `String` | Set name of node | -| `@vec` | `Array of Number (Float)` | Set vector | - -# CoordinateList - -Holds result of network coordinates query - -| | | | -| -------- | --------------------- | ------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested coordinates | -| `@list` | `Array of Coordinate` | Set list of coordinates | - -# DcCoordinates - -Holds coordinates of servers in datacenter - -| | | | -| ------------- | --------------------- | --------------------------------- | -| Name | Type | Description | -| `@datacenter` | `String` | Set datacenter | -| `@servers` | `Array of Coordinate` | Set list of servers in datacenter | - -# Event - -Holds properties of Consul event - -| | | | -| ---------- | -------------- | --------------------------------------------- | -| Name | Type | Description | -| `@id` | `String` | Set ID of event | -| `@lTime` | `Number (int)` | Set the Lamport clock time | -| `@name` | `String` | Set name of event | -| `@node` | `String` | Set regular expression to filter by node name | -| `@payload` | `String` | Set payload of event | -| `@service` | `String` | Set regular expression to filter by service | -| `@tag` | `String` | Set regular expression to filter by tag | -| `@version` | `Number (int)` | Set version | - -# EventList - -Holds result of events query - -| | | | -| -------- | ---------------- | -------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested events | -| `@list` | `Array of Event` | Set list of events | - -# EventListOptions - -Holds options for events list request - -| | | | -| ------------------ | ---------------------- | -------------------------------------- | -| Name | Type | Description | -| `@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query | -| `@name` | `String` | Set event name for filtering on events | - -# EventOptions - -Options used to trigger a new user event. - -| | | | -| ---------- | -------- | --------------------------------------------- | -| Name | Type | Description | -| `@node` | `String` | Set regular expression to filter by node name | -| `@payload` | `String` | Set payload of event | -| `@service` | `String` | Set regular expression to filter by service | -| `@tag` | `String` | Set regular expression to filter by tag | - -# KeyValue - -Represents key/value pair stored in Consul - -| | | | -| -------------- | --------------- | --------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@createIndex` | `Number (long)` | Set the internal index value that represents when the entry was created. | -| `@flags` | `Number (long)` | Set the flags attached to this entry. Clients can choose to use this however makes sense for their application. | -| `@key` | `String` | Set the key | -| `@lockIndex` | `Number (long)` | Set the number of times this key has successfully been acquired in a lock. | -| `@modifyIndex` | `Number (long)` | Set the last index that modified this key. | -| `@session` | `String` | Set the session that owns the lock | -| `@value` | `String` | Set the value | - -# KeyValueList - -Holds result of key/value pairs query - -| | | | -| -------- | ------------------- | --------------------------- | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index | -| `@list` | `Array of KeyValue` | Set list of key/value pairs | - -# KeyValueOptions - -Options used to put key/value pair to Consul. - -| | | | -| ----------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@acquireSession` | `String` | Set session ID for lock acquisition operation. | -| `@casIndex` | `Number (long)` | Set the Check-And-Set index. If the index is `0`, Consul will only put the key if it does not already exist. If the index is non-zero, the key is only set if the index matches the ModifyIndex of that key. | -| `@flags` | `Number (long)` | Set the flags. Flags is an value between `0` and 264-1 that can be attached to each entry. Clients can choose to use this however makes sense for their application. | -| `@releaseSession` | `String` | Set session ID for lock release operation. | - -# MaintenanceOptions - -Options used to placing a given service into "maintenance mode". During -maintenance mode, the service will be marked as unavailable and will not -be present in DNS or API queries. Maintenance mode is persistent and -will be automatically restored on agent restart. - -| | | | -| --------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@enable` | `Boolean` | Set maintenance mode to enabled: `true` to enter maintenance mode or `false` to resume normal operation. This flag is required. | -| `@id` | `String` | Set the ID of service. This field is required. | -| `@reason` | `String` | Set the reason message. If provided, its value should be a text string explaining the reason for placing the service into maintenance mode. This is simply to aid human operators. | - -# Node - -| | | | -| ------------- | -------- | -------------------- | -| Name | Type | Description | -| `@address` | `String` | Set node address | -| `@lanAddress` | `String` | Set node lan address | -| `@name` | `String` | Set node name | -| `@wanAddress` | `String` | Set node wan address | - -# NodeList - -Holds result of nodes query - -| | | | -| -------- | --------------- | --------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of nodes | -| `@list` | `Array of Node` | Set list of nodes | - -# NodeQueryOptions - -Options used to requesting list of nodes - -| | | | -| ------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query | -| `@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node. | - -# PreparedQueryDefinition - -Defines a prepared query. - -| | | | -| ----------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@dcs` | `Array of String` | Specifies a fixed list of remote datacenters to forward the query to if there are no healthy nodes in the local datacenter. Datacenters are queried in the order given in the list. If this option is combined with NearestN, then the NearestN queries will be performed first, followed by the list given by Datacenters. A given datacenter will only be queried one time during a failover, even if it is selected by both NearestN and is listed in Datacenters. | -| `@dnsTtl` | `String` | Set the TTL duration when query results are served over DNS. If this is specified, it will take precedence over any Consul agent-specific configuration. | -| `@id` | `String` | Set ID of the query, always generated by Consul | -| `@meta` | `String` | Set a list of user-defined key/value pairs that will be used for filtering the query results to nodes with the given metadata values present. | -| `@name` | `String` | Set an optional friendly name that can be used to execute a query instead of using its ID | -| `@nearestN` | `Number (int)` | Specifies that the query will be forwarded to up to NearestN other datacenters based on their estimated network round trip time using Network Coordinates from the WAN gossip pool. The median round trip time from the server handling the query to the servers in the remote datacenter is used to determine the priority. | -| `@passing` | `Boolean` | Specifies the behavior of the query's health check filtering. If this is set to false, the results will include nodes with checks in the passing as well as the warning states. If this is set to true, only nodes with checks in the passing state will be returned. | -| `@service` | `String` | Set the name of the service to query | -| `@session` | `String` | Set the ID of an existing session. This provides a way to automatically remove a prepared query when the given session is invalidated. If not given the prepared query must be manually removed when no longer needed. | -| `@tags` | `Array of String` | Set a list of service tags to filter the query results. For a service to pass the tag filter it must have all of the required tags, and none of the excluded tags (prefixed with \`\!\`). | -| `@templateRegexp` | `String` | Set regular expression which is used to extract fields from the entire name, once this template is selected. | -| `@templateType` | `String` | The template type, which must be `name_prefix_match`. This means that the template will apply to any query lookup with a name whose prefix matches the Name field of the template. | -| `@token` | `String` | Set the ACL token to use each time the query is executed. This allows queries to be executed by clients with lesser or even no ACL Token, so this should be used with care. | - -# PreparedQueryExecuteOptions - -Options used to execute prepared query - -| | | | -| -------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@limit` | `Number (int)` | Set the size of the list to the given number of nodes. This is applied after any sorting or shuffling. | -| `@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node. Passing `_agent` will use the agent's node for the sort. If this is not present, the default behavior will shuffle the nodes randomly each time the query is executed. | - -# PreparedQueryExecuteResponse - -The results of executing prepared query - -| | | | -| ------------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@dc` | `String` | Set the datacenter that ultimately provided the list of nodes | -| `@dnsTtl` | `String` | Set the TTL duration when query results are served over DNS. If this is specified, it will take precedence over any Consul agent-specific configuration. | -| `@failovers` | `Number (int)` | Set the number of remote datacenters that were queried while executing the query. | -| `@nodes` | `Array of ServiceEntry` | Set the list of healthy nodes providing the given service, as specified by the constraints of the prepared query. | -| `@service` | `String` | Set the service name that the query was selecting. This is useful for context in case an empty list of nodes is returned. | - -# Service - -Holds properties of service and node that its containing - -| | | | -| -------------- | ----------------- | --------------------------------------------------------------- | -| Name | Type | Description | -| `@address` | `String` | Set service address | -| `@id` | `String` | Set ID of service | -| `@meta` | `String` | Specifies arbitrary KV metadata linked to the service instance. | -| `@name` | `String` | Set service name | -| `@node` | `String` | Set node name | -| `@nodeAddress` | `String` | Set node address | -| `@port` | `Number (int)` | Set service port | -| `@tags` | `Array of String` | Set list of service tags | - -# ServiceEntry - -Holds properties of service, node and related checks - -| | | | -| ---------- | ---------------- | ------------------ | -| Name | Type | Description | -| `@checks` | `Array of Check` | Set list of checks | -| `@node` | `Node` | Set node | -| `@service` | `Service` | Set service | - -# ServiceEntryList - -Holds list of services, nodes and related checks - -| | | | -| -------- | ----------------------- | ------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of services | -| `@list` | `Array of ServiceEntry` | Set list of services | - -# ServiceList - -Holds result of services query - -| | | | -| -------- | ------------------ | ------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of services | -| `@list` | `Array of Service` | Set list of services | - -# ServiceOptions - -Options used to register service. - -| | | | -| ------------------- | ----------------------- | --------------------------------------------------------------- | -| Name | Type | Description | -| `@address` | `String` | Set service address | -| `@checkListOptions` | `Array of CheckOptions` | Set checks options of service | -| `@checkOptions` | `CheckOptions` | Set check options of service | -| `@id` | `String` | Set the ID of session | -| `@meta` | `String` | Specifies arbitrary KV metadata linked to the service instance. | -| `@name` | `String` | Set service name | -| `@port` | `Number (int)` | Set service port | -| `@tags` | `Array of String` | Set list of tags associated with service | - -# ServiceQueryOptions - -Options used to requesting list of services - -| | | | -| ------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query | -| `@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node. | -| `@tag` | `String` | Set tag for filtering request results | - -# Session - -Holds properties of Consul sessions - -| | | | -| -------------- | ----------------- | ---------------------------------------- | -| Name | Type | Description | -| `@checks` | `Array of String` | Set the list of associated health checks | -| `@createIndex` | `Number (long)` | Set the create index of session | -| `@id` | `String` | Set the ID of node | -| `@index` | `Number (long)` | Set Consul index | -| `@lockDelay` | `Number (long)` | Set the Lock delay of session | -| `@node` | `String` | Set the ID of node | - -# SessionList - -Holds result of sessions query - -| | | | -| -------- | ------------------ | ------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of sessions | -| `@list` | `Array of Session` | Set list of sessions | - -# SessionOptions - -Options used to create session. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@behavior

SessionBehavior

Set the behavior when a session is invalidated. The release behavior is the default if none is specified.

@checks

Array of String

Set a list of associated health checks. It is highly recommended that, if you override this list, you include the default "serfHealth"

@lockDelay

Number (long)

Set the lock-delay period.

@name

String

Set the human-readable name for the Session

@node

String

Set the node to which the session will be assigned

@ttl

Number (long)

Set the TTL interval. When TTL interval expires without being renewed, the session has expired and an invalidation is triggered. If specified, it must be between 10s and 86400s currently.

-

The contract of a TTL is that it represents a lower bound for invalidation; that is, Consul will not expire the session before the TTL is reached, but it is allowed to delay the expiration past the TTL.

-

The lowest practical TTL should be used to keep the number of managed sessions low. When locks are forcibly expired, such as during a leader election, sessions may not be reaped for up to double this TTL, so long TTL values (> 1 hour) should be avoided.

- -# TxnError - -Holds information describing which operations failed if the transaction -was rolled back. - -| | | | -| ---------- | -------------- | -------------------------------------------------------- | -| Name | Type | Description | -| `@opIndex` | `Number (int)` | Set the index of the failed operation in the transaction | -| `@what` | `String` | Set error message about why that operation failed. | - -# TxnKVOperation - -Holds operation to apply to the key/value store inside a transaction - -| | | | -| ---------- | --------------- | --------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@flags` | `Number (long)` | Set the flags attached to this entry. Clients can choose to use this however makes sense for their application. | -| `@index` | `Number (long)` | Set the index used for locking, unlocking, and check-and-set operations. | -| `@key` | `String` | Set the key | -| `@session` | `String` | Set the session used for locking, unlocking, and check-and-set operations. | -| `@type` | `TxnKVVerb` | Set the type of operation to perform | -| `@value` | `String` | Set the value | - -# TxnRequest - -Holds list of operations in transaction - -| | | | -| ----------------- | -------------- | ------------------------------------------------ | -| Name | Type | Description | -| `@operationsSize` | `Number (int)` | Returns the number of operations in this request | - -# TxnResponse - -Holds results of transaction - -| | | | -| -------------- | ------------------- | ---------------------------------------------- | -| Name | Type | Description | -| `@errors` | `Array of TxnError` | Adds error to this response | -| `@errorsSize` | `Number (int)` | Returns the number of errors in this response | -| `@resultsSize` | `Number (int)` | Returns the number of results in this response | diff --git a/docs/manual/@vertx/consul-client/index.md b/docs/manual/@vertx/consul-client/index.md deleted file mode 100644 index 82e6290f3..000000000 --- a/docs/manual/@vertx/consul-client/index.md +++ /dev/null @@ -1,958 +0,0 @@ -[Consul](https://www.consul.io) is a tool for discovering and -configuring services in your infrastructure. A Vert.x client allowing -applications to interact with a Consul system via blocking and -non-blocking HTTP API. - -# Using Vert.x Consul Client - -To use this project, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-consul-client - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-consul-client:${maven.version}' -``` - -# Creating a client - -Just use factory method: - -``` js -import { ConsulClient } from "@vertx/consul" - -let client = ConsulClient.create(vertx); -``` - -Also the client can be configured with an options. - -``` js -import { ConsulClient } from "@vertx/consul" - -let options = new ConsulClientOptions() - .setHost("consul.example.com"); - -let client = ConsulClient.create(vertx, options); -``` - -The following configuration is supported by the consul client: - - - `host` - Consul host. Defaults to `localhost` - - - `port` - Consul HTTP API port. Defaults to `8500` - - - `timeout` - Sets the amount of time (in milliseconds) after which if the request - does not return any data within the timeout period an failure will - be passed to the handler and the request will be closed. - - - `aclToken` - The ACL token. When provided, the client will use this token when - making requests to the Consul by providing the "?token" query - parameter. When not provided, the empty token, which maps to the - 'anonymous' ACL policy, is used. - - - `dc` - The datacenter name. When provided, the client will use it when - making requests to the Consul by providing the "?dc" query - parameter. When not provided, the datacenter of the consul agent is - queried. - -ConsulClient options extends WebClientOptions from `vertx-web-client` -module, therefore a lot of settings are available. Please see the -documentation. - -# Using the API - -The client API is represented by `ConsulClient`. The API is very similar -to Consul’s HTTP API that described in [Consul API -docs](https://www.consul.io/docs/agent/http.html) - -## Blocking queries - -Certain endpoints support a feature called a "blocking query". A -blocking query is used to wait for a potential change using long -polling. Any endpoint that supports blocking also provide a unique -identifier (index) representing the current state of the requested -resource. The following configuration is used to perform blocking -queries: - - - `index` - value indicating that the client wishes to wait for any changes - subsequent to that index. - - - `wait` - parameter specifying a maximum duration for the blocking request. - This is limited to 10 minutes. - - - -``` js -let opts = new BlockingQueryOptions() - .setIndex(lastIndex) - .setWait("1m"); -``` - -A critical note is that the return of a blocking request is **no -guarantee** of a change. It is possible that the timeout was reached or -that there was an idempotent write that does not affect the result of -the query. - -# Key/Value Store - -The KV endpoints are used to access Consul’s simple key/value store, -useful for storing service configuration or other metadata. The -following endpoints are supported: - - - To manage updates of individual keys, deletes of individual keys or - key prefixes, and fetches of individual keys or key prefixes - - - To manage updates or fetches of multiple keys inside a single, - atomic transaction - -## Get key-value pair from store - -Consul client can return the value for certain key - -``` js -consulClient.getValue("key", (res) => { - if (res.succeeded()) { - console.log("retrieved value: " + res.result().value); - console.log("modify index: " + res.result().modifyIndex); - } else { - res.cause().printStackTrace(); - } -}); -``` - -…​or it can return all key-value pairs with the given prefix - -``` js -consulClient.getValues("prefix", (res) => { - if (res.succeeded()) { - console.log("modify index: " + res.result().index); - res.result().list.forEach(kv => { - console.log("retrieved value: " + kv.value); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -The returned key-value object contains these fields (see -[documentation](https://www.consul.io/docs/agent/http/kv.html#single)): - - - `createIndex` - the internal index value that represents when the entry was created. - - - `modifyIndex` - the last index that modified this key - - - `lockIndex` - the number of times this key has successfully been acquired in a - lock - - - `key` - the key - - - `flags` - the flags attached to this entry. Clients can choose to use this - however makes sense for their application - - - `value` - the value - - - `session` - the session that owns the lock - -The modify index can be used for blocking queries: - -``` js -let opts = new BlockingQueryOptions() - .setIndex(modifyIndex) - .setWait("1m"); - -consulClient.getValueWithOptions("key", opts, (res) => { - if (res.succeeded()) { - console.log("retrieved value: " + res.result().value); - console.log("new modify index: " + res.result().modifyIndex); - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Put key-value pair to store - -``` js -consulClient.putValue("key", "value", (res) => { - if (res.succeeded()) { - let opResult = res.result() ? "success" : "fail"; - console.log("result of the operation: " + opResult); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Put request with options also accepted - -``` js -let opts = new KeyValueOptions() - .setFlags(42) - .setCasIndex(modifyIndex) - .setAcquireSession("acquireSessionID") - .setReleaseSession("releaseSessionID"); - -consulClient.putValueWithOptions("key", "value", opts, (res) => { - if (res.succeeded()) { - let opResult = res.result() ? "success" : "fail"; - console.log("result of the operation: " + opResult); - } else { - res.cause().printStackTrace(); - } -}); -``` - -The list of the query options that can be used with a `PUT` request: - - - `flags` - This can be used to specify an unsigned value between `0` and - `264-1`. Clients can choose to use this however makes sense for - their application. - - - `casIndex` - This flag is used to turn the PUT into a Check-And-Set operation. - This is very useful as a building block for more complex - synchronization primitives. If the index is `0`, Consul will only - put the key if it does not already exist. If the index is non-zero, - the key is only set if the index matches the ModifyIndex of that - key. - - - `acquireSession` - This flag is used to turn the PUT into a lock acquisition operation. - This is useful as it allows leader election to be built on top of - Consul. If the lock is not held and the session is valid, this - increments the LockIndex and sets the Session value of the key in - addition to updating the key contents. A key does not need to exist - to be acquired. If the lock is already held by the given session, - then the LockIndex is not incremented but the key contents are - updated. This lets the current lock holder update the key contents - without having to give up the lock and reacquire it. - - - `releaseSession` - This flag is used to turn the PUT into a lock release operation. - This is useful when paired with `acquireSession` as it allows - clients to yield a lock. This will leave the LockIndex unmodified - but will clear the associated Session of the key. The key must be - held by this session to be unlocked. - -## Transactions - -When connected to Consul 0.7 and later, client allows to manage updates -or fetches of multiple keys inside a single, atomic transaction. KV is -the only available operation type, though other types of operations may -be added in future versions of Consul to be mixed with key/value -operations (see -[documentation](https://www.consul.io/docs/agent/http/kv.html#txn)). - -``` js -let request = new TxnRequest() - .setOperations([new TxnKVOperation() - .setKey("key1") - .setValue("value1") - .setType("SET"), new TxnKVOperation() - .setKey("key2") - .setValue("value2") - .setType("SET")]); - -consulClient.transaction(request, (res) => { - if (res.succeeded()) { - console.log("succeeded results: " + res.result().results.length); - console.log("errors: " + res.result().errors.length); - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Delete key-value pair - -At last, Consul client allows to delete key-value pair from store: - -``` js -consulClient.deleteValue("key", (res) => { - if (res.succeeded()) { - console.log("complete"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -…​or all key-value pairs with corresponding key prefix - -``` js -consulClient.deleteValues("prefix", (res) => { - if (res.succeeded()) { - console.log("complete"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Services - -One of the main goals of service discovery is to provide a catalog of -available services. To that end, the agent provides a simple service -definition format to declare the availability of a service and to -potentially associate it with a health check. - -## Service registering - -A service definition must include a `name` and may optionally provide an -`id`, `tags`, `address`, `port`, and `checks`. - -``` js -let opts = new ServiceOptions() - .setName("serviceName") - .setId("serviceId") - .setTags(["tag1", "tag2"]) - .setCheckOptions(new CheckOptions() - .setTtl("10s")) - .setAddress("10.0.0.1") - .setPort(8048); -``` - - - `name` - the name of service - - - `id` - the `id` is set to the `name` if not provided. It is required that - all services have a unique ID per node, so if names might conflict - then unique IDs should be provided. - - - `tags` - list of values that are opaque to Consul but can be used to - distinguish between primary or secondary nodes, different versions, - or any other service level labels. - - - `address` - used to specify a service-specific IP address. By default, the IP - address of the agent is used, and this does not need to be provided. - - - `port` - used as well to make a service-oriented architecture simpler to - configure; this way, the address and port of a service can be - discovered. - - - `checks` - associated health checks - -These options used to register service in catalog: - -``` js -consulClient.registerService(opts, (res) => { - if (res.succeeded()) { - console.log("Service successfully registered"); - } else { - res.cause().printStackTrace(); - } - -}); -``` - -## Service discovery - -Consul client allows to obtain actual list of the nodes providing a -service - -``` js -consulClient.catalogServiceNodes("serviceName", (res) => { - if (res.succeeded()) { - console.log("found " + res.result().list.length + " services"); - console.log("consul state index: " + res.result().index); - res.result().list.forEach(service => { - console.log("Service node: " + service.node); - console.log("Service address: " + service.address); - console.log("Service port: " + service.port); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -It is possible to obtain this list with the statuses of the associated -health checks. The result can be filtered by check status. - -``` js -consulClient.healthServiceNodes("serviceName", passingOnly, (res) => { - if (res.succeeded()) { - console.log("found " + res.result().list.length + " services"); - console.log("consul state index: " + res.result().index); - res.result().list.forEach(entry => { - console.log("Service node: " + entry.node); - console.log("Service address: " + entry.service.address); - console.log("Service port: " + entry.service.port); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -There are additional parameters for services queries - -``` js -let queryOpts = new ServiceQueryOptions() - .setTag("tag1") - .setNear("_agent") - .setBlockingOptions(new BlockingQueryOptions() - .setIndex(lastIndex)); -``` - - - `tag` - by default, all nodes matching the service are returned. The list - can be filtered by tag using the `tag` query parameter - - - `near` - adding the optional `near` parameter with a node name will sort the - node list in ascending order based on the estimated round trip time - from that node. Passing `near`=`_agent` will use the agent’s node - for the sort. - - - `blockingOptions` - the blocking qyery options - -Then the request should look like - -``` js -consulClient.healthServiceNodesWithOptions("serviceName", passingOnly, queryOpts, (res) => { - if (res.succeeded()) { - console.log("found " + res.result().list.length + " services"); - } else { - res.cause().printStackTrace(); - } - -}); -``` - -## Deregister service - -Service can be deregistered by its ID: - -``` js -consulClient.deregisterService("serviceId", (res) => { - if (res.succeeded()) { - console.log("Service successfully deregistered"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Health Checks - -One of the primary roles of the agent is management of system-level and -application-level health checks. A health check is considered to be -application-level if it is associated with a service. If not associated -with a service, the check monitors the health of the entire node. - -``` js -let opts = new CheckOptions() - .setTcp("localhost:4848") - .setInterval("1s"); -``` - -The list of check options that supported by Consul client is: - - - `id` - the check ID - - - `name` - check name - - - `script` - local path to checking script. Also you should set checking interval - - - `http` - HTTP address to check. Also you should set checking interval - - - `ttl` - Time to Live of check - - - `tcp` - TCP address to check. Also you should set checking interval - - - `interval` - checking interval in Go’s time format which is sequence of decimal - numbers, each with optional fraction and a unit suffix, such as - "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or - "µs"), "ms", "s", "m", "h" - - - `notes` - the check notes - - - `serviceId` - the service ID to associate the registered check with an existing - service provided by the agent. - - - `deregisterAfter` - deregister timeout. This is optional field, which is a timeout in - the same time format as Interval and TTL. If a check is associated - with a service and has the critical state for more than this - configured value, then its associated service (and all of its - associated checks) will automatically be deregistered. The minimum - timeout is 1 minute, and the process that reaps critical services - runs every 30 seconds, so it may take slightly longer than the - configured timeout to trigger the deregistration. This should - generally be configured with a timeout that’s much, much longer than - any expected recoverable outage for the given service. - - - `status` - the check status to specify the initial state of the health check - -The `Name` field is mandatory, as is one of `Script`, `HTTP`, `TCP` or -`TTL`. `Script`, `TCP` and `HTTP` also require that `Interval` be set. -If an `ID` is not provided, it is set to `Name`. You cannot have -duplicate ID entries per agent, so it may be necessary to provide an ID. - -``` js -consulClient.registerCheck(opts, (res) => { - if (res.succeeded()) { - console.log("check successfully registered"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Events - -The Consul provides a mechanism to fire a custom user event to an entire -datacenter. These events are opaque to Consul, but they can be used to -build scripting infrastructure to do automated deploys, restart -services, or perform any other orchestration action. - -To send user event only its name is required - -``` js -consulClient.fireEvent("eventName", (res) => { - if (res.succeeded()) { - console.log("Event sent"); - console.log("id: " + res.result().id); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Also additional options can be specified. - - - `node` - regular expression to filter recipients by node name - - - `service` - regular expression to filter recipients by service - - - `tag` - regular expression to filter recipients by tag - - - `payload` - an optional body of the event. The body contents are opaque to - Consul and become the "payload" of the event - - - -``` js -let opts = new EventOptions() - .setTag("tag") - .setPayload("message"); - -consulClient.fireEventWithOptions("eventName", opts, (res) => { - if (res.succeeded()) { - console.log("Event sent"); - console.log("id: " + res.result().id); - } else { - res.cause().printStackTrace(); - } -}); -``` - -The Consul Client supports queries for obtain the most recent events -known by the agent. Events are broadcast using the gossip protocol, so -they have no global ordering nor do they make a promise of delivery. -Agents only buffer the most recent entries. The current buffer size is -256, but this value could change in the future. - -``` js -consulClient.listEvents((res) => { - if (res.succeeded()) { - console.log("Consul index: " + res.result().index); - res.result().list.forEach(event => { - console.log("Event id: " + event.id); - console.log("Event name: " + event.name); - console.log("Event payload: " + event.payload); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -The Consul Index can be used to prepare blocking requests: - -``` js -let opts = new EventListOptions() - .setName("eventName") - .setBlockingOptions(new BlockingQueryOptions() - .setIndex(lastIndex)); - -consulClient.listEventsWithOptions(opts, (res) => { - if (res.succeeded()) { - console.log("Consul index: " + res.result().index); - res.result().list.forEach(event => { - console.log("Event id: " + event.id); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Sessions - -Consul provides a session mechanism which can be used to build -distributed locks. Sessions act as a binding layer between nodes, health -checks, and key/value data. When a session is constructed, a node name, -a list of health checks, a behavior, a TTL, and a lock-delay may be -provided. - -``` js -let opts = new SessionOptions() - .setNode("nodeId") - .setBehavior("RELEASE"); -``` - - - `lockDelay` - can be specified as a duration string using an 's' suffix for - seconds. The default is '15s'. - - - `name` - can be used to provide a human-readable name for the Session. - - - `node` - must refer to a node that is already registered, if specified. By - default, the agent’s own node name is used. - - - `checks` - is used to provide a list of associated health checks. It is highly - recommended that, if you override this list, you include the default - `serfHealth`. - - - `behavior` - can be set to either `release` or `delete`. This controls the - behavior when a session is invalidated. By default, this is - `release`, causing any locks that are held to be released. Changing - this to `delete` causes any locks that are held to be deleted. - `delete` is useful for creating ephemeral key/value entries. - - - `ttl` - is a duration string, and like `LockDelay` it can use s as a suffix - for seconds. If specified, it must be between 10s and 86400s - currently. When provided, the session is invalidated if it is not - renewed before the TTL expires. - -For full info see [Consul Sessions -internals](https://www.consul.io/docs/internals/sessions.html) - -The newly constructed session is provided with a named ID that can be -used to identify it. This ID can be used with the KV store to acquire -locks: advisory mechanisms for mutual exclusion. - -``` js -consulClient.createSessionWithOptions(opts, (res) => { - if (res.succeeded()) { - console.log("Session successfully created"); - console.log("id: " + res.result()); - } else { - res.cause().printStackTrace(); - } -}); -``` - -And also to destroy it - -``` js -consulClient.destroySession(sessionId, (res) => { - if (res.succeeded()) { - console.log("Session successfully destroyed"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Lists sessions belonging to a node - -``` js -consulClient.listNodeSessions("nodeId", (res) => { - if (res.succeeded()) { - res.result().list.forEach(session => { - console.log("Session id: " + session.id); - console.log("Session node: " + session.node); - console.log("Session create index: " + session.createIndex); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -All of the read session endpoints support blocking queries and all -consistency modes. - -``` js -let blockingOpts = new BlockingQueryOptions() - .setIndex(lastIndex); - -consulClient.listSessionsWithOptions(blockingOpts, (res) => { - if (res.succeeded()) { - console.log("Found " + res.result().list.length + " sessions"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Nodes in datacenter - -``` js -consulClient.catalogNodes((res) => { - if (res.succeeded()) { - console.log("found " + res.result().list.length + " nodes"); - console.log("consul state index " + res.result().index); - } else { - res.cause().printStackTrace(); - } -}); -``` - -This endpoint supports blocking queries and sorting by distance from -specified node - -``` js -let opts = new NodeQueryOptions() - .setNear("_agent") - .setBlockingOptions(new BlockingQueryOptions() - .setIndex(lastIndex)); - -consulClient.catalogNodesWithOptions(opts, (res) => { - if (res.succeeded()) { - console.log("found " + res.result().list.length + " nodes"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Prepared Queries - -This endpoint creates, updates, destroys, and executes prepared queries. -Prepared queries allow you to register a complex service query and then -execute it later via its ID or name to get a set of healthy nodes that -provide a given service. This is particularly useful in combination with -Consul’s DNS Interface as it allows for much richer queries than would -be possible given the limited entry points exposed by DNS. - -There are many parameters to creating a prepared query. For full details -please [see docs](https://www.consul.io/api/query.html) - - - `dc` - Specifies the datacenter to query. This will default to the - datacenter of the agent being queried. This is specified as part of - the URL as a query parameter. - - - `name` - Specifies an optional friendly name that can be used to execute a - query instead of using its ID. - - - `session` - Specifies the ID of an existing session. This provides a way to - automatically remove a prepared query when the given session is - invalidated. If not given the prepared query must be manually - removed when no longer needed. - - - `token` - Specifies the ACL token to use each time the query is executed. This - allows queries to be executed by clients with lesser or even no ACL - Token, so this should be used with care. The token itself can only - be seen by clients with a management token. If the Token field is - left blank or omitted, the client’s ACL Token will be used to - determine if they have access to the service being queried. If the - client does not supply an ACL Token, the anonymous token will be - used. - - - `service` - Specifies the name of the service to query. This is required field. - - - `failover` - contains two fields, both of which are optional, and determine what - happens if no healthy nodes are available in the local datacenter - when the query is executed. It allows the use of nodes in other - datacenters with very little configuration. - - - `nearestN` - Specifies that the query will be forwarded to up to NearestN other - datacenters based on their estimated network round trip time using - Network Coordinates from the WAN gossip pool. The median round trip - time from the server handling the query to the servers in the remote - datacenter is used to determine the priority. - - - `datacenters` - Specifies a fixed list of remote datacenters to forward the query to - if there are no healthy nodes in the local datacenter. Datacenters - are queried in the order given in the list. If this option is - combined with NearestN, then the NearestN queries will be performed - first, followed by the list given by Datacenters. A given datacenter - will only be queried one time during a failover, even if it is - selected by both NearestN and is listed in Datacenters. - - - `onlyPassing` - Specifies the behavior of the query’s health check filtering. If - this is set to false, the results will include nodes with checks in - the passing as well as the warning states. If this is set to true, - only nodes with checks in the passing state will be returned. - - - `tags` - Specifies a list of service tags to filter the query results. For a - service to pass the tag filter it must have all of the required - tags, and none of the excluded tags (prefixed with \!). - - - `nodeMeta` - Specifies a list of user-defined key/value pairs that will be used - for filtering the query results to nodes with the given metadata - values present. - - - `dnsTtl` - Specifies the TTL duration when query results are served over DNS. - If this is specified, it will take precedence over any Consul - agent-specific configuration. - - - `templateType` - is the query type, which must be `name_prefix_match`. This means - that the template will apply to any query lookup with a name whose - prefix matches the Name field of the template. In this example, any - query for geo-db will match this query. Query templates are resolved - using a longest prefix match, so it’s possible to have high-level - templates that are overridden for specific services. Static queries - are always resolved first, so they can also override templates. - - - `templateRegexp` - is an optional regular expression which is used to extract fields - from the entire name, once this template is selected. In this - example, the regular expression takes the first item after the "-" - as the database name and everything else after as a tag. See the RE2 - reference for syntax of this regular expression. - - - -``` js -let def = new PreparedQueryDefinition() - .setName("Query name") - .setService("service-${match(1)}-${match(2)}") - .setDcs(["dc1", "dc42"]) - .setTemplateType("name_prefix_match") - .setTemplateRegexp("^find_(.+?)_(.+?)$"); -``` - -If the query is successfully created, its ID will be provided - -``` js -consulClient.createPreparedQuery(def, (res) => { - if (res.succeeded()) { - let queryId = res.result(); - console.log("Query created: " + queryId); - } else { - res.cause().printStackTrace(); - } -}); -``` - -The prepared query can be executed by its id - -``` js -consulClient.executePreparedQuery(id, (res) => { - if (res.succeeded()) { - let response = res.result(); - console.log("Found " + response.nodes.length + " nodes"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -or by query string that must match template regexp - -``` js -consulClient.executePreparedQuery("find_1_2", (res) => { - // matches template regexp "^find_(.+?)_(.+?)$" - if (res.succeeded()) { - let response = res.result(); - console.log("Found " + response.nodes.length + " nodes"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Finally, `ConsulClient` allows you to modify, get or delete prepared -queries - -``` js -consulClient.deletePreparedQuery(query, (res) => { - if (res.succeeded()) { - console.log("Query deleted"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -# Watches - -Watches are a way of specifying a view of data (e.g. list of nodes, KV -pairs, health checks) which is monitored for updates. When an update is -detected, an `Handler` with `WatchResult` is invoked. As an example, you -could watch the status of health checks and notify when a check is -critical. - -``` js -import { Watch } from "@vertx/consul" -Watch.key("foo/bar", vertx).setHandler((res) => { - if (res.succeeded()) { - console.log("value: " + res.nextResult().value); - } else { - res.cause().printStackTrace(); - } -}).start(); -``` diff --git a/docs/manual/@vertx/core/buffers.md b/docs/manual/@vertx/core/buffers.md deleted file mode 100644 index 5d39f7f60..000000000 --- a/docs/manual/@vertx/core/buffers.md +++ /dev/null @@ -1,155 +0,0 @@ -# Buffers - -Most data is shuffled around inside Vert.x using buffers. - -A buffer is a sequence of zero or more bytes that can read from or -written to and which expands automatically as necessary to accommodate -any bytes written to it. You can perhaps think of a buffer as smart byte -array. - -## Creating buffers - -Buffers can create by using one of the static `Buffer.buffer` methods. - -Buffers can be initialised from strings or byte arrays, or empty buffers -can be created. - -Here are some examples of creating buffers: - -Create a new empty buffer: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); -``` - -Create a buffer from a String. The String will be encoded in the buffer -using UTF-8. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer("some string"); -``` - -Create a buffer from a String: The String will be encoded using the -specified encoding, e.g: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer("some string", "UTF-16"); -``` - -Create a buffer from a byte\[\] - -``` java -{@link docoverride.buffer.Examples#example4} -``` - -Create a buffer with an initial size hint. If you know your buffer will -have a certain amount of data written to it you can create the buffer -and specify this size. This makes the buffer initially allocate that -much memory and is more efficient than the buffer automatically resizing -multiple times as data is written to it. - -Note that buffers created this way **are empty**. It does not create a -buffer filled with zeros up to the specified size. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(10000); -``` - -## Writing to a Buffer - -There are two ways to write to a buffer: appending, and random access. -In either case buffers will always expand automatically to encompass the -bytes. It’s not possible to get an `IndexOutOfBoundsException` with a -buffer. - -### Appending to a Buffer - -To append to a buffer, you use the `appendXXX` methods. Append methods -exist for appending various different types. - -The return value of the `appendXXX` methods is the buffer itself, so -these can be chained: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); - -buff.appendInt(123).appendString("hello\n"); - -socket.write(buff); -``` - -### Random access buffer writes - -You can also write into the buffer at a specific index, by using the -`setXXX` methods. Set methods exist for various different data types. -All the set methods take an index as the first argument - this -represents the position in the buffer where to start writing the data. - -The buffer will always expand as necessary to accommodate the data. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); - -buff.setInt(1000, 123); -buff.setString(0, "hello"); -``` - -## Reading from a Buffer - -Data is read from a buffer using the `getXXX` methods. Get methods exist -for various datatypes. The first argument to these methods is an index -in the buffer from where to get the data. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); -for (let i = 0; i < buff.length(); 4) { - console.log("int value at " + i + " is " + buff.getInt(i)); -} -``` - -## Working with unsigned numbers - -Unsigned numbers can be read from or appended/set to a buffer with the -`getUnsignedXXX`, `appendUnsignedXXX` and `setUnsignedXXX` methods. This -is useful when implementing a codec for a network protocol optimized to -minimize bandwidth consumption. - -In the following example, value 200 is set at specified position with -just one byte: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(128); -let pos = 15; -buff.setUnsignedByte(pos, 200); -console.log(buff.getUnsignedByte(pos)); -``` - -The console shows '200'. - -## Buffer length - -Use `length` to obtain the length of the buffer. The length of a buffer -is the index of the byte in the buffer with the largest index + 1. - -## Copying buffers - -Use `copy` to make a copy of the buffer - -## Slicing buffers - -A sliced buffer is a new buffer which backs onto the original buffer, -i.e. it does not copy the underlying data. Use `slice` to create a -sliced buffers - -## Buffer re-use - -After writing a buffer to a socket or other similar place, they cannot -be re-used. diff --git a/docs/manual/@vertx/core/cli-for-java.md b/docs/manual/@vertx/core/cli-for-java.md deleted file mode 100644 index 5bcee791f..000000000 --- a/docs/manual/@vertx/core/cli-for-java.md +++ /dev/null @@ -1,107 +0,0 @@ -# Typed options and arguments - -The described `Option` and `Argument` classes are *untyped*, meaning -that the only get String values. `TypedOption` and `TypedArgument` let -you specify a *type*, so the (String) raw value is converted to the -specified type. - -Instead of `Option` and `Argument`, use `TypedOption` and -`TypedArgument` in the `CLI` definition: - -``` java -CLI cli = CLI.create("copy") - .setSummary("A command line interface to copy files.") - .addOption(new TypedOption() - .setType(Boolean.class) - .setLongName("directory") - .setShortName("R") - .setDescription("enables directory support") - .setFlag(true)) - .addArgument(new TypedArgument() - .setType(File.class) - .setIndex(0) - .setDescription("The source") - .setArgName("source")) - .addArgument(new TypedArgument() - .setType(File.class) - .setIndex(0) - .setDescription("The destination") - .setArgName("target")); -``` - -Then you can retrieve the converted values as follows: - -``` java -CommandLine commandLine = cli.parse(userCommandLineArguments); -boolean flag = commandLine.getOptionValue("R"); -File source = commandLine.getArgumentValue("source"); -File target = commandLine.getArgumentValue("target"); -``` - -The vert.x CLI is able to convert to classes: - - - having a constructor with a single `String` argument, such as `File` - or `JsonObject` - - - with a static `from` or `fromString` method - - - with a static `valueOf` method, such as primitive types and - enumeration - -In addition, you can implement your own `Converter` and instruct the CLI -to use this converter: - -``` java -CLI cli = CLI.create("some-name") - .addOption(new TypedOption() - .setType(Person.class) - .setConverter(new PersonConverter()) - .setLongName("person")); -``` - -For booleans, the boolean values are evaluated to `true`: `on`, `yes`, -`1`, `true`. - -If one of your option has an `enum` as type, it computes the set of -choices automatically. - -# Using annotations - -You can also define your CLI using annotations. Definition is done using -annotation on the class and on *setter* methods: - -``` java -@Name("some-name") -@Summary("some short summary.") -@Description("some long description") -public class AnnotatedCli { - - private boolean flag; - private String name; - private String arg; - -@Option(shortName = "f", flag = true) -public void setFlag(boolean flag) { - this.flag = flag; -} - -@Option(longName = "name") -public void setName(String name) { - this.name = name; -} - -@Argument(index = 0) -public void setArg(String arg) { - this.arg = arg; -} -} -``` - -Once annotated, you can define the `CLI` and inject the values using: - -``` java -CLI cli = CLI.create(AnnotatedCli.class); -CommandLine commandLine = cli.parse(userCommandLineArguments); -AnnotatedCli instance = new AnnotatedCli(); -CLIConfigurator.inject(commandLine, instance); -``` diff --git a/docs/manual/@vertx/core/cli.md b/docs/manual/@vertx/core/cli.md deleted file mode 100644 index f7f5a624d..000000000 --- a/docs/manual/@vertx/core/cli.md +++ /dev/null @@ -1,261 +0,0 @@ -Vert.x Core provides an API for parsing command line arguments passed to -programs. It’s also able to print help messages detailing the options -available for a command line tool. Even if such features are far from -the Vert.x core topics, this API is used in the `Launcher` class that -you can use in *fat-jar* and in the `vertx` command line tools. In -addition, it’s polyglot (can be used from any supported language) and is -used in Vert.x Shell. - -Vert.x CLI provides a model to describe your command line interface, but -also a parser. This parser supports different types of syntax: - - - POSIX like options (ie. `tar -zxvf foo.tar.gz`) - - - GNU like long options (ie. `du --human-readable --max-depth=1`) - - - Java like properties (ie. `java -Djava.awt.headless=true - -Djava.net.useSystemProxies=true Foo`) - - - Short options with value attached (ie. `gcc -O2 foo.c`) - - - Long options with single hyphen (ie. `ant -projecthelp`) - -Using the CLI api is a 3-steps process: - -1. The definition of the command line interface - -2. The parsing of the user command line - -3. The query / interrogation - -# Definition Stage - -Each command line interface must define the set of options and arguments -that will be used. It also requires a name. The CLI API uses the -`Option` and `Argument` classes to describe options and arguments: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("copy").setSummary("A command line interface to copy files.").addOption(new Option() - .setLongName("directory") - .setShortName("R") - .setDescription("enables directory support") - .setFlag(true)).addArgument(new Argument() - .setIndex(0) - .setDescription("The source") - .setArgName("source")).addArgument(new Argument() - .setIndex(1) - .setDescription("The destination") - .setArgName("target")); -``` - -As you can see, you can create a new `CLI` using `CLI.create`. The -passed string is the name of the CLI. Once created you can set the -summary and description. The summary is intended to be short (one line), -while the description can contain more details. Each option and argument -are also added on the `CLI` object using the `addArgument` and -`addOption` methods. - -## Options - -An `Option` is a command line parameter identified by a *key* present in -the user command line. Options must have at least a long name or a short -name. Long name are generally used using a `--` prefix, while short -names are used with a single `-`. Options can get a description -displayed in the usage (see below). Options can receive 0, 1 or several -values. An option receiving 0 values is a `flag`, and must be declared -using `setFlag`. By default, options receive a single value, however, -you can configure the option to receive several values using -`setMultiValued`: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").setSummary("A command line interface illustrating the options valuation.").addOption(new Option() - .setLongName("flag") - .setShortName("f") - .setFlag(true) - .setDescription("a flag")).addOption(new Option() - .setLongName("single") - .setShortName("s") - .setDescription("a single-valued option")).addOption(new Option() - .setLongName("multiple") - .setShortName("m") - .setMultiValued(true) - .setDescription("a multi-valued option")); -``` - -Options can be marked as mandatory. A mandatory option not set in the -user command line throws an exception during the parsing: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addOption(new Option() - .setLongName("mandatory") - .setRequired(true) - .setDescription("a mandatory option")); -``` - -Non-mandatory options can have a *default value*. This value would be -used if the user does not set the option in the command line: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addOption(new Option() - .setLongName("optional") - .setDefaultValue("hello") - .setDescription("an optional option with a default value")); -``` - -An option can be *hidden* using the `setHidden` method. Hidden option -are not listed in the usage, but can still be used in the user command -line (for power-users). - -If the option value is contrained to a fixed set, you can set the -different acceptable choices: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addOption(new Option() - .setLongName("color") - .setDefaultValue("green") - .setChoices(["blue", "red", "green"]) - .setDescription("a color")); -``` - -Options can also be instantiated from their JSON form. - -## Arguments - -Unlike options, arguments do not have a *key* and are identified by -their *index*. For example, in `java com.acme.Foo`, `com.acme.Foo` is an -argument. - -Arguments do not have a name, there are identified using a 0-based -index. The first parameter has the index `0`: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addArgument(new Argument() - .setIndex(0) - .setDescription("the first argument") - .setArgName("arg1")).addArgument(new Argument() - .setIndex(1) - .setDescription("the second argument") - .setArgName("arg2")); -``` - -If you don’t set the argument indexes, it computes it automatically by -using the declaration order. - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addArgument(new Argument() - .setDescription("the first argument") - .setArgName("arg1")).addArgument(new Argument() - .setDescription("the second argument") - .setArgName("arg2")); -``` - -The `argName` is optional and used in the usage message. - -As options, `Argument` can: - - - be hidden using `setHidden` - - - be mandatory using `setRequired` - - - have a default value using `setDefaultValue` - - - receive several values using `setMultiValued` - only the last - argument can be multi-valued. - -Arguments can also be instantiated from their JSON form. - -## Usage generation - -Once your `CLI` instance is configured, you can generate the *usage* -message: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("copy").setSummary("A command line interface to copy files.").addOption(new Option() - .setLongName("directory") - .setShortName("R") - .setDescription("enables directory support") - .setFlag(true)).addArgument(new Argument() - .setIndex(0) - .setDescription("The source") - .setArgName("source")).addArgument(new Argument() - .setIndex(0) - .setDescription("The destination") - .setArgName("target")); - -let builder = new (Java.type("java.lang.StringBuilder"))(); -cli.usage(builder); -``` - -It generates an usage message like this one: - - Usage: copy [-R] source target - - A command line interface to copy files. - - -R,--directory enables directory support - -If you need to tune the usage message, check the `UsageMessageFormatter` -class. - -# Parsing Stage - -Once your `CLI` instance is configured, you can parse the user command -line to evaluate each option and argument: - -``` js -let commandLine = cli.parse(userCommandLineArguments); -``` - -The `parse` method returns a `CommandLine` object containing the values. -By default, it validates the user command line and checks that each -mandatory options and arguments have been set as well as the number of -values received by each option. You can disable the validation by -passing `false` as second parameter of `parse`. This is useful if you -want to check an argument or option is present even if the parsed -command line is invalid. - -You can check whether or not the `CommandLine` is valid using `isValid`. - -# Query / Interrogation Stage - -Once parsed, you can retrieve the values of the options and arguments -from the `CommandLine` object returned by the `parse` method: - -``` js -let commandLine = cli.parse(userCommandLineArguments); -let opt = commandLine.getOptionValue("my-option"); -let flag = commandLine.isFlagEnabled("my-flag"); -let arg0 = commandLine.getArgumentValue(0); -``` - -One of your option can have been marked as "help". If a user command -line enabled a "help" option, the validation won’t failed, but give you -the opportunity to check if the user asks for help: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("test").addOption(new Option() - .setLongName("help") - .setShortName("h") - .setFlag(true) - .setHelp(true)).addOption(new Option() - .setLongName("mandatory") - .setRequired(true)); - -let line = cli.parse(Java.type("java.util.Collections").singletonList("-h")); - -// The parsing does not fail and let you do: -if (!line.isValid() && line.isAskingForHelp()) { - let builder = new (Java.type("java.lang.StringBuilder"))(); - cli.usage(builder); - stream.print(builder.toString()); -} -``` diff --git a/docs/manual/@vertx/core/datagrams.md b/docs/manual/@vertx/core/datagrams.md deleted file mode 100644 index 97968c066..000000000 --- a/docs/manual/@vertx/core/datagrams.md +++ /dev/null @@ -1,285 +0,0 @@ -# Datagram sockets (UDP) - -Using User Datagram Protocol (UDP) with Vert.x is a piece of cake. - -UDP is a connection-less transport which basically means you have no -persistent connection to a remote peer. - -Instead you can send and receive packages and the remote address is -contained in each of them. - -Beside this UDP is not as safe as TCP to use, which means there are no -guarantees that a send Datagram packet will receive it’s endpoint at -all. - -The only guarantee is that it will either receive complete or not at -all. - -Also you usually can’t send data which is bigger then the MTU size of -your network interface, this is because each packet will be send as one -packet. - -But be aware even if the packet size is smaller then the MTU it may -still fail. - -At which size it will fail depends on the Operating System etc. So rule -of thumb is to try to send small packets. - -Because of the nature of UDP it is best fit for Applications where you -are allowed to drop packets (like for example a monitoring application). - -The benefits are that it has a lot less overhead compared to TCP, which -can be handled by the NetServer and NetClient (see above). - -## Creating a DatagramSocket - -To use UDP you first need t create a `DatagramSocket`. It does not -matter here if you only want to send data or send and receive. - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -``` - -The returned `DatagramSocket` will not be bound to a specific port. This -is not a problem if you only want to send data (like a client), but more -on this in the next section. - -## Sending Datagram packets - -As mentioned before, User Datagram Protocol (UDP) sends data in packets -to remote peers but is not connected to them in a persistent fashion. - -This means each packet can be sent to a different remote peer. - -Sending packets is as easy as shown here: - -``` js -import { Buffer } from "@vertx/core" -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -let buffer = Buffer.buffer("content"); -// Send a Buffer -socket.send(buffer, 1234, "10.0.0.1", (asyncResult) => { - console.log("Send succeeded? " + asyncResult.succeeded()); -}); -// Send a String -socket.send("A string used as content", 1234, "10.0.0.1", (asyncResult) => { - console.log("Send succeeded? " + asyncResult.succeeded()); -}); -``` - -## Receiving Datagram packets - -If you want to receive packets you need to bind the `DatagramSocket` by -calling `listen(…​)}` on it. - -This way you will be able to receive ``DatagramPacket`s that were sent -to the address and port on -which the `DatagramSocket`` listens. - -Beside this you also want to set a `Handler` which will be called for -each received `DatagramPacket`. - -The `DatagramPacket` has the following methods: - - - `sender`: The InetSocketAddress which represent the sender of the - packet - - - `data`: The Buffer which holds the data which was received. - -So to listen on a specific address and port you would do something like -shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -socket.listen(1234, "0.0.0.0", (asyncResult) => { - if (asyncResult.succeeded()) { - socket.handler((packet) => { - // Do something with the packet - }); - } else { - console.log("Listen failed" + asyncResult.cause()); - } -}); -``` - -Be aware that even if the {code AsyncResult} is successed it only means -it might be written on the network stack, but gives no guarantee that it -ever reached or will reach the remote peer at all. - -If you need such a guarantee then you want to use TCP with some -handshaking logic build on top. - -## Multicast - -### Sending Multicast packets - -Multicast allows multiple sockets to receive the same packets. This -works by having the sockets join the same multicast group to which you -can then send packets. - -We will look at how you can join a Multicast Group and receive packets -in the next section. - -Sending multicast packets is not different than sending normal Datagram -packets. The difference is that you pass in a multicast group address to -the send method. - -This is show here: - -``` js -import { Buffer } from "@vertx/core" -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -let buffer = Buffer.buffer("content"); -// Send a Buffer to a multicast address -socket.send(buffer, 1234, "230.0.0.1", (asyncResult) => { - console.log("Send succeeded? " + asyncResult.succeeded()); -}); -``` - -All sockets that have joined the multicast group 230.0.0.1 will receive -the packet. - -#### Receiving Multicast packets - -If you want to receive packets for specific Multicast group you need to -bind the `DatagramSocket` by calling `listen(…​)` on it to join the -Multicast group. - -This way you will receive DatagramPackets that were sent to the address -and port on which the `DatagramSocket` listens and also to those sent to -the Multicast group. - -Beside this you also want to set a Handler which will be called for each -received DatagramPacket. - -The `DatagramPacket` has the following methods: - - - `sender()`: The InetSocketAddress which represent the sender of the - packet - - - `data()`: The Buffer which holds the data which was received. - -So to listen on a specific address and port and also receive packets for -the Multicast group 230.0.0.1 you would do something like shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -socket.listen(1234, "0.0.0.0", (asyncResult) => { - if (asyncResult.succeeded()) { - socket.handler((packet) => { - // Do something with the packet - }); - - // join the multicast group - socket.listenMulticastGroup("230.0.0.1", (asyncResult2) => { - console.log("Listen succeeded? " + asyncResult2.succeeded()); - }); - } else { - console.log("Listen failed" + asyncResult.cause()); - } -}); -``` - -#### Unlisten / leave a Multicast group - -There are sometimes situations where you want to receive packets for a -Multicast group for a limited time. - -In this situations you can first start to listen for them and then later -unlisten. - -This is shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -socket.listen(1234, "0.0.0.0", (asyncResult) => { - if (asyncResult.succeeded()) { - socket.handler((packet) => { - // Do something with the packet - }); - - // join the multicast group - socket.listenMulticastGroup("230.0.0.1", (asyncResult2) => { - if (asyncResult2.succeeded()) { - // will now receive packets for group - - // do some work - - socket.unlistenMulticastGroup("230.0.0.1", (asyncResult3) => { - console.log("Unlisten succeeded? " + asyncResult3.succeeded()); - }); - } else { - console.log("Listen failed" + asyncResult2.cause()); - } - }); - } else { - console.log("Listen failed" + asyncResult.cause()); - } -}); -``` - -#### Blocking multicast - -Beside unlisten a Multicast address it’s also possible to just block -multicast for a specific sender address. - -Be aware this only work on some Operating Systems and kernel versions. -So please check the Operating System documentation if it’s supported. - -This an expert feature. - -To block multicast from a specific address you can call -`blockMulticastGroup(…​)` on the DatagramSocket like shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); - -// Some code - -// This would block packets which are send from 10.0.0.2 -socket.blockMulticastGroup("230.0.0.1", "10.0.0.2", (asyncResult) => { - console.log("block succeeded? " + asyncResult.succeeded()); -}); -``` - -### DatagramSocket properties - -When creating a `DatagramSocket` there are multiple properties you can -set to change it’s behaviour with the `DatagramSocketOptions` object. -Those are listed here: - - - `setSendBufferSize` Sets the send buffer size in bytes. - - - `setReceiveBufferSize` Sets the TCP receive buffer size in bytes. - - - `setReuseAddress` If true then addresses in TIME\_WAIT state can be - reused after they have been closed. - - - `setTrafficClass` - - - `setBroadcast` Sets or clears the SO\_BROADCAST socket option. When - this option is set, Datagram (UDP) packets may be sent to a local - interface’s broadcast address. - - - `setMulticastNetworkInterface` Sets or clears the - IP\_MULTICAST\_LOOP socket option. When this option is set, - multicast packets will also be received on the local interface. - - - `setMulticastTimeToLive` Sets the IP\_MULTICAST\_TTL socket option. - TTL stands for "Time to Live," but in this context it specifies the - number of IP hops that a packet is allowed to go through, - specifically for multicast traffic. Each router or gateway that - forwards a packet decrements the TTL. If the TTL is decremented to 0 - by a router, it will not be forwarded. - -### DatagramSocket Local Address - -You can find out the local address of the socket (i.e. the address of -this side of the UDP Socket) by calling `localAddress`. This will only -return an `InetSocketAddress` if you bound the `DatagramSocket` with -`listen(…​)` before, otherwise it will return null. - -### Closing a DatagramSocket - -You can close a socket by invoking the `close` method. This will close -the socket and release all resources diff --git a/docs/manual/@vertx/core/dataobjects.md b/docs/manual/@vertx/core/dataobjects.md deleted file mode 100644 index f9c27c975..000000000 --- a/docs/manual/@vertx/core/dataobjects.md +++ /dev/null @@ -1,2367 +0,0 @@ -# AddressResolverOptions - -Configuration options for Vert.x hostname resolver. The resolver uses -the local - -hosts - -file and performs DNS - -A - -and - -AAAA - -queries. - -| | | | -| -------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@cacheMaxTimeToLive` | `Number (int)` | Set the cache maximum TTL value in seconds. After successful resolution IP addresses are cached with their DNS response TTL, use this to set a maximum value to all responses TTL. | -| `@cacheMinTimeToLive` | `Number (int)` | Set the cache minimum TTL value in seconds. After resolution successful IP addresses are cached with their DNS response TTL, use this to set a minimum value to all responses TTL. | -| `@cacheNegativeTimeToLive` | `Number (int)` | Set the negative cache TTL value in seconds. After a failed hostname resolution, DNS queries won't be retried for a period of time equals to the negative TTL. This allows to reduce the response time of negative replies and reduce the amount of messages to DNS servers. | -| `@hostsPath` | `String` | Set the path of an alternate hosts configuration file to use instead of the one provided by the os. The default value is null, so the operating system hosts config is used. | -| `@hostsValue` | `Buffer` | Set an alternate hosts configuration file to use instead of the one provided by the os. The value should contain the hosts content literaly, for instance 127.0.0.1 localhost The default value is null, so the operating system hosts config is used. | -| `@maxQueries` | `Number (int)` | Set the maximum number of queries when an hostname is resolved. | -| `@ndots` | `Number (int)` | Set the ndots value used when resolving using search domains, the default value is `-1` which determines the value from the OS on Linux or uses the value `1`. | -| `@optResourceEnabled` | `Boolean` | Set to true to enable the automatic inclusion in DNS queries of an optional record that hints the remote DNS server about how much data the resolver can read per response. | -| `@queryTimeout` | `Number (long)` | Set the query timeout in milliseconds, i.e the amount of time after a query is considered to be failed. | -| `@rdFlag` | `Boolean` | Set the DNS queries Recursion Desired flag value. | -| `@rotateServers` | `Boolean` | Set to `true` to enable round-robin selection of the dns server to use. It spreads the query load among the servers and avoids all lookup to hit the first server of the list. | -| `@searchDomains` | `Array of String` | Set the lists of DNS search domains. When the search domain list is null, the effective search domain list will be populated using the system DNS search domains. | -| `@servers` | `Array of String` | Set the list of DNS server addresses, an address is the IP of the dns server, followed by an optional colon and a port, e.g `8.8.8.8` or {code 192.168.0.1:40000}. When the list is empty, the resolver will use the list of the system DNS server addresses from the environment, if that list cannot be retrieved it will use Google's public DNS servers `"8.8.8.8"` and `"8.8.4.4"`. | - -# Argument - -Defines a command line argument. Unlike options, argument don't have -names and are identified using an index. The first index is 0 (because -we are in the computer world). - -| | | | -| --------------- | -------------- | --------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@argName` | `String` | Sets the argument name of this link. | -| `@defaultValue` | `String` | Sets the default value of this link. | -| `@description` | `String` | Sets the description of the link. | -| `@hidden` | `Boolean` | Sets whether or not the current link is hidden. | -| `@index` | `Number (int)` | Sets the argument index. | -| `@multiValued` | `Boolean` | Sets whether or not the argument can receive several values. Only the last argument can receive several values. | -| `@required` | `Boolean` | Sets whether or not the current link is required. | - -# ClientOptionsBase - -Base class for Client options - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@connectTimeout

Number (int)

Set the connect timeout

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Sets the list of enabled SSL/TLS protocols.

@idleTimeout

Number (int)

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 within the timeout.

-

If you want change default time unit, use link

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@localAddress

String

Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@metricsName

String

Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options in pem format

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@proxyOptions

ProxyOptions

Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

Set the SSL handshake timeout, default time unit is seconds.

@sslHandshakeTimeoutUnit

TimeUnit

Set the SSL handshake timeout unit. If not specified, default is seconds.

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@trafficClass

Number (int)

Set the value of traffic class

@trustAll

Boolean

Set whether all server certificates should be trusted

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

- -# CopyOptions - -Describes the copy (and move) options. - -| | | | -| ------------------ | --------- | -------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@atomicMove` | `Boolean` | Whether move should be performed as an atomic filesystem operation. Defaults to `false`. | -| `@copyAttributes` | `Boolean` | Whether the file attributes should be copied. Defaults to `false`. | -| `@nofollowLinks` | `Boolean` | Whether symbolic links should not be followed during copy or move operations. Defaults to `false`. | -| `@replaceExisting` | `Boolean` | Whether an existing file, empty directory, or link should be replaced. Defaults to `false`. | - -# DatagramSocketOptions - -Options used to configure a datagram socket. - -| | | | -| ---------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@broadcast` | `Boolean` | Set if the socket can send or receive broadcast packets | -| `@ipV6` | `Boolean` | Set if IP v6 should be used | -| `@logActivity` | `Boolean` | Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger. | -| `@loopbackModeDisabled` | `Boolean` | Set if loopback mode is disabled | -| `@multicastNetworkInterface` | `String` | Set the multicast network interface address | -| `@multicastTimeToLive` | `Number (int)` | Set the multicast ttl value | -| `@receiveBufferSize` | `Number (int)` | Set the TCP receive buffer size | -| `@reuseAddress` | `Boolean` | Set the value of reuse address | -| `@reusePort` | `Boolean` | Set the value of reuse port. This is only supported by native transports. | -| `@sendBufferSize` | `Number (int)` | Set the TCP send buffer size | -| `@trafficClass` | `Number (int)` | Set the value of traffic class | - -# DeliveryOptions - -Delivery options are used to configure message delivery. - -Delivery options allow to configure delivery timeout and message codec -name, and to provide any headers that you wish to send with the message. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@codecName

String

Set the codec name.

@headers

String

Add a message header. Message headers can be sent with any message and will be accessible with link at the recipient.

@localOnly

Boolean

Whether a message should be delivered to local consumers only. Defaults to false.

-

This option is effective in clustered mode only and does not apply to reply messages.

@sendTimeout

Number (long)

Set the send timeout.

- -# DeploymentOptions - -Options for configuring a verticle deployment. - -| | | | -| --------------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@config` | `Json object` | Set the JSON configuration that will be passed to the verticle(s) when it's deployed | -| `@extraClasspath` | `Array of String` | Set any extra classpath to be used when deploying the verticle. Ignored if no isolation group is set. | -| `@ha` | `Boolean` | Set whether the verticle(s) will be deployed as HA. | -| `@instances` | `Number (int)` | Set the number of instances that should be deployed. | -| `@isolatedClasses` | `Array of String` | Set the isolated class names. | -| `@isolationGroup` | `String` | Set the isolation group that will be used when deploying the verticle(s) | -| `@maxWorkerExecuteTime` | `Number (long)` | Sets the value of max worker execute time, in link. The default value of link is | -| `@maxWorkerExecuteTimeUnit` | `TimeUnit` | Set the time unit of `maxWorkerExecuteTime` | -| `@multiThreaded` | `Boolean` | Set whether the verticle(s) should be deployed as a multi-threaded worker verticle. WARNING: Multi-threaded worker verticles are a deprecated feature. Most applications will have no need for them. Because of the concurrency in these verticles you have to be very careful to keep the verticle in a consistent state using standard Java techniques for multi-threaded programming. You can read the documentation that explains how you can replace this feature by the usage of custom worker pools or `executeBlocking` calls. | -| `@worker` | `Boolean` | Set whether the verticle(s) should be deployed as a worker verticle | -| `@workerPoolName` | `String` | Set the worker pool name to use for this verticle. When no name is set, the Vert.x worker pool will be used, when a name is set, the verticle will use a named worker pool. | -| `@workerPoolSize` | `Number (int)` | Set the maximum number of worker threads to be used by the Vert.x instance. | - -# DnsClientOptions - -Configuration options for Vert.x DNS client. - -| | | | -| ------------------- | --------------- | -------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@host` | `String` | Set the host name to be used by this client in requests. | -| `@logActivity` | `Boolean` | Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger. | -| `@port` | `Number (int)` | Set the port to be used by this client in requests. | -| `@queryTimeout` | `Number (long)` | Set the query timeout in milliseconds, i.e the amount of time after a query is considered to be failed. | -| `@recursionDesired` | `Boolean` | Set whether or not recursion is desired | - -# EventBusOptions - -Options to configure the event bus. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@acceptBacklog

Number (int)

Set the accept back log.

@clientAuth

ClientAuth

Set whether client auth is required

@clusterPingInterval

Number (long)

Set the value of cluster ping interval, in ms.

@clusterPingReplyInterval

Number (long)

Set the value of cluster ping reply interval, in ms.

@clusterPublicHost

String

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.

@clusterPublicPort

Number (int)

See link for an explanation.

@clustered

Boolean

Sets whether or not the event bus is clustered.

@connectTimeout

Number (int)

Sets the connect timeout

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Sets the list of enabled SSL/TLS protocols.

@host

String

Sets the host.

@idleTimeout

Number (int)

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 within the timeout.

-

If you want change default time unit, use link

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options in pem format

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@port

Number (int)

Sets the port.

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reconnectAttempts

Number (int)

Sets the value of reconnect attempts.

@reconnectInterval

Number (long)

Set the reconnect interval.

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

Set the SSL handshake timeout, default time unit is seconds.

@sslHandshakeTimeoutUnit

TimeUnit

Set the SSL handshake timeout unit. If not specified, default is seconds.

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@trafficClass

Number (int)

Set the value of traffic class

@trustAll

Boolean

Set whether all server certificates should be trusted.

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

- -# FileSystemOptions - -Vert.x file system base configuration, this class can be extended by -provider implementations to configure those specific implementations. - -| | | | -| ---------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@classPathResolvingEnabled` | `Boolean` | When vert.x cannot find the file on the filesystem it tries to resolve the file from the class path when this is set to `true`. | -| `@fileCacheDir` | `String` | When vert.x reads a file that is packaged with the application it gets extracted to this directory first and subsequent reads will use the extracted file to get better IO performance. | -| `@fileCachingEnabled` | `Boolean` | Set to `true` to cache files on the real file system when the filesystem performs class path resolving. | - -# GoAway - -A frame. - -| | | | -| --------------- | --------------- | ----------------------------- | -| Name | Type | Description | -| `@debugData` | `Buffer` | Set the additional debug data | -| `@errorCode` | `Number (long)` | | -| `@lastStreamId` | `Number (int)` | Set the last stream id. | - -# Http2Settings - -HTTP2 settings, the settings is initialized with the default HTTP/2 -values. - -The settings expose the parameters defined by the HTTP/2 specification, -as well as extra settings for protocol extensions. - -| | | | -| ----------------------- | --------------- | ---------------------- | -| Name | Type | Description | -| `@headerTableSize` | `Number (long)` | Set HTTP/2 setting. | -| `@initialWindowSize` | `Number (int)` | Set the HTTP/2 setting | -| `@maxConcurrentStreams` | `Number (long)` | Set the HTTP/2 setting | -| `@maxFrameSize` | `Number (int)` | Set the HTTP/2 setting | -| `@maxHeaderListSize` | `Number (long)` | Set the HTTP/2 setting | -| `@pushEnabled` | `Boolean` | Set the HTTP/2 setting | - -# HttpClientOptions - -Options describing how an link will make connections. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@alpnVersions

Array of HttpVersion

Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiation. When the list is empty, the client provides a best effort list according to link:

-

: [ "h2", "http/1.1" ] otherwise: [link]

@connectTimeout

Number (int)

Set the connect timeout

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@decoderInitialBufferSize

Number (int)

set to initialBufferSizeHttpDecoder the initial buffer of the HttpDecoder.

@defaultHost

String

Set the default host name to be used by this client in requests if none is provided when making the request.

@defaultPort

Number (int)

Set the default port to be used by this client in requests if none is provided when making the request.

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Sets the list of enabled SSL/TLS protocols.

@forceSni

Boolean

By default, the server name is only sent for Fully Qualified Domain Name (FQDN), setting this property to true forces the server name to be always sent.

@http2ClearTextUpgrade

Boolean

Set to true when an h2c connection is established using an HTTP/1.1 upgrade request, and false when an h2c connection is established directly (with prior knowledge).

@http2ConnectionWindowSize

Number (int)

Set the default HTTP/2 connection window size. It overrides the initial window size set by link, so the connection window size is greater than for its streams, in order the data throughput. A value of -1 reuses the initial window size setting.

@http2KeepAliveTimeout

Number (int)

Set the keep alive timeout for HTTP/2 connections, in seconds. This value determines how long a connection remains unused in the pool before being evicted and closed. A timeout of 0 means there is no timeout and the connection can remain indefinitely in the pool.

@http2MaxPoolSize

Number (int)

Set the maximum pool size for HTTP/2 connections

@http2MultiplexingLimit

Number (int)

Set a client limit of the number concurrent streams for each HTTP/2 connection, this limits the number of streams the client can create for a connection. The effective number of streams for a connection is the min of this value and the server's initial settings. Setting the value to -1 means to use the value sent by the server's initial settings. -1 is the default value.

@idleTimeout

Number (int)

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 within the timeout.

-

If you want change default time unit, use link

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@initialSettings

Http2Settings

Set the HTTP/2 connection settings immediately sent by to the server when the client connects.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keepAlive

Boolean

Set whether keep alive is enabled on the client

@keepAliveTimeout

Number (int)

Set the keep alive timeout for HTTP/1.x, in seconds. This value determines how long a connection remains unused in the pool before being evicted and closed. A timeout of 0 means there is no timeout and the connection can remain indefinitely in the pool.

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@localAddress

String

Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@maxChunkSize

Number (int)

Set the maximum HTTP chunk size

@maxHeaderSize

Number (int)

Set the maximum length of all headers for HTTP/1.x .

@maxInitialLineLength

Number (int)

Set the maximum length of the initial line for HTTP/1.x (e.g. "HTTP/1.1 200 OK")

@maxPoolSize

Number (int)

Set the maximum pool size for connections

@maxRedirects

Number (int)

Set to maxRedirects the maximum number of redirection a request can follow.

@maxWaitQueueSize

Number (int)

Set the maximum requests allowed in the wait queue, any requests beyond the max size will result in a ConnectionPoolTooBusyException. If the value is set to a negative number then the queue will be unbounded.

@maxWebSocketFrameSize

Number (int)

Set the max WebSocket frame size

@maxWebSocketMessageSize

Number (int)

Set the max WebSocket message size

@maxWebsocketFrameSize

Number (int)

Set the max WebSocket frame size

@maxWebsocketMessageSize

Number (int)

Set the max WebSocket message size

@metricsName

String

Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options in pem format

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@pipelining

Boolean

Set whether pipe-lining is enabled on the client

@pipeliningLimit

Number (int)

Set the limit of pending requests a pipe-lined HTTP/1 connection can send.

@poolCleanerPeriod

Number (int)

Set the connection pool cleaner period in milli seconds, a non positive value disables expiration checks and connections will remain in the pool until they are closed.

@protocolVersion

HttpVersion

Set the protocol version.

@proxyOptions

ProxyOptions

Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@sendUnmaskedFrames

Boolean

Set true when the client wants to skip frame masking. You may want to set it true on server by server WebSocket communication: in this case you are by passing RFC6455 protocol. It's false as default.

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

Set the SSL handshake timeout, default time unit is seconds.

@sslHandshakeTimeoutUnit

TimeUnit

Set the SSL handshake timeout unit. If not specified, default is seconds.

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@trafficClass

Number (int)

Set the value of traffic class

@trustAll

Boolean

Set whether all server certificates should be trusted

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@tryUseCompression

Boolean

Set whether compression is enabled

@tryUsePerFrameWebSocketCompression

Boolean

Set whether the client will offer the WebSocket per-frame deflate compression extension.

@tryUsePerFrameWebsocketCompression

Boolean

Set whether the client will offer the WebSocket per-frame deflate compression extension.

@tryUsePerMessageWebSocketCompression

Boolean

Set whether the client will offer the WebSocket per-message deflate compression extension.

@tryUsePerMessageWebsocketCompression

Boolean

Set whether the client will offer the WebSocket per-message deflate compression extension.

@tryWebSocketDeflateFrameCompression

Boolean

@tryWebsocketDeflateFrameCompression

Boolean

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

@verifyHost

Boolean

Set whether hostname verification is enabled

@webSocketCompressionAllowClientNoContext

Boolean

Set whether the client_no_context_takeover parameter of the WebSocket per-message deflate compression extension will be offered.

@webSocketCompressionLevel

Number (int)

Set the WebSocket deflate compression level.

@webSocketCompressionRequestServerNoContext

Boolean

Set whether the server_no_context_takeover parameter of the WebSocket per-message deflate compression extension will be offered.

@websocketCompressionAllowClientNoContext

Boolean

Set whether the client_no_context_takeover parameter of the WebSocket per-message deflate compression extension will be offered.

@websocketCompressionLevel

Number (int)

Set the WebSocket deflate compression level.

@websocketCompressionRequestServerNoContext

Boolean

Set whether the server_no_context_takeover parameter of the WebSocket per-message deflate compression extension will be offered.

- -# HttpServerOptions - -Represents options used by an link instance - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@acceptBacklog

Number (int)

Set the accept back log

@acceptUnmaskedFrames

Boolean

Set true when the server accepts unmasked frame. As default Server doesn't accept unmasked frame, you can bypass this behaviour (RFC 6455) setting true. It's set to false as default.

@alpnVersions

Array of HttpVersion

Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiatiation.

@clientAuth

ClientAuth

Set whether client auth is required

@clientAuthRequired

Boolean

Set whether client auth is required

@compressionLevel

Number (int)

This method allows to set the compression level to be used in http1.x/2 response bodies when compression support is turned on (@see setCompressionSupported) and the client advertises to support deflate/gzip compression in the Accept-Encoding header

-

default value is : 6 (Netty legacy)

-

The compression level determines how much the data is compressed on a scale from 1 to 9, where '9' is trying to achieve the maximum compression ratio while '1' instead is giving priority to speed instead of compression ratio using some algorithm optimizations and skipping pedantic loops that usually gives just little improvements

-

While one can think that best value is always the maximum compression ratio, there's a trade-off to consider: the most compressed level requires the most computational work to compress/decompress data, e.g. more dictionary lookups and loops.

-

E.g. you have it set fairly high on a high-volume website, you may experience performance degradation and latency on resource serving due to CPU overload, and, however - as the computational work is required also client side while decompressing - setting an higher compression level can result in an overall higher page load time especially nowadays when many clients are handled mobile devices with a low CPU profile.

-

see also: http://www.gzip.org/algorithm.txt

@compressionSupported

Boolean

Set whether the server should support gzip/deflate compression (serving compressed responses to clients advertising support for them with Accept-Encoding header)

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@decoderInitialBufferSize

Number (int)

Set the initial buffer size for the HTTP decoder

@decompressionSupported

Boolean

Set whether the server supports decompression

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Sets the list of enabled SSL/TLS protocols.

@handle100ContinueAutomatically

Boolean

Set whether 100 Continue should be handled automatically

@host

String

Set the host

@http2ConnectionWindowSize

Number (int)

Set the default HTTP/2 connection window size. It overrides the initial window size set by link, so the connection window size is greater than for its streams, in order the data throughput. A value of -1 reuses the initial window size setting.

@idleTimeout

Number (int)

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 within the timeout.

-

If you want change default time unit, use link

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@initialSettings

Http2Settings

Set the HTTP/2 connection settings immediatly sent by the server when a client connects.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@maxChunkSize

Number (int)

Set the maximum HTTP chunk size that link will receive

@maxHeaderSize

Number (int)

Set the maximum length of all headers for HTTP/1.x .

@maxInitialLineLength

Number (int)

Set the maximum length of the initial line for HTTP/1.x (e.g. "GET / HTTP/1.0")

@maxWebSocketFrameSize

Number (int)

Set the maximum WebSocket frames size

@maxWebSocketMessageSize

Number (int)

Set the maximum WebSocket message size

@maxWebsocketFrameSize

Number (int)

Set the maximum WebSocket frames size

@maxWebsocketMessageSize

Number (int)

Set the maximum WebSocket message size

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options in pem format

@perFrameWebSocketCompressionSupported

Boolean

Enable or disable support for the WebSocket per-frame deflate compression extension.

@perFrameWebsocketCompressionSupported

Boolean

Enable or disable support for the WebSocket per-frame deflate compression extension.

@perMessageWebSocketCompressionSupported

Boolean

Enable or disable support for WebSocket per-message deflate compression extension.

@perMessageWebsocketCompressionSupported

Boolean

Enable or disable support for WebSocket per-message deflate compression extension.

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@port

Number (int)

Set the port

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@sni

Boolean

Set whether the server supports Server Name Indiciation

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

Set the SSL handshake timeout, default time unit is seconds.

@sslHandshakeTimeoutUnit

TimeUnit

Set the SSL handshake timeout unit. If not specified, default is seconds.

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@trafficClass

Number (int)

Set the value of traffic class

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

@webSocketAllowServerNoContext

Boolean

Set whether the WebSocket server will accept the server_no_context_takeover parameter of the per-message deflate compression extension offered by the client.

@webSocketCompressionLevel

Number (int)

Set the WebSocket compression level.

@webSocketPreferredClientNoContext

Boolean

Set whether the WebSocket server will accept the client_no_context_takeover parameter of the per-message deflate compression extension offered by the client.

@webSocketSubProtocols

Array of String

Set the WebSocket list of sub-protocol supported by the server.

@websocketAllowServerNoContext

Boolean

Set whether the WebSocket server will accept the server_no_context_takeover parameter of the per-message deflate compression extension offered by the client.

@websocketCompressionLevel

Number (int)

Set the WebSocket compression level.

@websocketPreferredClientNoContext

Boolean

Set whether the WebSocket server will accept the client_no_context_takeover parameter of the per-message deflate compression extension offered by the client.

@websocketSubProtocols

String

Set the WebSocket sub-protocols supported by the server.

- -# JdkSSLEngineOptions - -Configures a link to use the JDK ssl engine implementation. - -| | | | -| ---- | ---- | ----------- | -| Name | Type | Description | - -# JksOptions - -Key or trust store options configuring private key and/or certificates -based on Java Keystore files. - -When used as a key store, it should point to a store containing a -private key and its certificate. When used as a trust store, it should -point to a store containing a list of trusted certificates. - -The store can either be loaded by Vert.x from the filesystem: - -HttpServerOptions options = HttpServerOptions.httpServerOptions(); -options.setKeyStore(new -JKSOptions().setPath("/mykeystore.jks").setPassword("foo")); - -Or directly provided as a buffer: - -Buffer store = vertx.fileSystem().readFileBlocking("/mykeystore.jks"); -options.setKeyStore(new -JKSOptions().setValue(store).setPassword("foo")); - -| | | | -| ----------- | -------- | ---------------------------------- | -| Name | Type | Description | -| `@password` | `String` | Set the password for the key store | -| `@path` | `String` | Set the path to the key store | -| `@value` | `Buffer` | Set the key store as a buffer | - -# MetricsOptions - -Vert.x metrics base configuration, this class can be extended by -provider implementations to configure those specific implementations. - -| | | | -| ---------- | --------- | ----------------------------------------------------------- | -| Name | Type | Description | -| `@enabled` | `Boolean` | Set whether metrics will be enabled on the Vert.x instance. | - -# NetClientOptions - -Options for configuring a link. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@connectTimeout

Number (int)

Set the connect timeout

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Sets the list of enabled SSL/TLS protocols.

@hostnameVerificationAlgorithm

String

Set the hostname verification algorithm interval To disable hostname verification, set hostnameVerificationAlgorithm to an empty String

@idleTimeout

Number (int)

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 within the timeout.

-

If you want change default time unit, use link

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@localAddress

String

Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@metricsName

String

Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options in pem format

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@proxyOptions

ProxyOptions

Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reconnectAttempts

Number (int)

Set the value of reconnect attempts

@reconnectInterval

Number (long)

Set the reconnect interval

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

Set the SSL handshake timeout, default time unit is seconds.

@sslHandshakeTimeoutUnit

TimeUnit

Set the SSL handshake timeout unit. If not specified, default is seconds.

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@trafficClass

Number (int)

Set the value of traffic class

@trustAll

Boolean

Set whether all server certificates should be trusted

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

- -# NetServerOptions - -Options for configuring a link. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@acceptBacklog

Number (int)

Set the accept back log

@clientAuth

ClientAuth

Set whether client auth is required

@clientAuthRequired

Boolean

Set whether client auth is required

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Sets the list of enabled SSL/TLS protocols.

@host

String

Set the host

@idleTimeout

Number (int)

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 within the timeout.

-

If you want change default time unit, use link

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options in pem format

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@port

Number (int)

Set the port

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@sni

Boolean

Set whether the server supports Server Name Indiciation

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

Set the SSL handshake timeout, default time unit is seconds.

@sslHandshakeTimeoutUnit

TimeUnit

Set the SSL handshake timeout unit. If not specified, default is seconds.

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@trafficClass

Number (int)

Set the value of traffic class

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

- -# NetworkOptions - -| | | | -| -------------------- | -------------- | -------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@logActivity` | `Boolean` | Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger. | -| `@receiveBufferSize` | `Number (int)` | Set the TCP receive buffer size | -| `@reuseAddress` | `Boolean` | Set the value of reuse address | -| `@reusePort` | `Boolean` | Set the value of reuse port. This is only supported by native transports. | -| `@sendBufferSize` | `Number (int)` | Set the TCP send buffer size | -| `@trafficClass` | `Number (int)` | Set the value of traffic class | - -# OpenOptions - -Describes how an link should be opened. - -| | | | -| ------------------- | --------- | --------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@append` | `Boolean` | Whether the file should be opened in append mode. Defaults to `false`. | -| `@create` | `Boolean` | Set whether the file should be created if it does not already exist. | -| `@createNew` | `Boolean` | Set whether the file should be created and fail if it does exist already. | -| `@deleteOnClose` | `Boolean` | Set whether the file should be deleted when it's closed, or the JVM is shutdown. | -| `@dsync` | `Boolean` | Set whether every write to the file's content ill be written synchronously to the underlying hardware. | -| `@perms` | `String` | Set the permissions string | -| `@read` | `Boolean` | Set whether the file is to be opened for reading | -| `@sparse` | `Boolean` | Set whether a hint should be provided that the file to created is sparse | -| `@sync` | `Boolean` | Set whether every write to the file's content and meta-data will be written synchronously to the underlying hardware. | -| `@truncateExisting` | `Boolean` | Set whether the file should be truncated to zero length on opening if it exists and is opened for write | -| `@write` | `Boolean` | Set whether the file is to be opened for writing | - -# OpenSSLEngineOptions - -Configures a link to use OpenSsl. - -| | | | -| ---------------------- | --------- | ----------------------------------------------------------------------- | -| Name | Type | Description | -| `@sessionCacheEnabled` | `Boolean` | Set whether session cache is enabled in open SSL session server context | - -# Option - -Models command line options. Options are values passed to a command line -interface using -x or --x. Supported syntaxes depend on the parser. - -Short name is generally used with a single dash, while long name -requires a double-dash. - -| | | | -| --------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@argName` | `String` | Sets te arg name for this option. | -| `@choices` | `Array of String` | Sets the list of values accepted by this option. If the value set by the user does not match once of these values, a link exception is thrown. | -| `@defaultValue` | `String` | Sets the default value of this option | -| `@description` | `String` | Sets te description of this option. | -| `@flag` | `Boolean` | Configures the current link to be a flag. It will be evaluated to `true` if it's found in the command line. If you need a flag that may receive a value, use, in this order: ` - option.setFlag(true).setSingleValued(true) -` | -| `@help` | `Boolean` | Sets whether or not this option is a "help" option | -| `@hidden` | `Boolean` | Sets whether or not this option should be hidden | -| `@longName` | `String` | Sets the long name of this option. | -| `@multiValued` | `Boolean` | Sets whether or not this option can receive several values. | -| `@name` | `String` | | -| `@required` | `Boolean` | Sets whether or not this option is mandatory. | -| `@shortName` | `String` | Sets the short name of this option. | -| `@singleValued` | `Boolean` | Sets whether or not this option can receive a value. | - -# PemKeyCertOptions - -Key store options configuring a list of private key and its certificate -based on - -Privacy-enhanced Electronic Email - -(PEM) files. - -A key file must contain a - -non encrypted - -private key in - -PKCS8 - -format wrapped in a PEM block, for example: - -\-----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDV6zPk5WqLwS0a ... -K5xBhtm1AhdnZjx5KfW3BecE -----END PRIVATE KEY----- - -Or contain a - -non encrypted - -private key in - -PKCS1 - -format wrapped in a PEM block, for example: - -\-----BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAlO4gbHeFb/fmbUF/tOJfNPJumJUEqgzAzx8MBXv9Acyw9IRa ... -zJ14Yd+t2fsLYVs2H0gxaA4DW6neCzgY3eKpSU0EBHUCFSXp/1+/ -----END RSA -PRIVATE KEY----- - -A certificate file must contain an X.509 certificate wrapped in a PEM -block, for example: - -\-----BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIEZOI/3TANBgkqhkiG9w0BAQsFADBuMRAwDgYDVQQGEwdV ... -+tmLSvYS39O2nqIzzAUfztkYnUlZmB0l/mKkVqbGJA== -----END CERTIFICATE----- - -Keys and certificates can either be loaded by Vert.x from the -filesystem: - -HttpServerOptions options = new HttpServerOptions(); -options.setPemKeyCertOptions(new -PemKeyCertOptions().setKeyPath("/mykey.pem").setCertPath("/mycert.pem")); - -Or directly provided as a buffer: - -Buffer key = vertx.fileSystem().readFileBlocking("/mykey.pem"); Buffer -cert = vertx.fileSystem().readFileBlocking("/mycert.pem"); -options.setPemKeyCertOptions(new -PemKeyCertOptions().setKeyValue(key).setCertValue(cert)); - -Several key/certificate pairs can be used: - -HttpServerOptions options = new HttpServerOptions(); -options.setPemKeyCertOptions(new PemKeyCertOptions() -.addKeyPath("/mykey1.pem").addCertPath("/mycert1.pem") -.addKeyPath("/mykey2.pem").addCertPath("/mycert2.pem")); - -| | | | -| ------------- | ----------------- | ---------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@certPath` | `String` | Set the path of the first certificate, replacing the previous certificates paths | -| `@certPaths` | `Array of String` | Set all the paths to the certificates files | -| `@certValue` | `Buffer` | Set the first certificate as a buffer, replacing the previous certificates buffers | -| `@certValues` | `Array of Buffer` | Set all the certificates as a list of buffer | -| `@keyPath` | `String` | Set the path of the first key file, replacing the keys paths | -| `@keyPaths` | `Array of String` | Set all the paths to the keys files | -| `@keyValue` | `Buffer` | Set the first key a a buffer, replacing the previous keys buffers | -| `@keyValues` | `Array of Buffer` | Set all the keys as a list of buffer | - -# PemTrustOptions - -Certificate Authority options configuring certificates based on - -Privacy-enhanced Electronic Email - -(PEM) files. The options is configured with a list of validating -certificates. - -Validating certificates must contain X.509 certificates wrapped in a PEM -block: - -\-----BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIEVmLkwTANBgkqhkiG9w0BAQsFADBuMRAwDgYDVQQGEwdV ... -z5+DuODBJUQst141Jmgq8bS543IU/5apcKQeGNxEyQ== -----END CERTIFICATE----- - -The certificates can either be loaded by Vert.x from the filesystem: - -HttpServerOptions options = new HttpServerOptions(); -options.setPemTrustOptions(new -PemTrustOptions().addCertPath("/cert.pem")); - -Or directly provided as a buffer: - -Buffer cert = vertx.fileSystem().readFileBlocking("/cert.pem"); -HttpServerOptions options = new HttpServerOptions(); -options.setPemTrustOptions(new PemTrustOptions().addCertValue(cert)); - -| | | | -| ------------- | ----------------- | ----------------------- | -| Name | Type | Description | -| `@certPaths` | `Array of String` | Add a certificate path | -| `@certValues` | `Array of Buffer` | Add a certificate value | - -# PfxOptions - -Key or trust store options configuring private key and/or certificates -based on PKCS\#12 files. - -When used as a key store, it should point to a store containing a -private key and its certificate. When used as a trust store, it should -point to a store containing a list of accepted certificates. - -The store can either be loaded by Vert.x from the filesystem: - -HttpServerOptions options = new HttpServerOptions(); -options.setPfxKeyCertOptions(new -PfxOptions().setPath("/mykeystore.p12").setPassword("foo")); - -Or directly provided as a buffer: - -Buffer store = vertx.fileSystem().readFileBlocking("/mykeystore.p12"); -options.setPfxKeyCertOptions(new -PfxOptions().setValue(store).setPassword("foo")); - -| | | | -| ----------- | -------- | ------------------------- | -| Name | Type | Description | -| `@password` | `String` | Set the password | -| `@path` | `String` | Set the path | -| `@value` | `Buffer` | Set the store as a buffer | - -# ProxyOptions - -Proxy options for a net client or a net client. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@host

String

Set proxy host.

@password

String

Set proxy password.

@port

Number (int)

Set proxy port.

@type

ProxyType

Set proxy type.

-

ProxyType can be HTTP, SOCKS4 and SOCKS5

@username

String

Set proxy username.

- -# RequestOptions - -Options describing how an link will make connect to make a request. - -| | | | -| ---------- | -------------- | --------------------------------------------------- | -| Name | Type | Description | -| `@headers` | `String` | Add a request header. | -| `@host` | `String` | Set the host name to be used by the client request. | -| `@port` | `Number (int)` | Set the port to be used by the client request. | -| `@ssl` | `Boolean` | Set whether SSL/TLS is enabled | -| `@uri` | `String` | Set the request relative URI | - -# StreamPriority - -This class represents HTTP/2 stream priority defined in RFC 7540 clause -5.3 - -| | | | -| ------------- | ---------------- | ---------------------------------- | -| Name | Type | Description | -| `@dependency` | `Number (int)` | Set the priority dependency value. | -| `@exclusive` | `Boolean` | Set the priority exclusive value. | -| `@weight` | `Number (short)` | Set the priority weight. | - -# TCPSSLOptions - -Base class. TCP and SSL related options - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@crlPaths

Array of String

Add a CRL path

@crlValues

Array of Buffer

Add a CRL value

@enabledCipherSuites

Array of String

Add an enabled cipher suite, appended to the ordered suites.

@enabledSecureTransportProtocols

Array of String

Sets the list of enabled SSL/TLS protocols.

@idleTimeout

Number (int)

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 within the timeout.

-

If you want change default time unit, use link

@idleTimeoutUnit

TimeUnit

Set the idle timeout unit. If not specified, default is seconds.

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

Set the key/cert options in jks format, aka Java keystore.

@logActivity

Boolean

Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.

@openSslEngineOptions

OpenSSLEngineOptions

-

@pemKeyCertOptions

PemKeyCertOptions

Set the key/cert store options in pem format.

@pemTrustOptions

PemTrustOptions

Set the trust options in pem format

@pfxKeyCertOptions

PfxOptions

Set the key/cert options in pfx format.

@pfxTrustOptions

PfxOptions

Set the trust options in pfx format

@receiveBufferSize

Number (int)

Set the TCP receive buffer size

@reuseAddress

Boolean

Set the value of reuse address

@reusePort

Boolean

Set the value of reuse port. This is only supported by native transports.

@sendBufferSize

Number (int)

Set the TCP send buffer size

@soLinger

Number (int)

Set whether SO_linger keep alive is enabled

@ssl

Boolean

Set whether SSL/TLS is enabled

@sslHandshakeTimeout

Number (long)

Set the SSL handshake timeout, default time unit is seconds.

@sslHandshakeTimeoutUnit

TimeUnit

Set the SSL handshake timeout unit. If not specified, default is seconds.

@tcpCork

Boolean

Enable the TCP_CORK option - only with linux native transport.

@tcpFastOpen

Boolean

Enable the TCP_FASTOPEN option - only with linux native transport.

@tcpKeepAlive

Boolean

Set whether TCP keep alive is enabled

@tcpNoDelay

Boolean

Set whether TCP no delay is enabled

@tcpQuickAck

Boolean

Enable the TCP_QUICKACK option - only with linux native transport.

@trafficClass

Number (int)

Set the value of traffic class

@trustStoreOptions

JksOptions

Set the trust options in jks format, aka Java truststore

@useAlpn

Boolean

Set the ALPN usage.

@usePooledBuffers

Boolean

Set whether Netty pooled buffers are enabled

- -# VertxOptions - -Instances of this class are used to configure link instances. - -| | | | -| --------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@addressResolverOptions` | `AddressResolverOptions` | Sets the address resolver configuration to configure resolving DNS servers, cache TTL, etc... | -| `@blockedThreadCheckInterval` | `Number (long)` | Sets the value of blocked thread check period, in link. The default value of link is | -| `@blockedThreadCheckIntervalUnit` | `TimeUnit` | Set the time unit of `blockedThreadCheckInterval`. | -| `@clusterHost` | `String` | Set the hostname to be used for clustering. | -| `@clusterPingInterval` | `Number (long)` | Set the value of cluster ping interval, in ms. | -| `@clusterPingReplyInterval` | `Number (long)` | Set the value of cluster ping reply interval, in ms. | -| `@clusterPort` | `Number (int)` | Set the port to be used for clustering. | -| `@clusterPublicHost` | `String` | 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. | -| `@clusterPublicPort` | `Number (int)` | See link for an explanation. | -| `@clustered` | `Boolean` | Set whether or not the Vert.x instance will be clustered. | -| `@eventBusOptions` | `EventBusOptions` | Sets the event bus configuration to configure the host, port, ssl... | -| `@eventLoopPoolSize` | `Number (int)` | Set the number of event loop threads to be used by the Vert.x instance. | -| `@fileResolverCachingEnabled` | `Boolean` | Set whether the Vert.x file resolver uses caching for classpath resources. | -| `@fileSystemOptions` | `FileSystemOptions` | Set the file system options | -| `@haEnabled` | `Boolean` | Set whether HA will be enabled on the Vert.x instance. | -| `@haGroup` | `String` | Set the HA group to be used when HA is enabled. | -| `@internalBlockingPoolSize` | `Number (int)` | Set the value of internal blocking pool size | -| `@maxEventLoopExecuteTime` | `Number (long)` | Sets the value of max event loop execute time, in link. The default value of linkis | -| `@maxEventLoopExecuteTimeUnit` | `TimeUnit` | Set the time unit of `maxEventLoopExecuteTime`. | -| `@maxWorkerExecuteTime` | `Number (long)` | Sets the value of max worker execute time, in link. The default value of link is | -| `@maxWorkerExecuteTimeUnit` | `TimeUnit` | Set the time unit of `maxWorkerExecuteTime`. | -| `@metricsOptions` | `MetricsOptions` | Set the metrics options | -| `@preferNativeTransport` | `Boolean` | Set wether to prefer the native transport to the JDK transport. | -| `@quorumSize` | `Number (int)` | Set the quorum size to be used when HA is enabled. | -| `@warningExceptionTime` | `Number (long)` | Set the threshold value above this, the blocked warning contains a stack trace. in link. The default value of link is | -| `@warningExceptionTimeUnit` | `TimeUnit` | Set the time unit of `warningExceptionTime`. | -| `@workerPoolSize` | `Number (int)` | Set the maximum number of worker threads to be used by the Vert.x instance. | - -# WebSocketConnectOptions - -Options describing how an link connect a link. - -| | | | -| --------------- | ------------------ | --------------------------------------------------- | -| Name | Type | Description | -| `@headers` | `String` | Add a request header. | -| `@host` | `String` | Set the host name to be used by the client request. | -| `@port` | `Number (int)` | Set the port to be used by the client request. | -| `@ssl` | `Boolean` | Set whether SSL/TLS is enabled | -| `@subProtocols` | `Array of String` | Set the WebSocket sub protocols to use. | -| `@uri` | `String` | Set the request relative URI | -| `@version` | `WebsocketVersion` | Set the WebSocket version. | diff --git a/docs/manual/@vertx/core/dns.md b/docs/manual/@vertx/core/dns.md deleted file mode 100644 index 87bb53d6d..000000000 --- a/docs/manual/@vertx/core/dns.md +++ /dev/null @@ -1,370 +0,0 @@ -# DNS client - -Often you will find yourself in situations where you need to obtain DNS -informations in an asynchronous fashion. Unfortunally this is not -possible with the API that is shipped with the Java Virtual Machine -itself. Because of this Vert.x offers it’s own API for DNS resolution -which is fully asynchronous. - -To obtain a DnsClient instance you will create a new via the Vertx -instance. - -``` js -let client = vertx.createDnsClient(53, "10.0.0.1"); -``` - -You can also create the client with options and configure the query -timeout. - -``` js -let client = vertx.createDnsClient(new DnsClientOptions() - .setPort(53) - .setHost("10.0.0.1") - .setQueryTimeout(10000)); -``` - -Creating the client with no arguments or omitting the server address -will use the address of the server used internally for non blocking -address resolution. - -``` js -let client1 = vertx.createDnsClient(); - -// Just the same but with a different query timeout -let client2 = vertx.createDnsClient(new DnsClientOptions() - .setQueryTimeout(10000)); -``` - -## lookup - -Try to lookup the A (ipv4) or AAAA (ipv6) record for a given name. The -first which is returned will be used, so it behaves the same way as you -may be used from when using "nslookup" on your operation system. - -To lookup the A / AAAA record for "vertx.io" you would typically use it -like: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.lookup("vertx.io", (ar) => { - if (ar.succeeded()) { - console.log(ar.result()); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## lookup4 - -Try to lookup the A (ipv4) record for a given name. The first which is -returned will be used, so it behaves the same way as you may be used -from when using "nslookup" on your operation system. - -To lookup the A record for "vertx.io" you would typically use it like: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.lookup4("vertx.io", (ar) => { - if (ar.succeeded()) { - console.log(ar.result()); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## lookup6 - -Try to lookup the AAAA (ipv6) record for a given name. The first which -is returned will be used, so it behaves the same way as you may be used -from when using "nslookup" on your operation system. - -To lookup the A record for "vertx.io" you would typically use it like: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.lookup6("vertx.io", (ar) => { - if (ar.succeeded()) { - console.log(ar.result()); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveA - -Try to resolve all A (ipv4) records for a given name. This is quite -similar to using "dig" on unix like operation systems. - -To lookup all the A records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveA("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveAAAA - -Try to resolve all AAAA (ipv6) records for a given name. This is quite -similar to using "dig" on unix like operation systems. - -To lookup all the AAAAA records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveAAAA("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveCNAME - -Try to resolve all CNAME records for a given name. This is quite similar -to using "dig" on unix like operation systems. - -To lookup all the CNAME records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveCNAME("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveMX - -Try to resolve all MX records for a given name. The MX records are used -to define which Mail-Server accepts emails for a given domain. - -To lookup all the MX records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveMX("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -Be aware that the List will contain the `MxRecord` sorted by the -priority of them, which means MX records with smaller priority coming -first in the List. - -The `MxRecord` allows you to access the priority and the name of the MX -record by offer methods for it like: - -``` js -record.priority(); -record.name(); -``` - -## resolveTXT - -Try to resolve all TXT records for a given name. TXT records are often -used to define extra informations for a domain. - -To resolve all the TXT records for "vertx.io" you could use something -along these lines: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveTXT("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveNS - -Try to resolve all NS records for a given name. The NS records specify -which DNS Server hosts the DNS informations for a given domain. - -To resolve all the NS records for "vertx.io" you could use something -along these lines: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveNS("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveSRV - -Try to resolve all SRV records for a given name. The SRV records are -used to define extra informations like port and hostname of services. -Some protocols need this extra informations. - -To lookup all the SRV records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveSRV("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -Be aware that the List will contain the SrvRecords sorted by the -priority of them, which means SrvRecords with smaller priority coming -first in the List. - -The `SrvRecord` allows you to access all informations contained in the -SRV record itself: - -``` js -record.priority(); -record.name(); -record.weight(); -record.port(); -record.protocol(); -record.service(); -record.target(); -``` - -Please refer to the API docs for the exact details. - -## resolvePTR - -Try to resolve the PTR record for a given name. The PTR record maps an -ipaddress to a name. - -To resolve the PTR record for the ipaddress 10.0.0.1 you would use the -PTR notion of "1.0.0.10.in-addr.arpa" - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolvePTR("1.0.0.10.in-addr.arpa", (ar) => { - if (ar.succeeded()) { - let record = ar.result(); - console.log(record); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## reverseLookup - -Try to do a reverse lookup for an ipaddress. This is basically the same -as resolve a PTR record, but allows you to just pass in the ipaddress -and not a valid PTR query string. - -To do a reverse lookup for the ipaddress 10.0.0.1 do something similar -like this: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.reverseLookup("10.0.0.1", (ar) => { - if (ar.succeeded()) { - let record = ar.result(); - console.log(record); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## Error handling - -As you saw in previous sections the DnsClient allows you to pass in a -Handler which will be notified with an AsyncResult once the query was -complete. In case of an error it will be notified with a DnsException -which will hole a {@link io.vertx.core.dns.DnsResponseCode} that -indicate why the resolution failed. This DnsResponseCode can be used to -inspect the cause in more detail. - -Possible DnsResponseCodes are: - - - {@link io.vertx.core.dns.DnsResponseCode\#NOERROR} No record was - found for a given query - - - {@link io.vertx.core.dns.DnsResponseCode\#FORMERROR} Format error - - - {@link io.vertx.core.dns.DnsResponseCode\#SERVFAIL} Server failure - - - {@link io.vertx.core.dns.DnsResponseCode\#NXDOMAIN} Name error - - - {@link io.vertx.core.dns.DnsResponseCode\#NOTIMPL} Not implemented - by DNS Server - - - {@link io.vertx.core.dns.DnsResponseCode\#REFUSED} DNS Server - refused the query - - - {@link io.vertx.core.dns.DnsResponseCode\#YXDOMAIN} Domain name - should not exist - - - {@link io.vertx.core.dns.DnsResponseCode\#YXRRSET} Resource record - should not exist - - - {@link io.vertx.core.dns.DnsResponseCode\#NXRRSET} RRSET does not - exist - - - {@link io.vertx.core.dns.DnsResponseCode\#NOTZONE} Name not in zone - - - {@link io.vertx.core.dns.DnsResponseCode\#BADVERS} Bad extension - mechanism for version - - - {@link io.vertx.core.dns.DnsResponseCode\#BADSIG} Bad signature - - - {@link io.vertx.core.dns.DnsResponseCode\#BADKEY} Bad key - - - {@link io.vertx.core.dns.DnsResponseCode\#BADTIME} Bad timestamp - -All of those errors are "generated" by the DNS Server itself. - -You can obtain the DnsResponseCode from the DnsException like: - -``` java -{@link docoverride.dns.Examples#example16} -``` diff --git a/docs/manual/@vertx/core/enums.md b/docs/manual/@vertx/core/enums.md deleted file mode 100644 index 61eca8539..000000000 --- a/docs/manual/@vertx/core/enums.md +++ /dev/null @@ -1,127 +0,0 @@ -# ClientAuth - -Configures the engine to require/request client authentication. - -Created by manishk on 10/2/2015. - -| | | -| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `NONE` | No client authentication is requested or required. | -| `REQUEST` | Accept authentication if presented by client. If this option is set and the client chooses not to provide authentication information about itself, the negotiations will continue. | -| `REQUIRED` | Require client to present authentication, if not presented then negotiations will be declined. | - -# CookieSameSite - -Represents the Cookie SameSite policy to be used. For more info - -https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies\#SameSite\_cookies - -. - -| | | -| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `NONE` | The browser will send cookies with both cross-site requests and same-site requests. | -| `STRICT` | The browser will only send cookies for same-site requests (requests originating from the site that set the cookie). If the request originated from a different URL than the URL of the current location, none of the cookies tagged with the Strict attribute will be included. | -| `LAX` | Same-site cookies are withheld on cross-site subrequests, such as calls to load images or frames, but will be sent when a user navigates to the URL from an external site; for example, by following a link. | - -# DnsResponseCode - -Represents the possible response codes a server may send after receiving -a query. A response code of 0 indicates no error. - -| | | -| ----------- | ------------------------------------------ | -| Name | Description | -| `NOERROR` | ID 0, no error | -| `FORMERROR` | ID 1, format error | -| `SERVFAIL` | ID 2, server failure | -| `NXDOMAIN` | ID 3, name error | -| `NOTIMPL` | ID 4, not implemented | -| `REFUSED` | ID 5, operation refused | -| `YXDOMAIN` | ID 6, domain name should not exist | -| `YXRRSET` | ID 7, resource record set should not exist | -| `NXRRSET` | ID 8, rrset does not exist | -| `NOTAUTH` | ID 9, not authoritative for zone | -| `NOTZONE` | ID 10, name not in zone | -| `BADVERS` | ID 11, bad extension mechanism for version | -| `BADSIG` | ID 12, bad signature | -| `BADKEY` | ID 13, bad key | -| `BADTIME` | ID 14, bad timestamp | - -# HttpMethod - -Represents an HTTP method - -| | | -| --------- | ----------- | -| Name | Description | -| `OPTIONS` | \- | -| `GET` | \- | -| `HEAD` | \- | -| `POST` | \- | -| `PUT` | \- | -| `DELETE` | \- | -| `TRACE` | \- | -| `CONNECT` | \- | -| `PATCH` | \- | -| `OTHER` | \- | - -# HttpVersion - -Represents the version of the HTTP protocol. - -| | | -| ---------- | ----------- | -| Name | Description | -| `HTTP_1_0` | \- | -| `HTTP_1_1` | \- | -| `HTTP_2` | \- | - -# JsonEventType - -The possibles types of link emitted by the link. - -| | | -| -------------- | ----------------------------------- | -| Name | Description | -| `START_OBJECT` | Signals the start of a JSON object. | -| `END_OBJECT` | Signals the end of a JSON object. | -| `START_ARRAY` | Signals the start of a JSON array. | -| `END_ARRAY` | Signals the end of a JSON array. | -| `VALUE` | Signals a JSON value. | - -# ProxyType - -The type of a TCP proxy server. - -| | | -| -------- | ---------------------- | -| Name | Description | -| `HTTP` | HTTP CONNECT ssl proxy | -| `SOCKS4` | SOCKS4/4a tcp proxy | -| `SOCKS5` | SOCSK5 tcp proxy | - -# ReplyFailure - -Represents the type of reply failure - -| | | -| ------------------- | ------------------------------------------------------------------------------------------------- | -| Name | Description | -| `TIMEOUT` | The message send failed because no reply was received before the timeout time. | -| `NO_HANDLERS` | The message send failed because no handlers were available to handle the message. | -| `RECIPIENT_FAILURE` | The message send failed because the recipient actively sent back a failure (rejected the message) | - -# WebsocketVersion - -Represents the WebSocket version - -| | | -| ----- | ----------- | -| Name | Description | -| `V00` | \- | -| `V07` | \- | -| `V08` | \- | -| `V13` | \- | diff --git a/docs/manual/@vertx/core/eventbus.md b/docs/manual/@vertx/core/eventbus.md deleted file mode 100644 index 3729a9fe9..000000000 --- a/docs/manual/@vertx/core/eventbus.md +++ /dev/null @@ -1,420 +0,0 @@ -# The Event Bus - -The `event bus` is the **nervous system** of Vert.x. - -There is a single event bus instance for every Vert.x instance and it is -obtained using the method `eventBus`. - -The event bus allows different parts of your application to communicate -with each other, irrespective of what language they are written in, and -whether they’re in the same Vert.x instance, or in a different Vert.x -instance. - -It can even be bridged to allow client-side JavaScript running in a -browser to communicate on the same event bus. - -The event bus forms a distributed peer-to-peer messaging system spanning -multiple server nodes and multiple browsers. - -The event bus supports publish/subscribe, point-to-point, and -request-response messaging. - -The event bus API is very simple. It basically involves registering -handlers, unregistering handlers and sending and publishing messages. - -First some theory: - -## The Theory - -### Addressing - -Messages are sent on the event bus to an **address**. - -Vert.x doesn’t bother with any fancy addressing schemes. In Vert.x an -address is simply a string. Any string is valid. However it is wise to -use some kind of scheme, *e.g.* using periods to demarcate a namespace. - -Some examples of valid addresses are europe.news.feed1, -acme.games.pacman, sausages, and X. - -### Handlers - -Messages are received by handlers. You register a handler at an address. - -Many different handlers can be registered at the same address. - -A single handler can be registered at many different addresses. - -### Publish / subscribe messaging - -The event bus supports **publishing** messages. - -Messages are published to an address. Publishing means delivering the -message to all handlers that are registered at that address. - -This is the familiar **publish/subscribe** messaging pattern. - -### Point-to-point and Request-Response messaging - -The event bus also supports **point-to-point** messaging. - -Messages are sent to an address. Vert.x will then route them to just one -of the handlers registered at that address. - -If there is more than one handler registered at the address, one will be -chosen using a non-strict round-robin algorithm. - -With point-to-point messaging, an optional reply handler can be -specified when sending the message. - -When a message is received by a recipient, and has been handled, the -recipient can optionally decide to reply to the message. If they do so, -the reply handler will be called. - -When the reply is received back by the sender, it too can be replied to. -This can be repeated *ad infinitum*, and allows a dialog to be set up -between two different verticles. - -This is a common messaging pattern called the **request-response** -pattern. - -### Best-effort delivery - -Vert.x does its best to deliver messages and won’t consciously throw -them away. This is called **best-effort** delivery. - -However, in case of failure of all or parts of the event bus, there is a -possibility messages might be lost. - -If your application cares about lost messages, you should code your -handlers to be idempotent, and your senders to retry after recovery. - -### Types of messages - -Out of the box Vert.x allows any primitive/simple type, String, or -`buffers` to be sent as messages. - -However it’s a convention and common practice in Vert.x to send messages -as [JSON](http://json.org/) - -JSON is very easy to create, read and parse in all the languages that -Vert.x supports so it has become a kind of *lingua franca* for Vert.x. - -However you are not forced to use JSON if you don’t want to. - -The event bus is very flexible and also supports sending arbitrary -objects over the event bus. You can do this by defining a `codec` for -the objects you want to send. - -## The Event Bus API - -Let’s jump into the API. - -### Getting the event bus - -You get a reference to the event bus as follows: - -``` js -let eb = vertx.eventBus(); -``` - -There is a single instance of the event bus per Vert.x instance. - -### Registering Handlers - -This simplest way to register a handler is using `consumer`. Here’s an -example: - -``` js -let eb = vertx.eventBus(); - -eb.consumer("news.uk.sport", (message) => { - console.log("I have received a message: " + message.body()); -}); -``` - -When a message arrives for your handler, your handler will be called, -passing in the `message`. - -The object returned from call to consumer() is an instance of -`MessageConsumer`. - -This object can subsequently be used to unregister the handler, or use -the handler as a stream. - -Alternatively you can use `consumer` to return a MessageConsumer with no -handler set, and then set the handler on that. For example: - -``` js -let eb = vertx.eventBus(); - -let consumer = eb.consumer("news.uk.sport"); -consumer.handler((message) => { - console.log("I have received a message: " + message.body()); -}); -``` - -When registering a handler on a clustered event bus, it can take some -time for the registration to reach all nodes of the cluster. - -If you want to be notified when this has completed, you can register a -`completion handler` on the MessageConsumer object. - -``` js -consumer.completionHandler((res) => { - if (res.succeeded()) { - console.log("The handler registration has reached all nodes"); - } else { - console.log("Registration failed!"); - } -}); -``` - -### Un-registering Handlers - -To unregister a handler, call `unregister`. - -If you are on a clustered event bus, un-registering can take some time -to propagate across the nodes. If you want to be notified when this is -complete, use `unregister`. - -``` js -consumer.unregister((res) => { - if (res.succeeded()) { - console.log("The handler un-registration has reached all nodes"); - } else { - console.log("Un-registration failed!"); - } -}); -``` - -### Publishing messages - -Publishing a message is simple. Just use `publish` specifying the -address to publish it to. - -``` js -eventBus.publish("news.uk.sport", "Yay! Someone kicked a ball"); -``` - -That message will then be delivered to all handlers registered against -the address news.uk.sport. - -### Sending messages - -Sending a message will result in only one handler registered at the -address receiving the message. This is the point-to-point messaging -pattern. The handler is chosen in a non-strict round-robin fashion. - -You can send a message with `send`. - -``` js -eventBus.send("news.uk.sport", "Yay! Someone kicked a ball"); -``` - -### Setting headers on messages - -Messages sent over the event bus can also contain headers. This can be -specified by providing a {@link io.vertx.core.eventbus.DeliveryOptions} -when sending or publishing: - -``` $lang -{@link docoverride.eventbus.Examples#headers(io.vertx.core.eventbus.EventBus)} -``` - -### Message ordering - -Vert.x will deliver messages to any particular handler in the same order -they were sent from any particular sender. - -### The Message object - -The object you receive in a message handler is a `Message`. - -The `body` of the message corresponds to the object that was sent or -published. - -The headers of the message are available with `headers`. - -### Acknowledging messages / sending replies - -When using `send` the event bus attempts to deliver the message to a -`MessageConsumer` registered with the event bus. - -In some cases it’s useful for the sender to know when the consumer has -received the message and "processed" it using **request-response** -pattern. - -To acknowledge that the message has been processed, the consumer can -reply to the message by calling `reply`. - -When this happens it causes a reply to be sent back to the sender and -the reply handler is invoked with the reply. - -An example will make this clear: - -The receiver: - -``` js -let consumer = eventBus.consumer("news.uk.sport"); -consumer.handler((message) => { - console.log("I have received a message: " + message.body()); - message.reply("how interesting!"); -}); -``` - -The sender: - -``` js -eventBus.request("news.uk.sport", "Yay! Someone kicked a ball across a patch of grass", (ar) => { - if (ar.succeeded()) { - console.log("Received reply: " + ar.result().body()); - } -}); -``` - -The reply can contain a message body which can contain useful -information. - -What the "processing" actually means is application-defined and depends -entirely on what the message consumer does and is not something that the -Vert.x event bus itself knows or cares about. - -Some examples: - - - A simple message consumer which implements a service which returns - the time of the day would acknowledge with a message containing the - time of day in the reply body - - - A message consumer which implements a persistent queue, might - acknowledge with `true` if the message was successfully persisted in - storage, or `false` if not. - - - A message consumer which processes an order might acknowledge with - `true` when the order has been successfully processed so it can be - deleted from the database - -### Sending with timeouts - -When sending a message with a reply handler, you can specify a timeout -in the `DeliveryOptions`. - -If a reply is not received within that time, the reply handler will be -called with a failure. - -The default timeout is 30 seconds. - -### Send Failures - -Message sends can fail for other reasons, including: - - - There are no handlers available to send the message to - - - The recipient has explicitly failed the message using `fail` - -In all cases, the reply handler will be called with the specific -failure. - -### Message Codecs - -You can send any object you like across the event bus if you define and -register a {@link io.vertx.core.eventbus.MessageCodec message codec} for -it. - -Message codecs have a name and you specify that name in the {@link -io.vertx.core.eventbus.DeliveryOptions} when sending or publishing the -message: - -``` java -{@link docoverride.eventbus.Examples#example10} -``` - -If you always want the same codec to be used for a particular type then -you can register a default codec for it, then you don’t have to specify -the codec on each send in the delivery options: - -``` java -{@link docoverride.eventbus.Examples#example11} -``` - -You unregister a message codec with {@link -io.vertx.core.eventbus.EventBus\#unregisterCodec}. - -Message codecs don’t always have to encode and decode as the same type. -For example you can write a codec that allows a MyPOJO class to be sent, -but when that message is sent to a handler it arrives as a MyOtherPOJO -class. - -### Clustered Event Bus - -The event bus doesn’t just exist in a single Vert.x instance. By -clustering different Vert.x instances together on your network they can -form a single, distributed event bus. - -### Clustering programmatically - -If you’re creating your Vert.x instance programmatically you get a -clustered event bus by configuring the Vert.x instance as clustered; - -``` js -import { Vertx } from "@vertx/core" -let options = new VertxOptions(); -Vertx.clusteredVertx(options, (res) => { - if (res.succeeded()) { - let vertx = res.result(); - let eventBus = vertx.eventBus(); - console.log("We now have a clustered event bus: " + eventBus); - } else { - console.log("Failed: " + res.cause()); - } -}); -``` - -You should also make sure you have a `ClusterManager` implementation on -your classpath, for example the Hazelcast cluster manager. - -### Clustering on the command line - -You can run Vert.x clustered on the command line with - - vertx run my-verticle.js -cluster - -## Automatic clean-up in verticles - -If you’re registering event bus handlers from inside verticles, those -handlers will be automatically unregistered when the verticle is -undeployed. - -# Configuring the event bus - -The event bus can be configured. It is particularly useful when the -event bus is clustered. Under the hood the event bus uses TCP -connections to send and receive messages, so the {@link -io.vertx.core.eventbus.EventBusOptions} let you configure all aspects of -these TCP connections. As the event bus acts as a server and client, the -configuration is close to {@link io.vertx.core.net.NetClientOptions} and -{@link io.vertx.core.net.NetServerOptions}. - -``` $lang -{@link examples.EventBusExamples#example13} -``` - -The previous snippet depicts how you can use SSL connections for the -event bus, instead of plain TCP connections. - -**WARNING**: to enforce the security in clustered mode, you **must** -configure the cluster manager to use encryption or enforce security. -Refer to the documentation of the cluster manager for further details. - -The event bus configuration needs to be consistent in all the cluster -nodes. - -The {@link io.vertx.core.eventbus.EventBusOptions} also lets you specify -whether or not the event bus is clustered, the port and host. - -When used in containers, you can also configure the public host and -port: - -``` $lang -{@link examples.EventBusExamples#example14} -``` diff --git a/docs/manual/@vertx/core/filesystem.md b/docs/manual/@vertx/core/filesystem.md deleted file mode 100644 index 263cde7d0..000000000 --- a/docs/manual/@vertx/core/filesystem.md +++ /dev/null @@ -1,284 +0,0 @@ -# Using the file system with Vert.x - -The Vert.x `FileSystem` object provides many operations for manipulating -the file system. - -There is one file system object per Vert.x instance, and you obtain it -with `fileSystem`. - -A blocking and a non blocking version of each operation is provided. The -non blocking versions take a handler which is called when the operation -completes or an error occurs. - -Here’s an example of an asynchronous copy of a file: - -``` js -let fs = vertx.fileSystem(); - -// Copy file from foo.txt to bar.txt -fs.copy("foo.txt", "bar.txt", (res) => { - if (res.succeeded()) { - // Copied ok! - } else { - // Something went wrong - } -}); -``` - -The blocking versions are named `xxxBlocking` and return the results or -throw exceptions directly. In many cases, depending on the operating -system and file system, some of the potentially blocking operations can -return quickly, which is why we provide them, but it’s highly -recommended that you test how long they take to return in your -particular application before using them from an event loop, so as not -to break the Golden Rule. - -Here’s the copy using the blocking API: - -``` js -let fs = vertx.fileSystem(); - -// Copy file from foo.txt to bar.txt synchronously -fs.copyBlocking("foo.txt", "bar.txt"); -``` - -Many operations exist to copy, move, truncate, chmod and many other file -operations. We won’t list them all here, please consult the `API docs` -for the full list. - -Let’s see a couple of examples using asynchronous methods: - -``` js -import { Buffer } from "@vertx/core" -// Read a file -vertx.fileSystem().readFile("target/classes/readme.txt", (result) => { - if (result.succeeded()) { - console.log(result.result()); - } else { - console.error("Oh oh ..." + result.cause()); - } -}); - -// Copy a file -vertx.fileSystem().copy("target/classes/readme.txt", "target/classes/readme2.txt", (result) => { - if (result.succeeded()) { - console.log("File copied"); - } else { - console.error("Oh oh ..." + result.cause()); - } -}); - -// Write a file -vertx.fileSystem().writeFile("target/classes/hello.txt", Buffer.buffer("Hello"), (result) => { - if (result.succeeded()) { - console.log("File written"); - } else { - console.error("Oh oh ..." + result.cause()); - } -}); - -// Check existence and delete -vertx.fileSystem().exists("target/classes/junk.txt", (result) => { - if (result.succeeded() && result.result()) { - vertx.fileSystem().delete("target/classes/junk.txt", (r) => { - console.log("File deleted"); - }); - } else { - console.error("Oh oh ... - cannot delete the file: " + result.cause()); - } -}); -``` - -## Asynchronous files - -Vert.x provides an asynchronous file abstraction that allows you to -manipulate a file on the file system. - -You open an `AsyncFile` as follows: - -``` js -let options = new OpenOptions(); -fileSystem.open("myfile.txt", options, (res) => { - if (res.succeeded()) { - let file = res.result(); - } else { - // Something went wrong! - } -}); -``` - -`AsyncFile` implements `ReadStream` and `WriteStream` so you can *pipe* -files to and from other stream objects such as net sockets, http -requests and responses, and WebSockets. - -They also allow you to read and write directly to them. - -### Random access writes - -To use an `AsyncFile` for random access writing you use the `write` -method. - -The parameters to the method are: - - - `buffer`: the buffer to write. - - - `position`: an integer position in the file where to write the - buffer. If the position is greater or equal to the size of the file, - the file will be enlarged to accommodate the offset. - - - `handler`: the result handler - -Here is an example of random access writes: - -``` js -import { Buffer } from "@vertx/core" -vertx.fileSystem().open("target/classes/hello.txt", new OpenOptions(), (result) => { - if (result.succeeded()) { - let file = result.result(); - let buff = Buffer.buffer("foo"); - for (let i = 0;i < 5;i++) { - file.write(buff, buff.length() * i, (ar) => { - if (ar.succeeded()) { - console.log("Written ok!"); - // etc - } else { - console.error("Failed to write: " + ar.cause()); - } - }); - } - } else { - console.error("Cannot open file " + result.cause()); - } -}); -``` - -### Random access reads - -To use an `AsyncFile` for random access reads you use the `read` method. - -The parameters to the method are: - - - `buffer`: the buffer into which the data will be read. - - - `offset`: an integer offset into the buffer where the read data will - be placed. - - - `position`: the position in the file where to read data from. - - - `length`: the number of bytes of data to read - - - `handler`: the result handler - -Here’s an example of random access reads: - -``` js -import { Buffer } from "@vertx/core" -vertx.fileSystem().open("target/classes/les_miserables.txt", new OpenOptions(), (result) => { - if (result.succeeded()) { - let file = result.result(); - let buff = Buffer.buffer(1000); - for (let i = 0;i < 10;i++) { - file.read(buff, i * 100, i * 100, 100, (ar) => { - if (ar.succeeded()) { - console.log("Read ok!"); - } else { - console.error("Failed to write: " + ar.cause()); - } - }); - } - } else { - console.error("Cannot open file " + result.cause()); - } -}); -``` - -### Opening Options - -When opening an `AsyncFile`, you pass an `OpenOptions` instance. These -options describe the behavior of the file access. For instance, you can -configure the file permissions with the `setRead`, `setWrite` and -`setPerms` methods. - -You can also configure the behavior if the open file already exists with -`setCreateNew` and `setTruncateExisting`. - -You can also mark the file to be deleted on close or when the JVM is -shutdown with `setDeleteOnClose`. - -### Flushing data to underlying storage. - -In the `OpenOptions`, you can enable/disable the automatic -synchronisation of the content on every write using `setDsync`. In that -case, you can manually flush any writes from the OS cache by calling the -`flush` method. - -This method can also be called with an handler which will be called when -the flush is complete. - -### Using AsyncFile as ReadStream and WriteStream - -`AsyncFile` implements `ReadStream` and `WriteStream`. You can then use -them with a *pipe* to pipe data to and from other read and write -streams. For example, this would copy the content to another -`AsyncFile`: - -``` js -let output = vertx.fileSystem().openBlocking("target/classes/plagiary.txt", new OpenOptions()); - -vertx.fileSystem().open("target/classes/les_miserables.txt", new OpenOptions(), (result) => { - if (result.succeeded()) { - let file = result.result(); - file.pipeTo(output, (ar) => { - if (ar.succeeded()) { - console.log("Copy done"); - } - }); - } else { - console.error("Cannot open file " + result.cause()); - } -}); -``` - -You can also use the *pipe* to write file content into HTTP responses, -or more generally in any `WriteStream`. - -### Accessing files from the classpath - -When vert.x cannot find the file on the filesystem it tries to resolve -the file from the class path. Note that classpath resource paths never -start with a `/`. - -Due to the fact that Java does not offer async access to classpath -resources, the file is copied to the filesystem in a worker thread when -the classpath resource is accessed the very first time and served from -there asynchronously. When the same resource is accessed a second time, -the file from the filesystem is served directly from the filesystem. The -original content is served even if the classpath resource changes (e.g. -in a development system). - -This caching behaviour can be set on the `setFileCachingEnabled` option. -The default value of this option is `true` unless the system property -`vertx.disableFileCaching` is defined. - -The path where the files are cached is `.vertx` by default and can be -customized by setting the system property `vertx.cacheDirBase`. - -The whole classpath resolving feature can be disabled system-wide by -setting the system property `vertx.disableFileCPResolving` to `true`. - -> **Note** -> -> these system properties are evaluated once when the the -> `io.vertx.core.file.FileSystemOptions` class is loaded, so these -> properties should be set before loading this class or as a JVM system -> property when launching it. - -If you want to disable classpath resolving for a particular application -but keep it enabled by default system-wide, you can do so via the -`setClassPathResolvingEnabled` option. - -### Closing an AsyncFile - -To close an `AsyncFile` call the `close` method. Closing is asynchronous -and if you want to be notified when the close has been completed you can -specify a handler function as an argument. diff --git a/docs/manual/@vertx/core/http.md b/docs/manual/@vertx/core/http.md deleted file mode 100644 index be0589ae2..000000000 --- a/docs/manual/@vertx/core/http.md +++ /dev/null @@ -1,2534 +0,0 @@ -# Writing HTTP servers and clients - -Vert.x allows you to easily write non blocking HTTP clients and servers. - -Vert.x supports the HTTP/1.0, HTTP/1.1 and HTTP/2 protocols. - -The base API for HTTP is the same for HTTP/1.x and HTTP/2, specific API -features are available for dealing with the HTTP/2 protocol. - -## Creating an HTTP Server - -The simplest way to create an HTTP server, using all default options is -as follows: - -``` js -let server = vertx.createHttpServer(); -``` - -## Configuring an HTTP server - -If you don’t want the default, a server can be configured by passing in -a `HttpServerOptions` instance when creating it: - -``` js -let options = new HttpServerOptions() - .setMaxWebSocketFrameSize(1000000); - -let server = vertx.createHttpServer(options); -``` - -## Configuring an HTTP/2 server - -Vert.x supports HTTP/2 over TLS `h2` and over TCP `h2c`. - - - `h2` identifies the HTTP/2 protocol when used over TLS negotiated by - [Application-Layer Protocol - Negotiation](https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation) - (ALPN) - - - `h2c` identifies the HTTP/2 protocol when using in clear text over - TCP, such connections are established either with an HTTP/1.1 - upgraded request or directly - -To handle `h2` requests, TLS must be enabled along with `setUseAlpn`: - -``` js -let options = new HttpServerOptions() - .setUseAlpn(true) - .setSsl(true) - .setKeyStoreOptions(new JksOptions() - .setPath("/path/to/my/keystore")); - -let server = vertx.createHttpServer(options); -``` - -ALPN is a TLS extension that negotiates the protocol before the client -and the server start to exchange data. - -Clients that don’t support ALPN will still be able to do a *classic* SSL -handshake. - -ALPN will usually agree on the `h2` protocol, although `http/1.1` can be -used if the server or the client decides so. - -To handle `h2c` requests, TLS must be disabled, the server will upgrade -to HTTP/2 any request HTTP/1.1 that wants to upgrade to HTTP/2. It will -also accept a direct `h2c` connection beginning with the `PRI * -HTTP/2.0\r\nSM\r\n` preface. - -> **Warning** -> -> most browsers won’t support `h2c`, so for serving web sites you should -> use `h2` and not `h2c`. - -When a server accepts an HTTP/2 connection, it sends to the client its -`initial settings`. The settings define how the client can use the -connection, the default initial settings for a server are: - - - `getMaxConcurrentStreams`: `100` as recommended by the HTTP/2 RFC - - - the default HTTP/2 settings values for the others - -> **Note** -> -> Worker Verticles are not compatible with HTTP/2 - -## Logging network server activity - -For debugging purposes, network activity can be logged. - -``` js -let options = new HttpServerOptions() - .setLogActivity(true); - -let server = vertx.createHttpServer(options); -``` - -See the chapter on [logging network activity](#logging_network_activity) -for a detailed explanation. - -## Start the Server Listening - -To tell the server to listen for incoming requests you use one of the -`listen` alternatives. - -To tell the server to listen at the host and port as specified in the -options: - -``` js -let server = vertx.createHttpServer(); -server.listen(); -``` - -Or to specify the host and port in the call to listen, ignoring what is -configured in the options: - -``` js -let server = vertx.createHttpServer(); -server.listen(8080, "myhost.com"); -``` - -The default host is `0.0.0.0` which means 'listen on all available -addresses' and the default port is `80`. - -The actual bind is asynchronous so the server might not actually be -listening until some time **after** the call to listen has returned. - -If you want to be notified when the server is actually listening you can -provide a handler to the `listen` call. For example: - -``` js -let server = vertx.createHttpServer(); -server.listen(8080, "myhost.com", (res) => { - if (res.succeeded()) { - console.log("Server is now listening!"); - } else { - console.log("Failed to bind!"); - } -}); -``` - -## Getting notified of incoming requests - -To be notified when a request arrives you need to set a -`requestHandler`: - -``` js -let server = vertx.createHttpServer(); -server.requestHandler((request) => { - // Handle the request in here -}); -``` - -## Handling requests - -When a request arrives, the request handler is called passing in an -instance of `HttpServerRequest`. This object represents the server side -HTTP request. - -The handler is called when the headers of the request have been fully -read. - -If the request contains a body, that body will arrive at the server some -time after the request handler has been called. - -The server request object allows you to retrieve the `uri`, `path`, -`params` and `headers`, amongst other things. - -Each server request object is associated with one server response -object. You use `response` to get a reference to the -`HttpServerResponse` object. - -Here’s a simple example of a server handling a request and replying with -"hello world" to it. - -``` js -vertx.createHttpServer().requestHandler((request) => { - request.response().end("Hello world"); -}).listen(8080); -``` - -### Request version - -The version of HTTP specified in the request can be retrieved with -`version` - -### Request method - -Use `method` to retrieve the HTTP method of the request. (i.e. whether -it’s GET, POST, PUT, DELETE, HEAD, OPTIONS, etc). - -### Request URI - -Use `uri` to retrieve the URI of the request. - -Note that this is the actual URI as passed in the HTTP request, and it’s -almost always a relative URI. - -The URI is as defined in [Section 5.1.2 of the HTTP specification - -Request-URI](http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html) - -### Request path - -Use `path` to return the path part of the URI - -For example, if the request URI was: - -a/b/c/page.html?param1=abc\¶m2=xyz - -Then the path would be - -/a/b/c/page.html - -### Request query - -Use `query` to return the query part of the URI - -For example, if the request URI was: - -a/b/c/page.html?param1=abc\¶m2=xyz - -Then the query would be - -param1=abc\¶m2=xyz - -### Request headers - -Use `headers` to return the headers of the HTTP request. - -This returns an instance of `MultiMap` - which is like a normal Map or -Hash but allows multiple values for the same key - this is because HTTP -allows multiple header values with the same key. - -It also has case-insensitive keys, that means you can do the following: - -``` js -let headers = request.headers(); - -// Get the User-Agent: -console.log("User agent is " + headers.get("user-agent")); - -// You can also do this and get the same result: -console.log("User agent is " + headers.get("User-Agent")); -``` - -### Request host - -Use `host` to return the host of the HTTP request. - -For HTTP/1.x requests the `host` header is returned, for HTTP/1 requests -the `:authority` pseudo header is returned. - -### Request parameters - -Use `params` to return the parameters of the HTTP request. - -Just like `headers` this returns an instance of `MultiMap` as there can -be more than one parameter with the same name. - -Request parameters are sent on the request URI, after the path. For -example if the URI was: - -/page.html?param1=abc\¶m2=xyz - -Then the parameters would contain the following: - - param1: 'abc' - param2: 'xyz - -Note that these request parameters are retrieved from the URL of the -request. If you have form attributes that have been sent as part of the -submission of an HTML form submitted in the body of a -`multi-part/form-data` request then they will not appear in the params -here. - -### Remote address - -The address of the sender of the request can be retrieved with -`remoteAddress`. - -### Absolute URI - -The URI passed in an HTTP request is usually relative. If you wish to -retrieve the absolute URI corresponding to the request, you can get it -with `absoluteURI` - -### End handler - -The `endHandler` of the request is invoked when the entire request, -including any body has been fully read. - -### Reading Data from the Request Body - -Often an HTTP request contains a body that we want to read. As -previously mentioned the request handler is called when just the headers -of the request have arrived so the request object does not have a body -at that point. - -This is because the body may be very large (e.g. a file upload) and we -don’t generally want to buffer the entire body in memory before handing -it to you, as that could cause the server to exhaust available memory. - -To receive the body, you can use the `handler` on the request, this will -get called every time a chunk of the request body arrives. Here’s an -example: - -``` js -request.handler((buffer) => { - console.log("I have received a chunk of the body of length " + buffer.length()); -}); -``` - -The object passed into the handler is a `Buffer`, and the handler can be -called multiple times as data arrives from the network, depending on the -size of the body. - -In some cases (e.g. if the body is small) you will want to aggregate the -entire body in memory, so you could do the aggregation yourself as -follows: - -``` js -import { Buffer } from "@vertx/core" - -// Create an empty buffer -let totalBuffer = Buffer.buffer(); - -request.handler((buffer) => { - console.log("I have received a chunk of the body of length " + buffer.length()); - totalBuffer.appendBuffer(buffer); -}); - -request.endHandler((v) => { - console.log("Full body received, length = " + totalBuffer.length()); -}); -``` - -This is such a common case, that Vert.x provides a `bodyHandler` to do -this for you. The body handler is called once when all the body has been -received: - -``` js -request.bodyHandler((totalBuffer) => { - console.log("Full body received, length = " + totalBuffer.length()); -}); -``` - -### Streaming requests - -The request object is a `ReadStream` so you can pipe the request body to -any `WriteStream` instance. - -See the chapter on [streams](#streams) for a detailed explanation. - -### Handling HTML forms - -HTML forms can be submitted with either a content type of -`application/x-www-form-urlencoded` or `multipart/form-data`. - -For url encoded forms, the form attributes are encoded in the url, just -like normal query parameters. - -For multi-part forms they are encoded in the request body, and as such -are not available until the entire body has been read from the wire. - -Multi-part forms can also contain file uploads. - -If you want to retrieve the attributes of a multi-part form you should -tell Vert.x that you expect to receive such a form **before** any of the -body is read by calling `setExpectMultipart` with true, and then you -should retrieve the actual attributes using `formAttributes` once the -entire body has been read: - -``` js -server.requestHandler((request) => { - request.setExpectMultipart(true); - request.endHandler((v) => { - // The body has now been fully read, so retrieve the form attributes - let formAttributes = request.formAttributes(); - }); -}); -``` - -### Handling form file uploads - -Vert.x can also handle file uploads which are encoded in a multi-part -request body. - -To receive file uploads you tell Vert.x to expect a multi-part form and -set an `uploadHandler` on the request. - -This handler will be called once for every upload that arrives on the -server. - -The object passed into the handler is a `HttpServerFileUpload` instance. - -``` js -server.requestHandler((request) => { - request.setExpectMultipart(true); - request.uploadHandler((upload) => { - console.log("Got a file upload " + upload.name()); - }); -}); -``` - -File uploads can be large we don’t provide the entire upload in a single -buffer as that might result in memory exhaustion, instead, the upload -data is received in chunks: - -``` js -request.uploadHandler((upload) => { - upload.handler((chunk) => { - console.log("Received a chunk of the upload of length " + chunk.length()); - }); -}); -``` - -The upload object is a `ReadStream` so you can pipe the request body to -any `WriteStream` instance. See the chapter on [streams](#streams) for a -detailed explanation. - -If you just want to upload the file to disk somewhere you can use -`streamToFileSystem`: - -``` js -request.uploadHandler((upload) => { - upload.streamToFileSystem("myuploads_directory/" + upload.filename()); -}); -``` - -> **Warning** -> -> Make sure you check the filename in a production system to avoid -> malicious clients uploading files to arbitrary places on your -> filesystem. See [security notes](#Security%20notes) for more -> information. - -### Handling cookies - -You use `getCookie` to retrieve a cookie by name, or use `cookieMap` to -retrieve all the cookies. - -To remove a cookie, use `removeCookie`. - -To add a cookie use `addCookie`. - -The set of cookies will be written back in the response automatically -when the response headers are written so the browser can store them. - -Cookies are described by instances of `Cookie`. This allows you to -retrieve the name, value, domain, path and other normal cookie -properties. - -Same Site Cookies let servers require that a cookie shouldn’t be sent -with cross-site (where Site is defined by the registrable domain) -requests, which provides some protection against cross-site request -forgery attacks. This kind of cookies are enabled using the setter: -`setSameSite`. - -Same site cookies can have one of 3 values: - - - None - The browser will send cookies with both cross-site requests - and same-site requests. - - - Strict - he browser will only send cookies for same-site requests - (requests originating from the site that set the cookie). If the - request originated from a different URL than the URL of the current - location, none of the cookies tagged with the Strict attribute will - be included. - - - Lax - Same-site cookies are withheld on cross-site subrequests, such - as calls to load images or frames, but will be sent when a user - navigates to the URL from an external site; for example, by - following a link. - -Here’s an example of querying and adding cookies: - -``` js -import { Cookie } from "@vertx/core" -let someCookie = request.getCookie("mycookie"); -let cookieValue = someCookie.getValue(); - -// Do something with cookie... - -// Add a cookie - this will get written back in the response automatically -request.response().addCookie(Cookie.cookie("othercookie", "somevalue")); -``` - -### Handling compressed body - -Vert.x can handle compressed body payloads which are encoded by the -client with the *deflate* or *gzip* algorithms. - -To enable decompression set `setDecompressionSupported` on the options -when creating the server. - -By default decompression is disabled. - -### Receiving custom HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To receive custom frames, you can use the `customFrameHandler` on the -request, this will get called every time a custom frame arrives. Here’s -an example: - -``` js -request.customFrameHandler((frame) => { - - console.log("Received a frame type=" + frame.type() + " payload" + frame.payload().toString()); -}); -``` - -HTTP/2 frames are not subject to flow control - the frame handler will -be called immediatly when a custom frame is received whether the request -is paused or is not - -### Non standard HTTP methods - -The `OTHER` HTTP method is used for non standard methods, in this case -`rawMethod` returns the HTTP method as sent by the client. - -## Sending back responses - -The server response object is an instance of `HttpServerResponse` and is -obtained from the request with `response`. - -You use the response object to write a response back to the HTTP client. - -### Setting status code and message - -The default HTTP status code for a response is `200`, representing `OK`. - -Use `setStatusCode` to set a different code. - -You can also specify a custom status message with `setStatusMessage`. - -If you don’t specify a status message, the default one corresponding to -the status code will be used. - -> **Note** -> -> for HTTP/2 the status won’t be present in the response since the -> protocol won’t transmit the message to the client - -### Writing HTTP responses - -To write data to an HTTP response, you use one of the `write` -operations. - -These can be invoked multiple times before the response is ended. They -can be invoked in a few ways: - -With a single buffer: - -``` js -let response = request.response(); -response.write(buffer); -``` - -With a string. In this case the string will encoded using UTF-8 and the -result written to the wire. - -``` js -let response = request.response(); -response.write("hello world!"); -``` - -With a string and an encoding. In this case the string will encoded -using the specified encoding and the result written to the wire. - -``` js -let response = request.response(); -response.write("hello world!", "UTF-16"); -``` - -Writing to a response is asynchronous and always returns immediately -after the write has been queued. - -If you are just writing a single string or buffer to the HTTP response -you can write it and end the response in a single call to the `end` - -The first call to write results in the response header being written to -the response. Consequently, if you are not using HTTP chunking then you -must set the `Content-Length` header before writing to the response, -since it will be too late otherwise. If you are using HTTP chunking you -do not have to worry. - -### Ending HTTP responses - -Once you have finished with the HTTP response you should `end` it. - -This can be done in several ways: - -With no arguments, the response is simply ended. - -``` js -let response = request.response(); -response.write("hello world!"); -response.end(); -``` - -It can also be called with a string or buffer in the same way `write` is -called. In this case it’s just the same as calling write with a string -or buffer followed by calling end with no arguments. For example: - -``` js -let response = request.response(); -response.end("hello world!"); -``` - -### Closing the underlying connection - -You can close the underlying TCP connection with `close`. - -Non keep-alive connections will be automatically closed by Vert.x when -the response is ended. - -Keep-alive connections are not automatically closed by Vert.x by -default. If you want keep-alive connections to be closed after an idle -time, then you configure `setIdleTimeout`. - -HTTP/2 connections send a {@literal GOAWAY} frame before closing the -response. - -### Setting response headers - -HTTP response headers can be added to the response by adding them -directly to the `headers`: - -``` js -let response = request.response(); -let headers = response.headers(); -headers.set("content-type", "text/html"); -headers.set("other-header", "wibble"); -``` - -Or you can use `putHeader` - -``` js -let response = request.response(); -response.putHeader("content-type", "text/html").putHeader("other-header", "wibble"); -``` - -Headers must all be added before any parts of the response body are -written. - -### Chunked HTTP responses and trailers - -Vert.x supports [HTTP Chunked Transfer -Encoding](http://en.wikipedia.org/wiki/Chunked_transfer_encoding). - -This allows the HTTP response body to be written in chunks, and is -normally used when a large response body is being streamed to a client -and the total size is not known in advance. - -You put the HTTP response into chunked mode as follows: - -``` js -let response = request.response(); -response.setChunked(true); -``` - -Default is non-chunked. When in chunked mode, each call to one of the -`write` methods will result in a new HTTP chunk being written out. - -When in chunked mode you can also write HTTP response trailers to the -response. These are actually written in the final chunk of the response. - -> **Note** -> -> chunked response has no effect for an HTTP/2 stream - -To add trailers to the response, add them directly to the `trailers`. - -``` js -let response = request.response(); -response.setChunked(true); -let trailers = response.trailers(); -trailers.set("X-wibble", "woobble").set("X-quux", "flooble"); -``` - -Or use `putTrailer`. - -``` js -let response = request.response(); -response.setChunked(true); -response.putTrailer("X-wibble", "woobble").putTrailer("X-quux", "flooble"); -``` - -### Serving files directly from disk or the classpath - -If you were writing a web server, one way to serve a file from disk -would be to open it as an `AsyncFile` and pipe it to the HTTP response. - -Or you could load it it one go using `readFile` and write it straight to -the response. - -Alternatively, Vert.x provides a method which allows you to serve a file -from disk or the filesystem to an HTTP response in one operation. Where -supported by the underlying operating system this may result in the OS -directly transferring bytes from the file to the socket without being -copied through user-space at all. - -This is done by using `sendFile`, and is usually more efficient for -large files, but may be slower for small files. - -Here’s a very simple web server that serves files from the file system -using sendFile: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let file = ""; - if (request.path() == "/") { - file = "index.html"; - } else if (!request.path().contains("..")) { - file = request.path(); - } - request.response().sendFile("web/" + file); -}).listen(8080); -``` - -Sending a file is asynchronous and may not complete until some time -after the call has returned. If you want to be notified when the file -has been writen you can use `sendFile` - -Please see the chapter about [serving files from the -classpath](#classpath) for restrictions about the classpath resolution -or disabling it. - -> **Note** -> -> If you use `sendFile` while using HTTPS it will copy through -> user-space, since if the kernel is copying data directly from disk to -> socket it doesn’t give us an opportunity to apply any encryption. - -> **Warning** -> -> If you’re going to write web servers directly using Vert.x be careful -> that users cannot exploit the path to access files outside the -> directory from which you want to serve them or the classpath It may be -> safer instead to use Vert.x Web. - -When there is a need to serve just a segment of a file, say starting -from a given byte, you can achieve this by doing: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let offset = 0; - try { - offset = Java.type("java.lang.Long").parseLong(request.getParam("start")); - } catch(err) { - // error handling... - } - - - let end = Java.type("java.lang.Long").MAX_VALUE; - try { - end = Java.type("java.lang.Long").parseLong(request.getParam("end")); - } catch(err) { - // error handling... - } - - - request.response().sendFile("web/mybigfile.txt", offset, end); -}).listen(8080); -``` - -You are not required to supply the length if you want to send a file -starting from an offset until the end, in this case you can just do: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let offset = 0; - try { - offset = Java.type("java.lang.Long").parseLong(request.getParam("start")); - } catch(err) { - // error handling... - } - - - request.response().sendFile("web/mybigfile.txt", offset); -}).listen(8080); -``` - -### Piping responses - -The server response is a `WriteStream` instance so you can pipe to it -from any `ReadStream`, e.g. `AsyncFile`, `NetSocket`, `WebSocket` or -`HttpServerRequest`. - -Here’s an example which echoes the request body back in the response for -any PUT methods. It uses a pipe for the body, so it will work even if -the HTTP request body is much larger than can fit in memory at any one -time: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let response = request.response(); - if (request.method() === HttpMethod.PUT) { - response.setChunked(true); - request.pipeTo(response); - } else { - response.setStatusCode(400).end(); - } -}).listen(8080); -``` - -### Writing HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To send such frames, you can use the `writeCustomFrame` on the response. -Here’s an example: - -``` js -import { Buffer } from "@vertx/core" - -let frameType = 40; -let frameStatus = 10; -let payload = Buffer.buffer("some data"); - -// Sending a frame to the client -response.writeCustomFrame(frameType, frameStatus, payload); -``` - -These frames are sent immediately and are not subject to flow control - -when such frame is sent there it may be done before other {@literal -DATA} frames. - -### Stream reset - -HTTP/1.x does not allow a clean reset of a request or a response stream, -for example when a client uploads a resource already present on the -server, the server needs to accept the entire response. - -HTTP/2 supports stream reset at any time during the request/response: - -``` js -// Reset the stream -request.response().reset(); -``` - -By default the `NO_ERROR` (0) error code is sent, another code can sent -instead: - -``` js -// Cancel the stream -request.response().reset(8); -``` - -The HTTP/2 specification defines the list of [error -codes](http://httpwg.org/specs/rfc7540.html#ErrorCodes) one can use. - -The request handler are notified of stream reset events with the -`request handler` and `response handler`: - -``` js -request.response().exceptionHandler((err) => { - if (err instanceof StreamResetException) { - let reset = err; - console.log("Stream reset " + reset.getCode()); - } -}); -``` - -### Server push - -Server push is a new feature of HTTP/2 that enables sending multiple -responses in parallel for a single client request. - -When a server process a request, it can push a request/response to the -client: - -``` js -let response = request.response(); - -// Push main.js to the client -response.push(HttpMethod.GET, "/main.js", (ar) => { - - if (ar.succeeded()) { - - // The server is ready to push the response - let pushedResponse = ar.result(); - - // Send main.js response - pushedResponse.putHeader("content-type", "application/json").end("alert(\"Push response hello\")"); - } else { - console.log("Could not push client resource " + ar.cause()); - } -}); - -// Send the requested resource -response.sendFile(""); -``` - -When the server is ready to push the response, the push response handler -is called and the handler can send the response. - -The push response handler may receive a failure, for instance the client -may cancel the push because it already has `main.js` in its cache and -does not want it anymore. - -The `push` method must be called before the initiating response ends, -however the pushed response can be written after. - -### Handling exceptions - -You can set an `exceptionHandler` to receive any exceptions that happens -before the connection is passed to the `requestHandler` or to the -`webSocketHandler`, e.g during the TLS handshake. - -## HTTP Compression - -Vert.x comes with support for HTTP Compression out of the box. - -This means you are able to automatically compress the body of the -responses before they are sent back to the client. - -If the client does not support HTTP compression the responses are sent -back without compressing the body. - -This allows to handle Client that support HTTP Compression and those -that not support it at the same time. - -To enable compression use can configure it with -`setCompressionSupported`. - -By default compression is not enabled. - -When HTTP compression is enabled the server will check if the client -includes an `Accept-Encoding` header which includes the supported -compressions. Commonly used are deflate and gzip. Both are supported by -Vert.x. - -If such a header is found the server will automatically compress the -body of the response with one of the supported compressions and send it -back to the client. - -Whenever the response needs to be sent without compression you can set -the header `content-encoding` to `identity`: - -``` js -// Disable compression and send an image -request.response().putHeader(Java.type("io.vertx.core.http.HttpHeaders").CONTENT_ENCODING, Java.type("io.vertx.core.http.HttpHeaders").IDENTITY).sendFile("/path/to/image.jpg"); -``` - -Be aware that compression may be able to reduce network traffic but is -more CPU-intensive. - -To address this latter issue Vert.x allows you to tune the 'compression -level' parameter that is native of the gzip/deflate compression -algorithms. - -Compression level allows to configure gizp/deflate algorithms in terms -of the compression ratio of the resulting data and the computational -cost of the compress/decompress operation. - -The compression level is an integer value ranged from '1' to '9', where -'1' means lower compression ratio but fastest algorithm and '9' means -maximum compression ratio available but a slower algorithm. - -Using compression levels higher that 1-2 usually allows to save just -some bytes in size - the gain is not linear, and depends on the specific -data to be compressed - but it comports a non-trascurable cost in term -of CPU cycles required to the server while generating the compressed -response data ( Note that at moment Vert.x doesn’t support any form -caching of compressed response data, even for static files, so the -compression is done on-the-fly at every request body generation ) and in -the same way it affects client(s) while decoding (inflating) received -responses, operation that becomes more CPU-intensive the more the level -increases. - -By default - if compression is enabled via `setCompressionSupported` - -Vert.x will use '6' as compression level, but the parameter can be -configured to address any case with `setCompressionLevel`. - -## Creating an HTTP client - -You create an `HttpClient` instance with default options as follows: - -``` js -let client = vertx.createHttpClient(); -``` - -If you want to configure options for the client, you create it as -follows: - -``` js -let options = new HttpClientOptions() - .setKeepAlive(false); -let client = vertx.createHttpClient(options); -``` - -Vert.x supports HTTP/2 over TLS `h2` and over TCP `h2c`. - -By default the http client performs HTTP/1.1 requests, to perform HTTP/2 -requests the `setProtocolVersion` must be set to `HTTP_2`. - -For `h2` requests, TLS must be enabled with *Application-Layer Protocol -Negotiation*: - -``` js -let options = new HttpClientOptions() - .setProtocolVersion("HTTP_2") - .setSsl(true) - .setUseAlpn(true) - .setTrustAll(true); - -let client = vertx.createHttpClient(options); -``` - -For `h2c` requests, TLS must be disabled, the client will do an HTTP/1.1 -requests and try an upgrade to HTTP/2: - -``` js -let options = new HttpClientOptions() - .setProtocolVersion("HTTP_2"); - -let client = vertx.createHttpClient(options); -``` - -`h2c` connections can also be established directly, i.e connection -started with a prior knowledge, when `setHttp2ClearTextUpgrade` options -is set to false: after the connection is established, the client will -send the HTTP/2 connection preface and expect to receive the same -preface from the server. - -The http server may not support HTTP/2, the actual version can be -checked with `version` when the response arrives. - -When a clients connects to an HTTP/2 server, it sends to the server its -`initial settings`. The settings define how the server can use the -connection, the default initial settings for a client are the default -values defined by the HTTP/2 RFC. - -## Logging network client activity - -For debugging purposes, network activity can be logged. - -``` js -let options = new HttpClientOptions() - .setLogActivity(true); -let client = vertx.createHttpClient(options); -``` - -See the chapter on [logging network activity](#logging_network_activity) -for a detailed explanation. - -## Making requests - -The http client is very flexible and there are various ways you can make -requests with it. - -Often you want to make many requests to the same host/port with an http -client. To avoid you repeating the host/port every time you make a -request you can configure the client with a default host/port: - -``` js -// Set the default host -let options = new HttpClientOptions() - .setDefaultHost("wibble.com"); -// Can also set default port if you want... -let client = vertx.createHttpClient(options); -client.getNow("/some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -Alternatively if you find yourself making lots of requests to different -host/ports with the same client you can simply specify the host/port -when doing the request. - -``` js -let client = vertx.createHttpClient(); - -// Specify both port and host name -client.getNow(8080, "myserver.mycompany.com", "/some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -// This time use the default port 80 but specify the host name -client.getNow("foo.othercompany.com", "/other-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -Both methods of specifying host/port are supported for all the different -ways of making requests with the client. - -### Simple requests with no request body - -Often, you’ll want to make HTTP requests with no request body. This is -usually the case with HTTP GET, OPTIONS and HEAD requests. - -The simplest way to do this with the Vert.x http client is using the -methods suffixed with `Now`. For example `getNow`. - -These methods create the http request and send it in a single method -call and allow you to provide a handler that will be called with the -http response when it comes back. - -``` js -let client = vertx.createHttpClient(); - -// Send a GET request -client.getNow("/some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -// Send a GET request -client.headNow("/other-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -### Writing general requests - -At other times you don’t know the request method you want to send until -run-time. For that use case we provide general purpose request methods -such as `request` which allow you to specify the HTTP method at -run-time: - -``` js -let client = vertx.createHttpClient(); - -client.request(HttpMethod.GET, "some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).end(); - -client.request(HttpMethod.POST, "foo-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).end("some-data"); -``` - -### Writing request bodies - -Sometimes you’ll want to write requests which have a body, or perhaps -you want to write headers to a request before sending it. - -To do this you can call one of the specific request methods such as -`post` or one of the general purpose request methods such as `request`. - -These methods don’t send the request immediately, but instead return an -instance of `HttpClientRequest` which can be used to write to the -request body or write headers. - -Here are some examples of writing a POST request with a body: m - -``` js -let client = vertx.createHttpClient(); - -let request = client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -// Now do stuff with the request -request.putHeader("content-length", "1000"); -request.putHeader("content-type", "text/plain"); -request.write(body); - -// Make sure the request is ended when you're done with it -request.end(); - -// Or fluently: - -client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).putHeader("content-length", "1000").putHeader("content-type", "text/plain").write(body).end(); - -// Or event more simply: - -client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).putHeader("content-type", "text/plain").end(body); -``` - -Methods exist to write strings in UTF-8 encoding and in any specific -encoding and to write buffers: - -``` js -import { Buffer } from "@vertx/core" - -// Write string encoded in UTF-8 -request.write("some data"); - -// Write string encoded in specific encoding -request.write("some other data", "UTF-16"); - -// Write a buffer -let buffer = Buffer.buffer(); -buffer.appendInt(123).appendLong(245); -request.write(buffer); -``` - -If you are just writing a single string or buffer to the HTTP request -you can write it and end the request in a single call to the `end` -function. - -``` js -import { Buffer } from "@vertx/core" - -// Write string and end the request (send it) in a single call -request.end("some simple data"); - -// Write buffer and end the request (send it) in a single call -let buffer = Buffer.buffer().appendDouble(12.34).appendLong(432); -request.end(buffer); -``` - -When you’re writing to a request, the first call to `write` will result -in the request headers being written out to the wire. - -The actual write is asynchronous and might not occur until some time -after the call has returned. - -Non-chunked HTTP requests with a request body require a `Content-Length` -header to be provided. - -Consequently, if you are not using chunked HTTP then you must set the -`Content-Length` header before writing to the request, as it will be too -late otherwise. - -If you are calling one of the `end` methods that take a string or buffer -then Vert.x will automatically calculate and set the `Content-Length` -header before writing the request body. - -If you are using HTTP chunking a a `Content-Length` header is not -required, so you do not have to calculate the size up-front. - -### Writing request headers - -You can write headers to a request using the `headers` multi-map as -follows: - -``` js -// Write some headers using the headers() multimap - -let headers = request.headers(); -headers.set("content-type", "application/json").set("other-header", "foo"); -``` - -The headers are an instance of `MultiMap` which provides operations for -adding, setting and removing entries. Http headers allow more than one -value for a specific key. - -You can also write headers using `putHeader` - -``` js -// Write some headers using the putHeader method - -request.putHeader("content-type", "application/json").putHeader("other-header", "foo"); -``` - -If you wish to write headers to the request you must do so before any -part of the request body is written. - -### Non standard HTTP methods - -The `OTHER` HTTP method is used for non standard methods, when this -method is used, `setRawMethod` must be used to set the raw method to -send to the server. - -### Ending HTTP requests - -Once you have finished with the HTTP request you must end it with one of -the `end` operations. - -Ending a request causes any headers to be written, if they have not -already been written and the request to be marked as complete. - -Requests can be ended in several ways. With no arguments the request is -simply ended: - -``` js -request.end(); -``` - -Or a string or buffer can be provided in the call to `end`. This is like -calling `write` with the string or buffer before calling `end` with no -arguments - -``` js -import { Buffer } from "@vertx/core" -// End the request with a string -request.end("some-data"); - -// End it with a buffer -let buffer = Buffer.buffer().appendFloat(12.3).appendInt(321); -request.end(buffer); -``` - -### Chunked HTTP requests - -Vert.x supports [HTTP Chunked Transfer -Encoding](http://en.wikipedia.org/wiki/Chunked_transfer_encoding) for -requests. - -This allows the HTTP request body to be written in chunks, and is -normally used when a large request body is being streamed to the server, -whose size is not known in advance. - -You put the HTTP request into chunked mode using `setChunked`. - -In chunked mode each call to write will cause a new chunk to be written -to the wire. In chunked mode there is no need to set the -`Content-Length` of the request up-front. - -``` js -request.setChunked(true); - -// Write some chunks -for (let i = 0;i < 10;i++) { - request.write("this-is-chunk-" + i); -} - -request.end(); -``` - -### Request timeouts - -You can set a timeout for a specific http request using `setTimeout`. - -If the request does not return any data within the timeout period an -exception will be passed to the exception handler (if provided) and the -request will be closed. - -### Handling exceptions - -You can handle exceptions corresponding to a request by setting an -exception handler on the `HttpClientRequest` instance: - -``` js -let request = client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -request.exceptionHandler((e) => { - console.log("Received exception: " + e.getMessage()); - e.printStackTrace(); -}); -``` - -This does not handle non *2xx* response that need to be handled in the -`HttpClientResponse` code: - -``` js -let request = client.post("some-uri", (response) => { - if (response.statusCode() === 200) { - console.log("Everything fine"); - return - } - if (response.statusCode() === 500) { - console.log("Unexpected behavior on the server side"); - return - } -}); -request.end(); -``` - -> **Important** -> -> `XXXNow` methods cannot receive an exception handler. - -### Specifying a handler on the client request - -Instead of providing a response handler in the call to create the client -request object, alternatively, you can not provide a handler when the -request is created and set it later on the request object itself, using -`handler`, for example: - -``` js -let request = client.post("some-uri"); -request.handler((response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -### Using the request as a stream - -The `HttpClientRequest` instance is also a `WriteStream` which means you -can pump to it from any `ReadStream` instance. - -For, example, you could pump a file on disk to a http request body as -follows: - -``` js -import { Pump } from "@vertx/core" - -request.setChunked(true); -let pump = Pump.pump(file, request); -file.endHandler((v) => { - request.end(); -}); -pump.start(); -``` - -### Writing HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To send such frames, you can use the `write` on the request. Here’s an -example: - -``` js -import { Buffer } from "@vertx/core" - -let frameType = 40; -let frameStatus = 10; -let payload = Buffer.buffer("some data"); - -// Sending a frame to the server -request.writeCustomFrame(frameType, frameStatus, payload); -``` - -### Stream reset - -HTTP/1.x does not allow a clean reset of a request or a response stream, -for example when a client uploads a resource already present on the -server, the server needs to accept the entire response. - -HTTP/2 supports stream reset at any time during the request/response: - -``` js -request.reset(); -``` - -By default the NO\_ERROR (0) error code is sent, another code can sent -instead: - -``` js -request.reset(8); -``` - -The HTTP/2 specification defines the list of [error -codes](http://httpwg.org/specs/rfc7540.html#ErrorCodes) one can use. - -The request handler are notified of stream reset events with the -`request handler` and `response handler`: - -``` js -request.exceptionHandler((err) => { - if (err instanceof StreamResetException) { - let reset = err; - console.log("Stream reset " + reset.getCode()); - } -}); -``` - -## Handling HTTP responses - -You receive an instance of `HttpClientResponse` into the handler that -you specify in of the request methods or by setting a handler directly -on the `HttpClientRequest` object. - -You can query the status code and the status message of the response -with `statusCode` and `statusMessage`. - -``` js -client.getNow("some-uri", (response) => { - // the status code - e.g. 200 or 404 - console.log("Status code is " + response.statusCode()); - - // the status message e.g. "OK" or "Not Found". - console.log("Status message is " + response.statusMessage()); -}); -``` - -### Using the response as a stream - -The `HttpClientResponse` instance is also a `ReadStream` which means you -can pipe it to any `WriteStream` instance. - -### Response headers and trailers - -Http responses can contain headers. Use `headers` to get the headers. - -The object returned is a `MultiMap` as HTTP headers can contain multiple -values for single keys. - -``` js -let contentType = response.headers().get("content-type"); -let contentLength = response.headers().get("content-lengh"); -``` - -Chunked HTTP responses can also contain trailers - these are sent in the -last chunk of the response body. - -You use `trailers` to get the trailers. Trailers are also a `MultiMap`. - -### Reading the request body - -The response handler is called when the headers of the response have -been read from the wire. - -If the response has a body this might arrive in several pieces some time -after the headers have been read. We don’t wait for all the body to -arrive before calling the response handler as the response could be very -large and we might be waiting a long time, or run out of memory for -large responses. - -As parts of the response body arrive, the `handler` is called with a -`Buffer` representing the piece of the body: - -``` js -client.getNow("some-uri", (response) => { - - response.handler((buffer) => { - console.log("Received a part of the response body: " + buffer); - }); -}); -``` - -If you know the response body is not very large and want to aggregate it -all in memory before handling it, you can either aggregate it yourself: - -``` js -import { Buffer } from "@vertx/core" - -client.getNow("some-uri", (response) => { - - // Create an empty buffer - let totalBuffer = Buffer.buffer(); - - response.handler((buffer) => { - console.log("Received a part of the response body: " + buffer.length()); - - totalBuffer.appendBuffer(buffer); - }); - - response.endHandler((v) => { - // Now all the body has been read - console.log("Total response body length is " + totalBuffer.length()); - }); -}); -``` - -Or you can use the convenience `bodyHandler` which is called with the -entire body when the response has been fully read: - -``` js -client.getNow("some-uri", (response) => { - - response.bodyHandler((totalBuffer) => { - // Now all the body has been read - console.log("Total response body length is " + totalBuffer.length()); - }); -}); -``` - -### Response end handler - -The response `endHandler` is called when the entire response body has -been read or immediately after the headers have been read and the -response handler has been called if there is no body. - -### Reading cookies from the response - -You can retrieve the list of cookies from a response using `cookies`. - -Alternatively you can just parse the `Set-Cookie` headers yourself in -the response. - -### 30x redirection handling - -The client can be configured to follow HTTP redirections provided by the -`Location` response header when the client receives: - - - a `301`, `302`, `307` or `308` status code along with a HTTP GET or - HEAD method - - - a `303` status code, in addition the directed request perform an - HTTP GET methodn - -Here’s an example: - -``` js -client.get("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).setFollowRedirects(true).end(); -``` - -The maximum redirects is `16` by default and can be changed with -`setMaxRedirects`. - -``` js -let client = vertx.createHttpClient(new HttpClientOptions() - .setMaxRedirects(32)); - -client.get("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).setFollowRedirects(true).end(); -``` - -One size does not fit all and the default redirection policy may not be -adapted to your needs. - -The default redirection policy can changed with a custom implementation: - -``` js -import { Future } from "@vertx/core" - -client.redirectHandler((response) => { - - // Only follow 301 code - if (response.statusCode() === 301 && (response.getHeader("Location") !== null && response.getHeader("Location") !== undefined)) { - - // Compute the redirect URI - let absoluteURI = resolveURI(response.request().absoluteURI(), response.getHeader("Location")); - - // Create a new ready to use request that the client will use - return Future.succeededFuture(client.getAbs(absoluteURI)) - } - - // We don't redirect - return null -}); -``` - -The policy handles the original `HttpClientResponse` received and -returns either `null` or a `Future`. - - - when `null` is returned, the original response is processed - - - when a future is returned, the request will be sent on its - successful completion - - - when a future is returned, the exception handler set on the request - is called on its failure - -The returned request must be unsent so the original request handlers can -be sent and the client can send it after. - -Most of the original request settings will be propagated to the new -request: - - - request headers, unless if you have set some headers (including - `setHost`) - - - request body unless the returned request uses a `GET` method - - - response handler - - - request exception handler - - - request timeout - -### 100-Continue handling - -According to the [HTTP 1.1 -specification](http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html) a -client can set a header `Expect: 100-Continue` and send the request -header before sending the rest of the request body. - -The server can then respond with an interim response status `Status: 100 -(Continue)` to signify to the client that it is ok to send the rest of -the body. - -The idea here is it allows the server to authorise and accept/reject the -request before large amounts of data are sent. Sending large amounts of -data if the request might not be accepted is a waste of bandwidth and -ties up the server in reading data that it will just discard. - -Vert.x allows you to set a `continueHandler` on the client request -object - -This will be called if the server sends back a `Status: 100 (Continue)` -response to signify that it is ok to send the rest of the request. - -This is used in conjunction with -\`[sendHead](/es4x/@vertx/core/classes/httpclientrequest.html#sendhead)\`to -send the head of the request. - -Here’s an example: - -``` js -let request = client.put("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -request.putHeader("Expect", "100-Continue"); - -request.continueHandler((v) => { - // OK to send rest of body - request.write("Some data"); - request.write("Some more data"); - request.end(); -}); -``` - -On the server side a Vert.x http server can be configured to -automatically send back 100 Continue interim responses when it receives -an `Expect: 100-Continue` header. - -This is done by setting the option `setHandle100ContinueAutomatically`. - -If you’d prefer to decide whether to send back continue responses -manually, then this property should be set to `false` (the default), -then you can inspect the headers and call `writeContinue` to have the -client continue sending the body: - -``` js -httpServer.requestHandler((request) => { - if (request.getHeader("Expect").equalsIgnoreCase("100-Continue")) { - - // Send a 100 continue response - request.response().writeContinue(); - - // The client should send the body when it receives the 100 response - request.bodyHandler((body) => { - // Do something with body - }); - - request.endHandler((v) => { - request.response().end(); - }); - } -}); -``` - -You can also reject the request by sending back a failure status code -directly: in this case the body should either be ignored or the -connection should be closed (100-Continue is a performance hint and -cannot be a logical protocol constraint): - -``` js -httpServer.requestHandler((request) => { - if (request.getHeader("Expect").equalsIgnoreCase("100-Continue")) { - - // - let rejectAndClose = true; - if (rejectAndClose) { - - // Reject with a failure code and close the connection - // this is probably best with persistent connection - request.response().setStatusCode(405).putHeader("Connection", "close").end(); - } else { - - // Reject with a failure code and ignore the body - // this may be appropriate if the body is small - request.response().setStatusCode(405).end(); - } - } -}); -``` - -### Client push - -Server push is a new feature of HTTP/2 that enables sending multiple -responses in parallel for a single client request. - -A push handler can be set on a request to receive the request/response -pushed by the server: - -``` js -let request = client.get("/index.html", (response) => { - // Process index.html response -}); - -// Set a push handler to be aware of any resource pushed by the server -request.pushHandler((pushedRequest) => { - - // A resource is pushed for this request - console.log("Server pushed " + pushedRequest.path()); - - // Set an handler for the response - pushedRequest.handler((pushedResponse) => { - console.log("The response for the pushed request"); - }); -}); - -// End the request -request.end(); -``` - -If the client does not want to receive a pushed request, it can reset -the stream: - -``` js -request.pushHandler((pushedRequest) => { - if (pushedRequest.path() == "/main.js") { - pushedRequest.reset(); - } else { - // Handle it - } -}); -``` - -When no handler is set, any stream pushed will be automatically -cancelled by the client with a stream reset (`8` error code). - -### Receiving custom HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To receive custom frames, you can use the customFrameHandler on the -request, this will get called every time a custom frame arrives. Here’s -an example: - -``` js -response.customFrameHandler((frame) => { - - console.log("Received a frame type=" + frame.type() + " payload" + frame.payload().toString()); -}); -``` - -## Enabling compression on the client - -The http client comes with support for HTTP Compression out of the box. - -This means the client can let the remote http server know that it -supports compression, and will be able to handle compressed response -bodies. - -An http server is free to either compress with one of the supported -compression algorithms or to send the body back without compressing it -at all. So this is only a hint for the Http server which it may ignore -at will. - -To tell the http server which compression is supported by the client it -will include an `Accept-Encoding` header with the supported compression -algorithm as value. Multiple compression algorithms are supported. In -case of Vert.x this will result in the following header added: - -Accept-Encoding: gzip, deflate - -The server will choose then from one of these. You can detect if a -server ompressed the body by checking for the `Content-Encoding` header -in the response sent back from it. - -If the body of the response was compressed via gzip it will include for -example the following header: - -Content-Encoding: gzip - -To enable compression set `setTryUseCompression` on the options used -when creating the client. - -By default compression is disabled. - -## HTTP/1.x pooling and keep alive - -Http keep alive allows http connections to be used for more than one -request. This can be a more efficient use of connections when you’re -making multiple requests to the same server. - -For HTTP/1.x versions, the http client supports pooling of connections, -allowing you to reuse connections between requests. - -For pooling to work, keep alive must be true using `setKeepAlive` on the -options used when configuring the client. The default value is true. - -When keep alive is enabled. Vert.x will add a `Connection: Keep-Alive` -header to each HTTP/1.0 request sent. When keep alive is disabled. -Vert.x will add a `Connection: Close` header to each HTTP/1.1 request -sent to signal that the connection will be closed after completion of -the response. - -The maximum number of connections to pool **for each server** is -configured using `setMaxPoolSize` - -When making a request with pooling enabled, Vert.x will create a new -connection if there are less than the maximum number of connections -already created for that server, otherwise it will add the request to a -queue. - -Keep alive connections will be closed by the client automatically after -a timeout. The timeout can be specified by the server using the -`keep-alive` header: - - keep-alive: timeout=30 - -You can set the default timeout using `setKeepAliveTimeout` - any -connections not used within this timeout will be closed. Please note the -timeout value is in seconds not milliseconds. - -## HTTP/1.1 pipe-lining - -The client also supports pipe-lining of requests on a connection. - -Pipe-lining means another request is sent on the same connection before -the response from the preceding one has returned. Pipe-lining is not -appropriate for all requests. - -To enable pipe-lining, it must be enabled using `setPipelining`. By -default pipe-lining is disabled. - -When pipe-lining is enabled requests will be written to connections -without waiting for previous responses to return. - -The number of pipe-lined requests over a single connection is limited by -`setPipeliningLimit`. This option defines the maximum number of http -requests sent to the server awaiting for a response. This limit ensures -the fairness of the distribution of the client requests over the -connections to the same server. - -## HTTP/2 multiplexing - -HTTP/2 advocates to use a single connection to a server, by default the -http client uses a single connection for each server, all the streams to -the same server are multiplexed over the same connection. - -When the clients needs to use more than a single connection and use -pooling, the `setHttp2MaxPoolSize` shall be used. - -When it is desirable to limit the number of multiplexed streams per -connection and use a connection pool instead of a single connection, -`setHttp2MultiplexingLimit` can be used. - -``` js -let clientOptions = new HttpClientOptions() - .setHttp2MultiplexingLimit(10) - .setHttp2MaxPoolSize(3); - -// Uses up to 3 connections and up to 10 streams per connection -let client = vertx.createHttpClient(clientOptions); -``` - -The multiplexing limit for a connection is a setting set on the client -that limits the number of streams of a single connection. The effective -value can be even lower if the server sets a lower limit with the -`SETTINGS_MAX_CONCURRENT_STREAMS` setting. - -HTTP/2 connections will not be closed by the client automatically. To -close them you can call `close` or close the client instance. - -Alternatively you can set idle timeout using `setIdleTimeout` - any -connections not used within this timeout will be closed. Please note the -idle timeout value is in seconds not milliseconds. - -## HTTP connections - -The `HttpConnection` offers the API for dealing with HTTP connection -events, lifecycle and settings. - -HTTP/2 implements fully the `HttpConnection` API. - -HTTP/1.x implements partially the `HttpConnection` API: only the close -operation, the close handler and exception handler are implemented. This -protocol does not provide semantics for the other operations. - -### Server connections - -The `connection` method returns the request connection on the server: - -``` js -let connection = request.connection(); -``` - -A connection handler can be set on the server to be notified of any -incoming connection: - -``` js -let server = vertx.createHttpServer(http2Options); - -server.connectionHandler((connection) => { - console.log("A client connected"); -}); -``` - -### Client connections - -The `connection` method returns the request connection on the client: - -``` js -let connection = request.connection(); -``` - -A connection handler can be set on the client to be notified when a -connection has been established happens: - -``` js -client.connectionHandler((connection) => { - console.log("Connected to the server"); -}); -``` - -### Connection settings - -The configuration of an HTTP/2 is configured by the `Http2Settings` data -object. - -Each endpoint must respect the settings sent by the other side of the -connection. - -When a connection is established, the client and the server exchange -initial settings. Initial settings are configured by -`setInitialSettings` on the client and `setInitialSettings` on the -server. - -The settings can be changed at any time after the connection is -established: - -``` js -connection.updateSettings(new Http2Settings() - .setMaxConcurrentStreams(100)); -``` - -As the remote side should acknowledge on reception of the settings -update, it’s possible to give a callback to be notified of the -acknowledgment: - -``` js -connection.updateSettings(new Http2Settings() - .setMaxConcurrentStreams(100), (ar) => { - if (ar.succeeded()) { - console.log("The settings update has been acknowledged "); - } -}); -``` - -Conversely the `remoteSettingsHandler` is notified when the new remote -settings are received: - -``` js -connection.remoteSettingsHandler((settings) => { - console.log("Received new settings"); -}); -``` - -> **Note** -> -> this only applies to the HTTP/2 protocol - -### Connection ping - -HTTP/2 connection ping is useful for determining the connection -round-trip time or check the connection validity: `ping` sends a -{@literal PING} frame to the remote endpoint: - -``` js -import { Buffer } from "@vertx/core" -let data = Buffer.buffer(); -for (let i = 0;i < 8;i++) { - data.appendByte(i); -} -connection.ping(data, (pong) => { - console.log("Remote side replied"); -}); -``` - -Vert.x will send automatically an acknowledgement when a {@literal PING} -frame is received, an handler can be set to be notified for each ping -received: - -``` js -connection.pingHandler((ping) => { - console.log("Got pinged by remote side"); -}); -``` - -The handler is just notified, the acknowledgement is sent whatsoever. -Such feature is aimed for implementing protocols on top of HTTP/2. - -> **Note** -> -> this only applies to the HTTP/2 protocol - -### Connection shutdown and go away - -Calling `shutdown` will send a {@literal GOAWAY} frame to the remote -side of the connection, asking it to stop creating streams: a client -will stop doing new requests and a server will stop pushing responses. -After the {@literal GOAWAY} frame is sent, the connection waits some -time (30 seconds by default) until all current streams closed and close -the connection: - -``` js -connection.shutdown(); -``` - -The `shutdownHandler` notifies when all streams have been closed, the -connection is not yet closed. - -It’s possible to just send a {@literal GOAWAY} frame, the main -difference with a shutdown is that it will just tell the remote side of -the connection to stop creating new streams without scheduling a -connection close: - -``` js -connection.goAway(0); -``` - -Conversely, it is also possible to be notified when {@literal GOAWAY} -are received: - -``` js -connection.goAwayHandler((goAway) => { - console.log("Received a go away frame"); -}); -``` - -The `shutdownHandler` will be called when all current streams have been -closed and the connection can be closed: - -``` js -connection.goAway(0); -connection.shutdownHandler((v) => { - - // All streams are closed, close the connection - connection.close(); -}); -``` - -This applies also when a {@literal GOAWAY} is received. - -> **Note** -> -> this only applies to the HTTP/2 protocol - -### Connection close - -Connection `close` closes the connection: - - - it closes the socket for HTTP/1.x - - - a shutdown with no delay for HTTP/2, the {@literal GOAWAY} frame - will still be sent before the connection is closed. \* - -The `closeHandler` notifies when a connection is closed. - -## HttpClient usage - -The HttpClient can be used in a Verticle or embedded. - -When used in a Verticle, the Verticle **should use its own client -instance**. - -More generally a client should not be shared between different Vert.x -contexts as it can lead to unexpected behavior. - -For example a keep-alive connection will call the client handlers on the -context of the request that opened the connection, subsequent requests -will use the same context. - -When this happen Vert.x detects it and log a warn: - - Reusing a connection with a different context: an HttpClient is probably shared between different Verticles - -The HttpClient can be embedded in a non Vert.x thread like a unit test -or a plain java `main`: the client handlers will be called by different -Vert.x threads and contexts, such contexts are created as needed. For -production this usage is not recommended. - -## Server sharing - -When several HTTP servers listen on the same port, vert.x orchestrates -the request handling using a round-robin strategy. - -Let’s take a verticle creating a HTTP server such as: - -**io.vertx.examples.http.sharing.HttpServerVerticle.** - -``` js -vertx.createHttpServer().requestHandler((request) => { - request.response().end("Hello from server " + this); -}).listen(8080); -``` - -This service is listening on the port 8080. So, when this verticle is -instantiated multiple times as with: `vertx run -io.vertx.examples.http.sharing.HttpServerVerticle -instances 2`, what’s -happening ? If both verticles would bind to the same port, you would -receive a socket exception. Fortunately, vert.x is handling this case -for you. When you deploy another server on the same host and port as an -existing server it doesn’t actually try and create a new server -listening on the same host/port. It binds only once to the socket. When -receiving a request it calls the server handlers following a round robin -strategy. - -Let’s now imagine a client such as: - -``` js -vertx.setPeriodic(100, (l) => { - vertx.createHttpClient().getNow(8080, "localhost", "/", (resp) => { - resp.bodyHandler((body) => { - console.log(body.toString("ISO-8859-1")); - }); - }); -}); -``` - -Vert.x delegates the requests to one of the server sequentially: - - Hello from i.v.e.h.s.HttpServerVerticle@1 - Hello from i.v.e.h.s.HttpServerVerticle@2 - Hello from i.v.e.h.s.HttpServerVerticle@1 - Hello from i.v.e.h.s.HttpServerVerticle@2 - ... - -Consequently the servers can scale over available cores while each -Vert.x verticle instance remains strictly single threaded, and you don’t -have to do any special tricks like writing load-balancers in order to -scale your server on your multi-core machine. - -## Using HTTPS with Vert.x - -Vert.x http servers and clients can be configured to use HTTPS in -exactly the same way as net servers. - -Please see [configuring net servers to use SSL](#ssl) for more -information. - -SSL can also be enabled/disabled per request with `RequestOptions` or -when specifying a scheme with `requestAbs` method. - -``` js -client.getNow(new RequestOptions() - .setHost("localhost") - .setPort(8080) - .setURI("/") - .setSsl(true), (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -The `setSsl` setting acts as the default client setting. - -The `setSsl` overrides the default client setting - - - setting the value to `false` will disable SSL/TLS even if the client - is configured to use SSL/TLS - - - setting the value to `true` will enable SSL/TLS even if the client - is configured to not use SSL/TLS, the actual client SSL/TLS (such as - trust, key/certificate, ciphers, ALPN, …​) will be reused - -Likewise `requestAbs` scheme also overrides the default client setting. - -### Server Name Indication (SNI) - -Vert.x http servers can be configured to use SNI in exactly the same way -as {@linkplain io.vertx.core.net net servers}. - -Vert.x http client will present the actual hostname as *server name* -during the TLS handshake. - -## WebSockets - -[WebSockets](http://en.wikipedia.org/wiki/WebSocket) are a web -technology that allows a full duplex socket-like connection between HTTP -servers and HTTP clients (typically browsers). - -Vert.x supports WebSockets on both the client and server-side. - -### WebSockets on the server - -There are two ways of handling WebSockets on the server side. - -#### WebSocket handler - -The first way involves providing a `webSocketHandler` on the server -instance. - -When a WebSocket connection is made to the server, the handler will be -called, passing in an instance of `ServerWebSocket`. - -``` js -server.webSocketHandler((webSocket) => { - console.log("Connected!"); -}); -``` - -You can choose to reject the WebSocket by calling `reject`. - -``` js -server.webSocketHandler((webSocket) => { - if (webSocket.path() == "/myapi") { - webSocket.reject(); - } else { - // Do something - } -}); -``` - -You can perform an asynchronous handshake by calling `setHandshake` with -a `Future`: - -``` js -import { Promise } from "@vertx/core" -server.webSocketHandler((webSocket) => { - let promise = Promise.promise(); - webSocket.setHandshake(promise.future()); - authenticate(webSocket.headers(), (ar) => { - if (ar.succeeded()) { - // Terminate the handshake with the status code 101 (Switching Protocol) - // Reject the handshake with 401 (Unauthorized) - promise.complete(ar.succeeded() ? 101 : 401); - } else { - // Will send a 500 error - promise.fail(ar.cause()); - } - }); -}); -``` - -> **Note** -> -> the WebSocket will be automatically accepted after the handler is -> called unless the WebSocket’s handshake has been set - -#### Upgrading to WebSocket - -The second way of handling WebSockets is to handle the HTTP Upgrade -request that was sent from the client, and call `upgrade` on the server -request. - -``` js -server.requestHandler((request) => { - if (request.path() == "/myapi") { - - let webSocket = request.upgrade(); - // Do something - - } else { - // Reject - request.response().setStatusCode(400).end(); - } -}); -``` - -#### The server WebSocket - -The `ServerWebSocket` instance enables you to retrieve the `headers`, -`path`, `query` and `URI` of the HTTP request of the WebSocket -handshake. - -### WebSockets on the client - -The Vert.x `HttpClient` supports WebSockets. - -You can connect a WebSocket to a server using one of the `webSocket` -operations and providing a handler. - -The handler will be called with an instance of `WebSocket` when the -connection has been made: - -``` js -client.webSocket("/some-uri", (res) => { - if (res.succeeded()) { - let ws = res.result(); - console.log("Connected!"); - } -}); -``` - -### Writing messages to WebSockets - -If you wish to write a single WebSocket message to the WebSocket you can -do this with `writeBinaryMessage` or `writeTextMessage` : - -``` js -import { Buffer } from "@vertx/core" -// Write a simple binary message -let buffer = Buffer.buffer().appendInt(123).appendFloat(1.23); -webSocket.writeBinaryMessage(buffer); - -// Write a simple text message -let message = "hello"; -webSocket.writeTextMessage(message); -``` - -If the WebSocket message is larger than the maximum WebSocket frame size -as configured with `setMaxWebSocketFrameSize` then Vert.x will split it -into multiple WebSocket frames before sending it on the wire. - -### Writing frames to WebSockets - -A WebSocket message can be composed of multiple frames. In this case the -first frame is either a *binary* or *text* frame followed by zero or -more *continuation* frames. - -The last frame in the message is marked as *final*. - -To send a message consisting of multiple frames you create frames using -`WebSocketFrame.binaryFrame` , `WebSocketFrame.textFrame` or -`WebSocketFrame.continuationFrame` and write them to the WebSocket using -`writeFrame`. - -Here’s an example for binary frames: - -``` js -import { WebSocketFrame } from "@vertx/core" - -let frame1 = WebSocketFrame.binaryFrame(buffer1, false); -webSocket.writeFrame(frame1); - -let frame2 = WebSocketFrame.continuationFrame(buffer2, false); -webSocket.writeFrame(frame2); - -// Write the final frame -let frame3 = WebSocketFrame.continuationFrame(buffer2, true); -webSocket.writeFrame(frame3); -``` - -In many cases you just want to send a WebSocket message that consists of -a single final frame, so we provide a couple of shortcut methods to do -that with `writeFinalBinaryFrame` and `writeFinalTextFrame`. - -Here’s an example: - -``` js -import { Buffer } from "@vertx/core" - -// Send a WebSocket messages consisting of a single final text frame: - -webSocket.writeFinalTextFrame("Geronimo!"); - -// Send a WebSocket messages consisting of a single final binary frame: - -let buff = Buffer.buffer().appendInt(12).appendString("foo"); - -webSocket.writeFinalBinaryFrame(buff); -``` - -### Reading frames from WebSockets - -To read frames from a WebSocket you use the `frameHandler`. - -The frame handler will be called with instances of `WebSocketFrame` when -a frame arrives, for example: - -``` js -webSocket.frameHandler((frame) => { - console.log("Received a frame of size!"); -}); -``` - -### Closing WebSockets - -Use `close` to close the WebSocket connection when you have finished -with it. - -### Piping WebSockets - -The `WebSocket` instance is also a `ReadStream` and a `WriteStream` so -it can be used with pipes. - -When using a WebSocket as a write stream or a read stream it can only be -used with WebSockets connections that are used with binary frames that -are no split over multiple frames. - -### Event bus handlers - -Every WebSocket automatically registers two handler on the event bus, -and when any data are received in this handler, it writes them to -itself. Those are local subscriptions not routed on the cluster. - -This enables you to write data to a WebSocket which is potentially in a -completely different verticle sending data to the address of that -handler. - -The addresses of the handlers are given by `binaryHandlerID` and -`textHandlerID`. - -## Using a proxy for HTTP/HTTPS connections - -The http client supports accessing http/https URLs via a HTTP proxy -(e.g. Squid) or *SOCKS4a* or *SOCKS5* proxy. The CONNECT protocol uses -HTTP/1.x but can connect to HTTP/1.x and HTTP/2 servers. - -Connecting to h2c (unencrypted HTTP/2 servers) is likely not supported -by http proxies since they will support HTTP/1.1 only. - -The proxy can be configured in the `HttpClientOptions` by setting a -`ProxyOptions` object containing proxy type, hostname, port and -optionally username and password. - -Here’s an example of using an HTTP proxy: - -``` js -let options = new HttpClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("HTTP") - .setHost("localhost") - .setPort(3128) - .setUsername("username") - .setPassword("secret")); -let client = vertx.createHttpClient(options); -``` - -When the client connects to an http URL, it connects to the proxy server -and provides the full URL in the HTTP request ("GET - HTTP/1.1"). - -When the client connects to an https URL, it asks the proxy to create a -tunnel to the remote host with the CONNECT method. - -For a SOCKS5 proxy: - -``` js -let options = new HttpClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("SOCKS5") - .setHost("localhost") - .setPort(1080) - .setUsername("username") - .setPassword("secret")); -let client = vertx.createHttpClient(options); -``` - -The DNS resolution is always done on the proxy server, to achieve the -functionality of a SOCKS4 client, it is necessary to resolve the DNS -address locally. - -### Handling of other protocols - -The HTTP proxy implementation supports getting ftp:// urls if the proxy -supports that, which isn’t available in non-proxy getAbs requests. - -``` js -let options = new HttpClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("HTTP")); -let client = vertx.createHttpClient(options); -client.getAbs("ftp://ftp.gnu.org/gnu/", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -Support for other protocols is not available since java.net.URL does not -support them (gopher:// for example). - -## Automatic clean-up in verticles - -If you’re creating http servers and clients from inside verticles, those -servers and clients will be automatically closed when the verticle is -undeployed. diff --git a/docs/manual/@vertx/core/index.md b/docs/manual/@vertx/core/index.md deleted file mode 100644 index 43981a5d7..000000000 --- a/docs/manual/@vertx/core/index.md +++ /dev/null @@ -1,8740 +0,0 @@ -At the heart of Vert.x is a set of Java APIs that we call **Vert.x -Core** - -[Repository](https://github.com/eclipse/vert.x). - -Vert.x core provides functionality for things like: - - - Writing TCP clients and servers - - - Writing HTTP clients and servers including support for WebSockets - - - The Event bus - - - Shared data - local maps and clustered distributed maps - - - Periodic and delayed actions - - - Deploying and undeploying Verticles - - - Datagram Sockets - - - DNS client - - - File system access - - - High availability - - - Native transports - - - Clustering - -The functionality in core is fairly low level - you won’t find stuff -like database access, authorisation or high level web functionality here -- that kind of stuff you’ll find in **Vert.x ext** (extensions). - -Vert.x core is small and lightweight. You just use the parts you want. -It’s also entirely embeddable in your existing applications - we don’t -force you to structure your applications in a special way just so you -can use Vert.x. - -You can use core from any of the other languages that Vert.x supports. -But here’a a cool bit - we don’t force you to use the Java API directly -from, say, JavaScript or Ruby - after all, different languages have -different conventions and idioms, and it would be odd to force Java -idioms on Ruby developers (for example). Instead, we automatically -generate an **idiomatic** equivalent of the core Java APIs for each -language. - -From now on we’ll just use the word **core** to refer to Vert.x core. - -If you are using Maven or Gradle, add the following dependency to the -*dependencies* section of your project descriptor to access the Vert.x -Core API: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-core - 3.6.3 - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile 'io.vertx:vertx-core:3.6.3' -} -``` - -Let’s discuss the different concepts and features in core. - -# In the beginning there was Vert.x - -You can’t do much in Vert.x-land unless you can communicate with a -{@link io.vertx.core.Vertx} object\! - -It’s the control centre of Vert.x and is how you do pretty much -everything, including creating clients and servers, getting a reference -to the event bus, setting timers, as well as many other things. - -So how do you get an instance? - -If you’re embedding Vert.x then you simply create an instance as -follows: - -``` $lang -{@link examples.CoreExamples#example1} -``` - -> **Note** -> -> Most applications will only need a single Vert.x instance, but it’s -> possible to create multiple Vert.x instances if you require, for -> example, isolation between the event bus or different groups of -> servers and clients. - -## Specifying options when creating a Vertx object - -When creating a Vert.x object you can also specify options if the -defaults aren’t right for you: - -``` $lang -{@link examples.CoreExamples#example2} -``` - -The {@link io.vertx.core.VertxOptions} object has many settings and -allows you to configure things like clustering, high availability, pool -sizes and various other settings. - -## Creating a clustered Vert.x object - -If you’re creating a **clustered Vert.x** (See the section on the [event -bus](#event_bus) for more information on clustering the event bus), then -you will normally use the asynchronous variant to create the Vertx -object. - -This is because it usually takes some time (maybe a few seconds) for the -different Vert.x instances in a cluster to group together. During that -time, we don’t want to block the calling thread, so we give the result -to you asynchronously. - -# Are you fluent? - -You may have noticed that in the previous examples a **fluent** API was -used. - -A fluent API is where multiple methods calls can be chained together. -For example: - -``` js -request.response().putHeader("Content-Type", "text/plain").write("some text").end(); -``` - -This is a common pattern throughout Vert.x APIs, so get used to it. - -Chaining calls like this allows you to write code that’s a little bit -less verbose. Of course, if you don’t like the fluent approach **we -don’t force you** to do it that way, you can happily ignore it if you -prefer and write your code like this: - -``` js -let response = request.response(); -response.putHeader("Content-Type", "text/plain"); -response.write("some text"); -response.end(); -``` - -# Don’t call us, we’ll call you. - -The Vert.x APIs are largely *event driven*. This means that when things -happen in Vert.x that you are interested in, Vert.x will call you by -sending you events. - -Some example events are: - - - a timer has fired - - - some data has arrived on a socket, - - - some data has been read from disk - - - an exception has occurred - - - an HTTP server has received a request - -You handle events by providing *handlers* to the Vert.x APIs. For -example to receive a timer event every second you would do: - -``` js -vertx.setPeriodic(1000, (id) => { - // This handler will get called every second - console.log("timer fired!"); -}); -``` - -Or to receive an HTTP request: - -``` js -// Respond to each http request with "Hello World" -server.requestHandler((request) => { - // This handler will be called every time an HTTP request is received at the server - request.response().end("hello world!"); -}); -``` - -Some time later when Vert.x has an event to pass to your handler Vert.x -will call it **asynchronously**. - -This leads us to some important concepts in Vert.x: - -# Don’t block me\! - -With very few exceptions (i.e. some file system operations ending in -'Sync'), none of the APIs in Vert.x block the calling thread. - -If a result can be provided immediately, it will be returned -immediately, otherwise you will usually provide a handler to receive -events some time later. - -Because none of the Vert.x APIs block threads that means you can use -Vert.x to handle a lot of concurrency using just a small number of -threads. - -With a conventional blocking API the calling thread might block when: - - - Reading data from a socket - - - Writing data to disk - - - Sending a message to a recipient and waiting for a reply. - - - …​ Many other situations - -In all the above cases, when your thread is waiting for a result it -can’t do anything else - it’s effectively useless. - -This means that if you want a lot of concurrency using blocking APIs -then you need a lot of threads to prevent your application grinding to a -halt. - -Threads have overhead in terms of the memory they require (e.g. for -their stack) and in context switching. - -For the levels of concurrency required in many modern applications, a -blocking approach just doesn’t scale. - -# Reactor and Multi-Reactor - -We mentioned before that Vert.x APIs are event driven - Vert.x passes -events to handlers when they are available. - -In most cases Vert.x calls your handlers using a thread called an -**event loop**. - -As nothing in Vert.x or your application blocks, the event loop can -merrily run around delivering events to different handlers in succession -as they arrive. - -Because nothing blocks, an event loop can potentially deliver huge -amounts of events in a short amount of time. For example a single event -loop can handle many thousands of HTTP requests very quickly. - -We call this the [Reactor -Pattern](http://en.wikipedia.org/wiki/Reactor_pattern). - -You may have heard of this before - for example Node.js implements this -pattern. - -In a standard reactor implementation there is a **single event loop** -thread which runs around in a loop delivering all events to all handlers -as they arrive. - -The trouble with a single thread is it can only run on a single core at -any one time, so if you want your single threaded reactor application -(e.g. your Node.js application) to scale over your multi-core server you -have to start up and manage many different processes. - -Vert.x works differently here. Instead of a single event loop, each -Vertx instance maintains **several event loops**. By default we choose -the number based on the number of available cores on the machine, but -this can be overridden. - -This means a single Vertx process can scale across your server, unlike -Node.js. - -We call this pattern the **Multi-Reactor Pattern** to distinguish it -from the single threaded reactor pattern. - -> **Note** -> -> Even though a Vertx instance maintains multiple event loops, any -> particular handler will never be executed concurrently, and in most -> cases (with the exception of [worker verticles](#worker_verticles)) -> will always be called using the **exact same event loop**. - -# The Golden Rule - Don’t Block the Event Loop - -We already know that the Vert.x APIs are non blocking and won’t block -the event loop, but that’s not much help if you block the event loop -**yourself** in a handler. - -If you do that, then that event loop will not be able to do anything -else while it’s blocked. If you block all of the event loops in Vertx -instance then your application will grind to a complete halt\! - -So don’t do it\! **You have been warned**. - -Examples of blocking include: - - - Thread.sleep() - - - Waiting on a lock - - - Waiting on a mutex or monitor (e.g. synchronized section) - - - Doing a long lived database operation and waiting for a result - - - Doing a complex calculation that takes some significant time. - - - Spinning in a loop - -If any of the above stop the event loop from doing anything else for a -**significant amount of time** then you should go immediately to the -naughty step, and await further instructions. - -So…​ what is a **significant amount of time**? - -How long is a piece of string? It really depends on your application and -the amount of concurrency you require. - -If you have a single event loop, and you want to handle 10000 http -requests per second, then it’s clear that each request can’t take more -than 0.1 ms to process, so you can’t block for any more time than that. - -**The maths is not hard and shall be left as an exercise for the -reader.** - -If your application is not responsive it might be a sign that you are -blocking an event loop somewhere. To help you diagnose such issues, -Vert.x will automatically log warnings if it detects an event loop -hasn’t returned for some time. If you see warnings like these in your -logs, then you should investigate. - - Thread vertx-eventloop-thread-3 has been blocked for 20458 ms - -Vert.x will also provide stack traces to pinpoint exactly where the -blocking is occurring. - -If you want to turn off these warnings or change the settings, you can -do that in the `VertxOptions` object before creating the Vertx object. - -# Running blocking code - -In a perfect world, there will be no war or hunger, all APIs will be -written asynchronously and bunny rabbits will skip hand-in-hand with -baby lambs across sunny green meadows. - -**But…​ the real world is not like that. (Have you watched the news -lately?)** - -Fact is, many, if not most libraries, especially in the JVM ecosystem -have synchronous APIs and many of the methods are likely to block. A -good example is the JDBC API - it’s inherently synchronous, and no -matter how hard it tries, Vert.x cannot sprinkle magic pixie dust on it -to make it asynchronous. - -We’re not going to rewrite everything to be asynchronous overnight so we -need to provide you a way to use "traditional" blocking APIs safely -within a Vert.x application. - -As discussed before, you can’t call blocking operations directly from an -event loop, as that would prevent it from doing any other useful work. -So how can you do this? - -It’s done by calling `executeBlocking` specifying both the blocking code -to execute and a result handler to be called back asynchronous when the -blocking code has been executed. - -``` js -vertx.executeBlocking((promise) => { - // Call some blocking API that takes a significant amount of time to return - let result = someAPI.blockingMethod("hello"); - promise.complete(result); -}, (res) => { - console.log("The result is: " + res.result()); -}); -``` - -> **Warning** -> -> Blocking code should block for a reasonable amount of time (i.e no -> more than a few seconds). Long blocking operations or polling -> operations (i.e a thread that spin in a loop polling events in a -> blocking fashion) are precluded. When the blocking operation lasts -> more than the 10 seconds, a message will be printed on the console by -> the blocked thread checker. Long blocking operations should use a -> dedicated thread managed by the application, which can interact with -> verticles using the event-bus or `runOnContext` - -By default, if executeBlocking is called several times from the same -context (e.g. the same verticle instance) then the different -executeBlocking are executed *serially* (i.e. one after another). - -If you don’t care about ordering you can call `executeBlocking` -specifying `false` as the argument to `ordered`. In this case any -executeBlocking may be executed in parallel on the worker pool. - -An alternative way to run blocking code is to use a [worker -verticle](#worker_verticles) - -A worker verticle is always executed with a thread from the worker pool. - -By default blocking code is executed on the Vert.x worker pool, -configured with `setWorkerPoolSize`. - -Additional pools can be created for different purposes: - -``` js -let executor = vertx.createSharedWorkerExecutor("my-worker-pool"); -executor.executeBlocking((promise) => { - // Call some blocking API that takes a significant amount of time to return - let result = someAPI.blockingMethod("hello"); - promise.complete(result); -}, (res) => { - console.log("The result is: " + res.result()); -}); -``` - -The worker executor must be closed when it’s not necessary anymore: - -``` js -executor.close(); -``` - -When several workers are created with the same name, they will share the -same pool. The worker pool is destroyed when all the worker executors -using it are closed. - -When an executor is created in a Verticle, Vert.x will close it -automatically for you when the Verticle is undeployed. - -Worker executors can be configured when created: - -``` js -// -// 10 threads max -let poolSize = 10; - -// 2 minutes -let maxExecuteTime = 2; -let maxExecuteTimeUnit = TimeUnit.MINUTES; - -let executor = vertx.createSharedWorkerExecutor("my-worker-pool", poolSize, maxExecuteTime, maxExecuteTimeUnit); -``` - -> **Note** -> -> the configuration is set when the worker pool is created - -# Async coordination - -Coordination of multiple asynchronous results can be achieved with -Vert.x `futures`. It supports concurrent composition (run several async -operations in parallel) and sequential composition (chain async -operations). - -## Concurrent composition - -`CompositeFuture.all` takes several futures arguments (up to 6) and -returns a future that is *succeeded* when all the futures are and -*failed* when at least one of the futures is failed: - -``` js -import { Future } from "@vertx/core" -import { CompositeFuture } from "@vertx/core" -let httpServerFuture = Future.future((promise) => { - httpServer.listen(promise); -}); - -let netServerFuture = Future.future((promise) => { - netServer.listen(promise); -}); - -CompositeFuture.all(httpServerFuture, netServerFuture).onComplete((ar) => { - if (ar.succeeded()) { - // All servers started - } else { - // At least one server failed - } -}); -``` - -The operations run concurrently, the `Handler` attached to the returned -future is invoked upon completion of the composition. When one of the -operation fails (one of the passed future is marked as a failure), the -resulting future is marked as failed too. When all the operations -succeed, the resulting future is completed with a success. - -Alternatively, you can pass a list (potentially empty) of futures: - -``` js -import { CompositeFuture } from "@vertx/core" -CompositeFuture.all([future1, future2, future3]); -``` - -While the `all` composition *waits* until all futures are successful (or -one fails), the `any` composition *waits* for the first succeeded -future. `CompositeFuture.any` takes several futures arguments (up to 6) -and returns a future that is succeeded when one of the futures is, and -failed when all the futures are failed: - -``` js -import { CompositeFuture } from "@vertx/core" -CompositeFuture.any(future1, future2).onComplete((ar) => { - if (ar.succeeded()) { - // At least one is succeeded - } else { - // All failed - } -}); -``` - -A list of futures can be used also: - -``` js -import { CompositeFuture } from "@vertx/core" -CompositeFuture.any([f1, f2, f3]); -``` - -The `join` composition *waits* until all futures are completed, either -with a success or a failure. `CompositeFuture.join` takes several -futures arguments (up to 6) and returns a future that is succeeded when -all the futures are succeeded, and failed when all the futures are -completed and at least one of them is failed: - -``` js -import { CompositeFuture } from "@vertx/core" -CompositeFuture.join(future1, future2, future3).onComplete((ar) => { - if (ar.succeeded()) { - // All succeeded - } else { - // All completed and at least one failed - } -}); -``` - -A list of futures can be used also: - -``` js -import { CompositeFuture } from "@vertx/core" -CompositeFuture.join([future1, future2, future3]); -``` - -## Sequential composition - -While `all` and `any` are implementing concurrent composition, `compose` -can be used for chaining futures (so sequential composition). - -``` js -import { Future } from "@vertx/core" -import { Buffer } from "@vertx/core" - -let fs = vertx.fileSystem(); - -let fut1 = Future.future((promise) => { - fs.createFile("/foo", promise); -}); - -let startFuture = fut1.compose((v) => { - // When the file is created (fut1), execute this: - return Future.future((promise) => { - fs.writeFile("/foo", Buffer.buffer(), promise); - }) -}).compose((v) => { - // When the file is written (fut2), execute this: - return Future.future((promise) => { - fs.move("/foo", "/bar", promise); - }) -}); -``` - -In this example, 3 operations are chained: - -1. a file is created (`fut1`) - -2. something is written in the file (`fut2`) - -3. the file is moved (`startFuture`) - -When these 3 steps are successful, the final future (`startFuture`) is -succeeded. However, if one of the steps fails, the final future is -failed. - -This example uses: - - - `compose`: when the current future completes, run the given - function, that returns a future. When this returned future - completes, it completes the composition. - - - `compose`: when the current future completes, run the given handler - that completes the given `future` (next). - -In this second case, the `Handler` should complete the `next` future to -report its success or failure. - -## CompletionStage interoperability - -The Vert.x `Future` API offers compatibility *from* and *to* -`CompletionStage` which is the JDK interface for composable asynchronous -operations. - -We can go from a Vert.x `Future` to a `CompletionStage` using the -`toCompletionStage` method, as in: - -``` js -import { Promise } from "@vertx/core" -let promise = Promise.promise(); -vertx.createDnsClient().lookup("vertx.io", promise); -promise.future().toCompletionStage().whenComplete((ip, err) => { - if ((err !== null && err !== undefined)) { - console.error("Could not resolve vertx.io"); - err.printStackTrace(); - } else { - console.log("vertx.io => " + ip); - } -}); -``` - -We can conversely go from a `CompletionStage` to Vert.x `Future` using -`Future.fromCompletionStage`. There are 2 variants: - -1. the first variant takes just a `CompletionStage` and calls the - `Future` methods from the thread that resolves the `CompletionStage` - instance, and - -2. the second variant takes an extra `Context` parameter to call the - `Future` methods on a Vert.x context. - -> **Important** -> -> In most cases the variant with a `CompletionStage` and a `Context` is -> the one you will want to use to respect the Vert.x threading model, -> since Vert.x `Future` are more likely to be used with Vert.x code, -> libraries and clients. - -Here is an example of going from a `CompletionStage` to a Vert.x -`Future` and dispatching on a context: - -``` js -import { Future } from "@vertx/core" -Future.fromCompletionStage(completionStage, vertx.getOrCreateContext()).flatMap((str) => { - let key = Java.type("java.util.UUID").randomUUID().toString(); - return storeInDb(key, str) -}).onSuccess((str) => { - console.log("We have a result: " + str); -}).onFailure((err) => { - console.error("We have a problem"); - err.printStackTrace(); -}); -``` - -# Verticles - -Vert.x comes with a simple, scalable, *actor-like* deployment and -concurrency model out of the box that you can use to save you writing -your own. - -**This model is entirely optional and Vert.x does not force you to -create your applications in this way if you don’t want to.**. - -The model does not claim to be a strict actor-model implementation, but -it does share similarities especially with respect to concurrency, -scaling and deployment. - -To use this model, you write your code as set of **verticles**. - -Verticles are chunks of code that get deployed and run by Vert.x. A -Vert.x instance maintains N event loop threads (where N by default is -core\*2) by default. Verticles can be written in any of the languages -that Vert.x supports and a single application can include verticles -written in multiple languages. - -You can think of a verticle as a bit like an actor in the [Actor -Model](http://en.wikipedia.org/wiki/Actor_model). - -An application would typically be composed of many verticle instances -running in the same Vert.x instance at the same time. The different -verticle instances communicate with each other by sending messages on -the [event bus](#event_bus). - -## Writing Verticles - -Verticle classes must implement the {@link io.vertx.core.Verticle} -interface. - -They can implement it directly if you like but usually it’s simpler to -extend the abstract class {@link io.vertx.core.AbstractVerticle}. - -Here’s an example verticle: - - public class MyVerticle extends AbstractVerticle { - - // Called when verticle is deployed - public void start() { - } - - // Optional - called when verticle is undeployed - public void stop() { - } - - } - -Normally you would override the start method like in the example above. - -When Vert.x deploys the verticle it will call the start method, and when -the method has completed the verticle will be considered started. - -You can also optionally override the stop method. This will be called by -Vert.x when the verticle is undeployed and when the method has completed -the verticle will be considered stopped. - -## Asynchronous Verticle start and stop - -Sometimes you want to do something in your verticle start-up which takes -some time and you don’t want the verticle to be considered deployed -until that happens. For example you might want to start an HTTP server -in the start method and propagate the asynchronous result of the server -`listen` method. - -You can’t block waiting for the HTTP server to bind in your start method -as that would break the [Golden Rule](#golden_rule). - -So how can you do this? - -The way to do it is to implement the **asynchronous** start method. This -version of the method takes a Future as a parameter. When the method -returns the verticle will **not** be considered deployed. - -Some time later, after you’ve done everything you need to do (e.g. start -the HTTP server), you can call complete on the Future (or fail) to -signal that you’re done. - -Here’s an example: - - public class MyVerticle extends AbstractVerticle { - - private HttpServer server; - - public void start(Promise startPromise) { - server = vertx.createHttpServer().requestHandler(req -> { - req.response() - .putHeader("content-type", "text/plain") - .end("Hello from Vert.x!"); - }); - - // Now bind the server: - server.listen(8080, res -> { - if (res.succeeded()) { - startPromise.complete(); - } else { - startPromise.fail(res.cause()); - } - }); - } - } - -Similarly, there is an asynchronous version of the stop method too. You -use this if you want to do some verticle cleanup that takes some time. - - public class MyVerticle extends AbstractVerticle { - - public void start() { - // Do something - } - - public void stop(Future stopFuture) { - obj.doSomethingThatTakesTime(res -> { - if (res.succeeded()) { - stopFuture.complete(); - } else { - stopFuture.fail(); - } - }); - } - } - -INFO: You don’t need to manually stop the HTTP server started by a -verticle, in the verticle’s stop method. Vert.x will automatically stop -any running server when the verticle is undeployed. - -## Verticle Types - -There are two different types of verticles: - - - Standard Verticles - These are the most common and useful type - they are always executed - using an event loop thread. We’ll discuss this more in the next - section. - - - Worker Verticles - These run using a thread from the worker pool. An instance is never - executed concurrently by more than one thread. - -## Standard verticles - -Standard verticles are assigned an event loop thread when they are -created and the start method is called with that event loop. When you -call any other methods that takes a handler on a core API from an event -loop then Vert.x will guarantee that those handlers, when called, will -be executed on the same event loop. - -This means we can guarantee that all the code in your verticle instance -is always executed on the same event loop (as long as you don’t create -your own threads and call it\!). - -This means you can write all the code in your application as single -threaded and let Vert.x worry about the threading and scaling. No more -worrying about synchronized and volatile any more, and you also avoid -many other cases of race conditions and deadlock so prevalent when doing -hand-rolled 'traditional' multi-threaded application development. - -## Worker verticles - -A worker verticle is just like a standard verticle but it’s executed -using a thread from the Vert.x worker thread pool, rather than using an -event loop. - -Worker verticles are designed for calling blocking code, as they won’t -block any event loops. - -If you don’t want to use a worker verticle to run blocking code, you can -also run [inline blocking code](#blocking_code) directly while on an -event loop. - -If you want to deploy a verticle as a worker verticle you do that with -`setWorker`. - -``` js -let options = new DeploymentOptions() - .setWorker(true); -vertx.deployVerticle("com.mycompany.MyOrderProcessorVerticle", options); -``` - -Worker verticle instances are never executed concurrently by Vert.x by -more than one thread, but can executed by different threads at different -times. - -## Deploying verticles programmatically - -You can deploy a verticle using one of the `deployVerticle` method, -specifying a verticle name or you can pass in a verticle instance you -have already created yourself. - -> **Note** -> -> Deploying Verticle **instances** is Java only. - -``` java -let myVerticle = new (Java.type("examples.CoreExamples.MyVerticle"))(); -vertx.deployVerticle(myVerticle); -``` - -You can also deploy verticles by specifying the verticle **name**. - -The verticle name is used to look up the specific `VerticleFactory` that -will be used to instantiate the actual verticle instance(s). - -Different verticle factories are available for instantiating verticles -in different languages and for various other reasons such as loading -services and getting verticles from Maven at run-time. - -This allows you to deploy verticles written in any language from any -other language that Vert.x supports. - -Here’s an example of deploying some different types of verticles: - -``` js -// Deploy a Java verticle - the name is the fully qualified class name of the verticle class -vertx.deployVerticle("com.mycompany.MyOrderProcessorVerticle"); - -// Deploy a JavaScript verticle -vertx.deployVerticle("verticles/myverticle.js"); - -// Deploy a Ruby verticle verticle -vertx.deployVerticle("verticles/my_verticle.rb"); -``` - -## Rules for mapping a verticle name to a verticle factory - -When deploying verticle(s) using a name, the name is used to select the -actual verticle factory that will instantiate the verticle(s). - -Verticle names can have a prefix - which is a string followed by a -colon, which if present will be used to look-up the factory, e.g. - -js:foo.js // Use the JavaScript verticle factory -groovy:com.mycompany.SomeGroovyCompiledVerticle // Use the Groovy -verticle factory service:com.mycompany:myorderservice // Uses the -service verticle factory - -If no prefix is present, Vert.x will look for a suffix and use that to -lookup the factory, e.g. - -foo.js // Will also use the JavaScript verticle factory -SomeScript.groovy // Will use the Groovy verticle factory - -If no prefix or suffix is present, Vert.x will assume it’s a Java fully -qualified class name (FQCN) and try and instantiate that. - -## How are Verticle Factories located? - -Most Verticle factories are loaded from the classpath and registered at -Vert.x startup. - -You can also programmatically register and unregister verticle factories -using `registerVerticleFactory` and `unregisterVerticleFactory` if you -wish. - -## Waiting for deployment to complete - -Verticle deployment is asynchronous and may complete some time after the -call to deploy has returned. - -If you want to be notified when deployment is complete you can deploy -specifying a completion handler: - -``` js -vertx.deployVerticle("com.mycompany.MyOrderProcessorVerticle", (res) => { - if (res.succeeded()) { - console.log("Deployment id is: " + res.result()); - } else { - console.log("Deployment failed!"); - } -}); -``` - -The completion handler will be passed a result containing the deployment -ID string, if deployment succeeded. - -This deployment ID can be used later if you want to undeploy the -deployment. - -## Undeploying verticle deployments - -Deployments can be undeployed with `undeploy`. - -Un-deployment is itself asynchronous so if you want to be notified when -un-deployment is complete you can deploy specifying a completion -handler: - -``` js -vertx.undeploy(deploymentID, (res) => { - if (res.succeeded()) { - console.log("Undeployed ok"); - } else { - console.log("Undeploy failed!"); - } -}); -``` - -## Specifying number of verticle instances - -When deploying a verticle using a verticle name, you can specify the -number of verticle instances that you want to deploy: - -``` js -let options = new DeploymentOptions() - .setInstances(16); -vertx.deployVerticle("com.mycompany.MyOrderProcessorVerticle", options); -``` - -This is useful for scaling easily across multiple cores. For example you -might have a web-server verticle to deploy and multiple cores on your -machine, so you want to deploy multiple instances to utilise all the -cores. - -## Passing configuration to a verticle - -Configuration in the form of JSON can be passed to a verticle at -deployment time: - -``` $lang -{@link examples.CoreExamples#example13} -``` - -This configuration is then available via the {@link -io.vertx.core.Context} object or directly using the {@link -io.vertx.core.AbstractVerticle\#config()} method. The configuration is -returned as a JSON object so you can retrieve data as follows: - -``` $lang -{@link examples.ConfigurableVerticleExamples#start()} -``` - -## Accessing environment variables in a Verticle - -Environment variables and system properties are accessible using the -Java API: - -``` $lang -{@link examples.CoreExamples#systemAndEnvProperties()} -``` - -## Verticle Isolation Groups - -By default, Vert.x has a *flat classpath*. I.e, when Vert.x deploys -verticles it does so with the current classloader - it doesn’t create a -new one. In the majority of cases this is the simplest, clearest, and -sanest thing to do. - -However, in some cases you may want to deploy a verticle so the classes -of that verticle are isolated from others in your application. - -This might be the case, for example, if you want to deploy two different -versions of a verticle with the same class name in the same Vert.x -instance, or if you have two different verticles which use different -versions of the same jar library. - -When using an isolation group you provide a list of the class names that -you want isolated using `setIsolatedClasses`- an entry can be a fully -qualified classname such as `com.mycompany.myproject.engine.MyClass` or -it can be a wildcard which will match any classes in a package and any -sub-packages, e.g. `com.mycompany.myproject.*` would match any classes -in the package `com.mycompany.myproject` or any sub-packages. - -Please note that *only* the classes that match will be isolated - any -other classes will be loaded by the current class loader. - -Extra classpath entries can also be provided with `setExtraClasspath` so -if you want to load classes or resources that aren’t already present on -the main classpath you can add this. - -> **Warning** -> -> Use this feature with caution. Class-loaders can be a can of worms, -> and can make debugging difficult, amongst other things. - -Here’s an example of using an isolation group to isolate a verticle -deployment. - -``` js -let options = new DeploymentOptions() - .setIsolationGroup("mygroup"); -options.isolatedClasses = ["com.mycompany.myverticle.*", "com.mycompany.somepkg.SomeClass", "org.somelibrary.*"]; -vertx.deployVerticle("com.mycompany.myverticle.VerticleClass", options); -``` - -## High Availability - -Verticles can be deployed with High Availability (HA) enabled. In that -context, when a verticle is deployed on a vert.x instance that dies -abruptly, the verticle is redeployed on another vert.x instance from the -cluster. - -To run an verticle with the high availability enabled, just append the -`-ha` switch: - - vertx run my-verticle.js -ha - -When enabling high availability, no need to add `-cluster`. - -More details about the high availability feature and configuration in -the [High Availability and Fail-Over](#_high_availability_and_fail_over) -section. - -## Running Verticles from the command line - -You can use Vert.x directly in your Maven or Gradle projects in the -normal way by adding a dependency to the Vert.x core library and hacking -from there. - -However you can also run Vert.x verticles directly from the command line -if you wish. - -To do this you need to download and install a Vert.x distribution, and -add the `bin` directory of the installation to your `PATH` environment -variable. Also make sure you have a Java 8 JDK on your `PATH`. - -> **Note** -> -> The JDK is required to support on the fly compilation of Java code. - -You can now run verticles by using the `vertx run` command. Here are -some examples: - - # Run a JavaScript verticle - vertx run my_verticle.js - - # Run a Ruby verticle - vertx run a_n_other_verticle.rb - - # Run a Groovy script verticle, clustered - vertx run FooVerticle.groovy -cluster - -You can even run Java source verticles without compiling them first\! - - vertx run SomeJavaSourceFile.java - -Vert.x will compile the Java source file on the fly before running it. -This is really useful for quickly prototyping verticles and great for -demos. No need to set-up a Maven or Gradle build first to get going\! - -For full information on the various options available when executing -`vertx` on the command line, type `vertx` at the command line. - -## Causing Vert.x to exit - -Threads maintained by Vert.x instances are not daemon threads so they -will prevent the JVM from exiting. - -If you are embedding Vert.x and you have finished with it, you can call -`close` to close it down. - -This will shut-down all internal thread pools and close other resources, -and will allow the JVM to exit. - -## The Context object - -When Vert.x provides an event to a handler or calls the start or stop -methods of a `Verticle`, the execution is associated with a `Context`. -Usually a context is an **event-loop context** and is tied to a specific -event loop thread. So executions for that context always occur on that -exact same event loop thread. In the case of worker verticles and -running inline blocking code a worker context will be associated with -the execution which will use a thread from the worker thread pool. - -To retrieve the context, use the `getOrCreateContext` method: - -``` js -let context = vertx.getOrCreateContext(); -``` - -If the current thread has a context associated with it, it reuses the -context object. If not a new instance of context is created. You can -test the *type* of context you have retrieved: - -``` js -import { Context } from "@vertx/core" -let context = vertx.getOrCreateContext(); -if (context.isEventLoopContext()) { - console.log("Context attached to Event Loop"); -} else if (context.isWorkerContext()) { - console.log("Context attached to Worker Thread"); -} else if (context.isMultiThreadedWorkerContext()) { - console.log("Context attached to Worker Thread - multi threaded worker"); -} else if (!Context.isOnVertxThread()) { - console.log("Context not attached to a thread managed by vert.x"); -} -``` - -When you have retrieved the context object, you can run code in this -context asynchronously. In other words, you submit a task that will be -eventually run in the same context, but later: - -``` js -vertx.getOrCreateContext().runOnContext((v) => { - console.log("This will be executed asynchronously in the same context"); -}); -``` - -When several handlers run in the same context, they may want to share -data. The context object offers methods to store and retrieve data -shared in the context. For instance, it lets you pass data to some -action run with `runOnContext`: - -``` js -let context = vertx.getOrCreateContext(); -context.put("data", "hello"); -context.runOnContext((v) => { - let hello = context.get("data"); -}); -``` - -The context object also let you access verticle configuration using the -`config` method. Check the [Passing configuration to a -verticle](#_passing_configuration_to_a_verticle) section for more -details about this configuration. - -## Executing periodic and delayed actions - -It’s very common in Vert.x to want to perform an action after a delay, -or periodically. - -In standard verticles you can’t just make the thread sleep to introduce -a delay, as that will block the event loop thread. - -Instead you use Vert.x timers. Timers can be **one-shot** or -**periodic**. We’ll discuss both - -### One-shot Timers - -A one shot timer calls an event handler after a certain delay, expressed -in milliseconds. - -To set a timer to fire once you use `setTimer` method passing in the -delay and a handler - -``` js -let timerID = vertx.setTimer(1000, (id) => { - console.log("And one second later this is printed"); -}); - -console.log("First this is printed"); -``` - -The return value is a unique timer id which can later be used to cancel -the timer. The handler is also passed the timer id. - -### Periodic Timers - -You can also set a timer to fire periodically by using `setPeriodic`. - -There will be an initial delay equal to the period. - -The return value of `setPeriodic` is a unique timer id (long). This can -be later used if the timer needs to be cancelled. - -The argument passed into the timer event handler is also the unique -timer id: - -Keep in mind that the timer will fire on a periodic basis. If your -periodic treatment takes a long amount of time to proceed, your timer -events could run continuously or even worse : stack up. - -In this case, you should consider using `setTimer` instead. Once your -treatment has finished, you can set the next timer. - -``` js -let timerID = vertx.setPeriodic(1000, (id) => { - console.log("And every second this is printed"); -}); - -console.log("First this is printed"); -``` - -### Cancelling timers - -To cancel a periodic timer, call `cancelTimer` specifying the timer id. -For example: - -``` js -vertx.cancelTimer(timerID); -``` - -### Automatic clean-up in verticles - -If you’re creating timers from inside verticles, those timers will be -automatically closed when the verticle is undeployed. - -## Verticle worker pool - -Verticles use the Vert.x worker pool for executing blocking actions, i.e -`executeBlocking` or worker verticle. - -A different worker pool can be specified in deployment options: - -``` js -vertx.deployVerticle("the-verticle", new DeploymentOptions() - .setWorkerPoolName("the-specific-pool")); -``` - -# The Event Bus - -The `event bus` is the **nervous system** of Vert.x. - -There is a single event bus instance for every Vert.x instance and it is -obtained using the method `eventBus`. - -The event bus allows different parts of your application to communicate -with each other, irrespective of what language they are written in, and -whether they’re in the same Vert.x instance, or in a different Vert.x -instance. - -It can even be bridged to allow client-side JavaScript running in a -browser to communicate on the same event bus. - -The event bus forms a distributed peer-to-peer messaging system spanning -multiple server nodes and multiple browsers. - -The event bus supports publish/subscribe, point-to-point, and -request-response messaging. - -The event bus API is very simple. It basically involves registering -handlers, unregistering handlers and sending and publishing messages. - -First some theory: - -## The Theory - -### Addressing - -Messages are sent on the event bus to an **address**. - -Vert.x doesn’t bother with any fancy addressing schemes. In Vert.x an -address is simply a string. Any string is valid. However it is wise to -use some kind of scheme, *e.g.* using periods to demarcate a namespace. - -Some examples of valid addresses are europe.news.feed1, -acme.games.pacman, sausages, and X. - -### Handlers - -Messages are received by handlers. You register a handler at an address. - -Many different handlers can be registered at the same address. - -A single handler can be registered at many different addresses. - -### Publish / subscribe messaging - -The event bus supports **publishing** messages. - -Messages are published to an address. Publishing means delivering the -message to all handlers that are registered at that address. - -This is the familiar **publish/subscribe** messaging pattern. - -### Point-to-point and Request-Response messaging - -The event bus also supports **point-to-point** messaging. - -Messages are sent to an address. Vert.x will then route them to just one -of the handlers registered at that address. - -If there is more than one handler registered at the address, one will be -chosen using a non-strict round-robin algorithm. - -With point-to-point messaging, an optional reply handler can be -specified when sending the message. - -When a message is received by a recipient, and has been handled, the -recipient can optionally decide to reply to the message. If they do so, -the reply handler will be called. - -When the reply is received back by the sender, it too can be replied to. -This can be repeated *ad infinitum*, and allows a dialog to be set up -between two different verticles. - -This is a common messaging pattern called the **request-response** -pattern. - -### Best-effort delivery - -Vert.x does its best to deliver messages and won’t consciously throw -them away. This is called **best-effort** delivery. - -However, in case of failure of all or parts of the event bus, there is a -possibility messages might be lost. - -If your application cares about lost messages, you should code your -handlers to be idempotent, and your senders to retry after recovery. - -### Types of messages - -Out of the box Vert.x allows any primitive/simple type, String, or -`buffers` to be sent as messages. - -However it’s a convention and common practice in Vert.x to send messages -as [JSON](http://json.org/) - -JSON is very easy to create, read and parse in all the languages that -Vert.x supports so it has become a kind of *lingua franca* for Vert.x. - -However you are not forced to use JSON if you don’t want to. - -The event bus is very flexible and also supports sending arbitrary -objects over the event bus. You can do this by defining a `codec` for -the objects you want to send. - -## The Event Bus API - -Let’s jump into the API. - -### Getting the event bus - -You get a reference to the event bus as follows: - -``` js -let eb = vertx.eventBus(); -``` - -There is a single instance of the event bus per Vert.x instance. - -### Registering Handlers - -This simplest way to register a handler is using `consumer`. Here’s an -example: - -``` js -let eb = vertx.eventBus(); - -eb.consumer("news.uk.sport", (message) => { - console.log("I have received a message: " + message.body()); -}); -``` - -When a message arrives for your handler, your handler will be called, -passing in the `message`. - -The object returned from call to consumer() is an instance of -`MessageConsumer`. - -This object can subsequently be used to unregister the handler, or use -the handler as a stream. - -Alternatively you can use `consumer` to return a MessageConsumer with no -handler set, and then set the handler on that. For example: - -``` js -let eb = vertx.eventBus(); - -let consumer = eb.consumer("news.uk.sport"); -consumer.handler((message) => { - console.log("I have received a message: " + message.body()); -}); -``` - -When registering a handler on a clustered event bus, it can take some -time for the registration to reach all nodes of the cluster. - -If you want to be notified when this has completed, you can register a -`completion handler` on the MessageConsumer object. - -``` js -consumer.completionHandler((res) => { - if (res.succeeded()) { - console.log("The handler registration has reached all nodes"); - } else { - console.log("Registration failed!"); - } -}); -``` - -### Un-registering Handlers - -To unregister a handler, call `unregister`. - -If you are on a clustered event bus, un-registering can take some time -to propagate across the nodes. If you want to be notified when this is -complete, use `unregister`. - -``` js -consumer.unregister((res) => { - if (res.succeeded()) { - console.log("The handler un-registration has reached all nodes"); - } else { - console.log("Un-registration failed!"); - } -}); -``` - -### Publishing messages - -Publishing a message is simple. Just use `publish` specifying the -address to publish it to. - -``` js -eventBus.publish("news.uk.sport", "Yay! Someone kicked a ball"); -``` - -That message will then be delivered to all handlers registered against -the address news.uk.sport. - -### Sending messages - -Sending a message will result in only one handler registered at the -address receiving the message. This is the point-to-point messaging -pattern. The handler is chosen in a non-strict round-robin fashion. - -You can send a message with `send`. - -``` js -eventBus.send("news.uk.sport", "Yay! Someone kicked a ball"); -``` - -### Setting headers on messages - -Messages sent over the event bus can also contain headers. This can be -specified by providing a {@link io.vertx.core.eventbus.DeliveryOptions} -when sending or publishing: - -``` $lang -{@link docoverride.eventbus.Examples#headers(io.vertx.core.eventbus.EventBus)} -``` - -### Message ordering - -Vert.x will deliver messages to any particular handler in the same order -they were sent from any particular sender. - -### The Message object - -The object you receive in a message handler is a `Message`. - -The `body` of the message corresponds to the object that was sent or -published. - -The headers of the message are available with `headers`. - -### Acknowledging messages / sending replies - -When using `send` the event bus attempts to deliver the message to a -`MessageConsumer` registered with the event bus. - -In some cases it’s useful for the sender to know when the consumer has -received the message and "processed" it using **request-response** -pattern. - -To acknowledge that the message has been processed, the consumer can -reply to the message by calling `reply`. - -When this happens it causes a reply to be sent back to the sender and -the reply handler is invoked with the reply. - -An example will make this clear: - -The receiver: - -``` js -let consumer = eventBus.consumer("news.uk.sport"); -consumer.handler((message) => { - console.log("I have received a message: " + message.body()); - message.reply("how interesting!"); -}); -``` - -The sender: - -``` js -eventBus.request("news.uk.sport", "Yay! Someone kicked a ball across a patch of grass", (ar) => { - if (ar.succeeded()) { - console.log("Received reply: " + ar.result().body()); - } -}); -``` - -The reply can contain a message body which can contain useful -information. - -What the "processing" actually means is application-defined and depends -entirely on what the message consumer does and is not something that the -Vert.x event bus itself knows or cares about. - -Some examples: - - - A simple message consumer which implements a service which returns - the time of the day would acknowledge with a message containing the - time of day in the reply body - - - A message consumer which implements a persistent queue, might - acknowledge with `true` if the message was successfully persisted in - storage, or `false` if not. - - - A message consumer which processes an order might acknowledge with - `true` when the order has been successfully processed so it can be - deleted from the database - -### Sending with timeouts - -When sending a message with a reply handler, you can specify a timeout -in the `DeliveryOptions`. - -If a reply is not received within that time, the reply handler will be -called with a failure. - -The default timeout is 30 seconds. - -### Send Failures - -Message sends can fail for other reasons, including: - - - There are no handlers available to send the message to - - - The recipient has explicitly failed the message using `fail` - -In all cases, the reply handler will be called with the specific -failure. - -### Message Codecs - -You can send any object you like across the event bus if you define and -register a {@link io.vertx.core.eventbus.MessageCodec message codec} for -it. - -Message codecs have a name and you specify that name in the {@link -io.vertx.core.eventbus.DeliveryOptions} when sending or publishing the -message: - -``` java -{@link docoverride.eventbus.Examples#example10} -``` - -If you always want the same codec to be used for a particular type then -you can register a default codec for it, then you don’t have to specify -the codec on each send in the delivery options: - -``` java -{@link docoverride.eventbus.Examples#example11} -``` - -You unregister a message codec with {@link -io.vertx.core.eventbus.EventBus\#unregisterCodec}. - -Message codecs don’t always have to encode and decode as the same type. -For example you can write a codec that allows a MyPOJO class to be sent, -but when that message is sent to a handler it arrives as a MyOtherPOJO -class. - -### Clustered Event Bus - -The event bus doesn’t just exist in a single Vert.x instance. By -clustering different Vert.x instances together on your network they can -form a single, distributed event bus. - -### Clustering programmatically - -If you’re creating your Vert.x instance programmatically you get a -clustered event bus by configuring the Vert.x instance as clustered; - -``` js -import { Vertx } from "@vertx/core" -let options = new VertxOptions(); -Vertx.clusteredVertx(options, (res) => { - if (res.succeeded()) { - let vertx = res.result(); - let eventBus = vertx.eventBus(); - console.log("We now have a clustered event bus: " + eventBus); - } else { - console.log("Failed: " + res.cause()); - } -}); -``` - -You should also make sure you have a `ClusterManager` implementation on -your classpath, for example the Hazelcast cluster manager. - -### Clustering on the command line - -You can run Vert.x clustered on the command line with - - vertx run my-verticle.js -cluster - -## Automatic clean-up in verticles - -If you’re registering event bus handlers from inside verticles, those -handlers will be automatically unregistered when the verticle is -undeployed. - -# Configuring the event bus - -The event bus can be configured. It is particularly useful when the -event bus is clustered. Under the hood the event bus uses TCP -connections to send and receive messages, so the {@link -io.vertx.core.eventbus.EventBusOptions} let you configure all aspects of -these TCP connections. As the event bus acts as a server and client, the -configuration is close to {@link io.vertx.core.net.NetClientOptions} and -{@link io.vertx.core.net.NetServerOptions}. - -``` $lang -{@link examples.EventBusExamples#example13} -``` - -The previous snippet depicts how you can use SSL connections for the -event bus, instead of plain TCP connections. - -**WARNING**: to enforce the security in clustered mode, you **must** -configure the cluster manager to use encryption or enforce security. -Refer to the documentation of the cluster manager for further details. - -The event bus configuration needs to be consistent in all the cluster -nodes. - -The {@link io.vertx.core.eventbus.EventBusOptions} also lets you specify -whether or not the event bus is clustered, the port and host. - -When used in containers, you can also configure the public host and -port: - -``` $lang -{@link examples.EventBusExamples#example14} -``` - -# JSON - -Unlike some other languages, Java does not have first class support for -[JSON](http://json.org/) so we provide two classes to make handling JSON -in your Vert.x applications a bit easier. - -## JSON objects - -The {@link io.vertx.core.json.JsonObject} class represents JSON objects. - -A JSON object is basically just a map which has string keys and values -can be of one of the JSON supported types (string, number, boolean). - -JSON objects also support null values. - -### Creating JSON objects - -Empty JSON objects can be created with the default constructor. - -You can create a JSON object from a string JSON representation as -follows: - -``` java -{@link docoverride.json.Examples#example0_1} -``` - -You can create a JSON object from a map as follows: - -``` java -{@link docoverride.json.Examples#exampleCreateFromMap} -``` - -### Putting entries into a JSON object - -Use the {@link io.vertx.core.json.JsonObject\#put} methods to put values -into the JSON object. - -The method invocations can be chained because of the fluent API: - -``` java -{@link docoverride.json.Examples#example1} -``` - -### Getting values from a JSON object - -You get values from a JSON object using the `getXXX` methods, for -example: - -``` java -{@link docoverride.json.Examples#example2} -``` - -### Mapping between JSON objects and Java objects - -You can create a JSON object from the fields of a Java object as -follows: - -You can instantiate a Java object and populate its fields from a JSON -object as follows: - -``` java -{@link docoverride.json.Examples#mapToPojo} -``` - -Note that both of the above mapping directions use Jackson’s -`ObjectMapper#convertValue()` to perform the mapping. See the Jackson -documentation for information on the impact of field and constructor -visibility, caveats on serialization and deserialization across object -references, etc. - -However, in the simplest case, both `mapFrom` and `mapTo` should succeed -if all fields of the Java class are public (or have public -getters/setters), and if there is a public default constructor (or no -defined constructors). - -Referenced objects will be transitively serialized/deserialized to/from -nested JSON objects as long as the object graph is acyclic. - -### Encoding a JSON object to a String - -You use {@link io.vertx.core.json.JsonObject\#encode} to encode the -object to a String form. - -## JSON arrays - -The {@link io.vertx.core.json.JsonArray} class represents JSON arrays. - -A JSON array is a sequence of values (string, number, boolean). - -JSON arrays can also contain null values. - -### Creating JSON arrays - -Empty JSON arrays can be created with the default constructor. - -You can create a JSON array from a string JSON representation as -follows: - -``` java -{@link docoverride.json.Examples#example0_2} -``` - -### Adding entries into a JSON array - -You add entries to a JSON array using the {@link -io.vertx.core.json.JsonArray\#add} methods. - -``` java -{@link docoverride.json.Examples#example3} -``` - -### Getting values from a JSON array - -You get values from a JSON array using the `getXXX` methods, for -example: - -``` java -{@link docoverride.json.Examples#example4} -``` - -### Encoding a JSON array to a String - -You use {@link io.vertx.core.json.JsonArray\#encode} to encode the array -to a String form. - -### Creating arbitrary JSON - -Creating JSON object and array assumes you are using valid string -representation. - -When you are unsure of the string validity then you should use instead -`{@link io.vertx.core.json.Json#decodeValue(java.lang.String)}` - -``` java -{@link docoverride.json.Examples#example5} -``` - -# Json Pointers - -Vert.x provides an implementation of [Json Pointers from -RFC6901](https://tools.ietf.org/html/rfc6901). You can use pointers both -for querying and for writing. You can build your `JsonPointer` using a -string, a URI or manually appending paths: - -``` java -import { JsonPointer } from "@vertx/core" -// Build a pointer from a string -let pointer1 = JsonPointer.from("/hello/world"); -// Build a pointer manually -let pointer2 = JsonPointer.create().append("hello").append("world"); -``` - -After instantiating your pointer, use `queryJson` to query a JSON value. -You can update a Json Value using `writeJson`: - -``` java -// Query a JsonObject -let result1 = objectPointer.queryJson(jsonObject); -// Query a JsonArray -let result2 = arrayPointer.queryJson(jsonArray); -// Write starting from a JsonObject -objectPointer.writeJson(jsonObject, "new element"); -// Write starting from a JsonObject -arrayPointer.writeJson(jsonArray, "new element"); -``` - -You can use Vert.x Json Pointer with any object model by providing a -custom implementation of `JsonPointerIterator` - -# Buffers - -Most data is shuffled around inside Vert.x using buffers. - -A buffer is a sequence of zero or more bytes that can read from or -written to and which expands automatically as necessary to accommodate -any bytes written to it. You can perhaps think of a buffer as smart byte -array. - -## Creating buffers - -Buffers can create by using one of the static `Buffer.buffer` methods. - -Buffers can be initialised from strings or byte arrays, or empty buffers -can be created. - -Here are some examples of creating buffers: - -Create a new empty buffer: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); -``` - -Create a buffer from a String. The String will be encoded in the buffer -using UTF-8. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer("some string"); -``` - -Create a buffer from a String: The String will be encoded using the -specified encoding, e.g: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer("some string", "UTF-16"); -``` - -Create a buffer from a byte\[\] - -``` java -{@link docoverride.buffer.Examples#example4} -``` - -Create a buffer with an initial size hint. If you know your buffer will -have a certain amount of data written to it you can create the buffer -and specify this size. This makes the buffer initially allocate that -much memory and is more efficient than the buffer automatically resizing -multiple times as data is written to it. - -Note that buffers created this way **are empty**. It does not create a -buffer filled with zeros up to the specified size. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(10000); -``` - -## Writing to a Buffer - -There are two ways to write to a buffer: appending, and random access. -In either case buffers will always expand automatically to encompass the -bytes. It’s not possible to get an `IndexOutOfBoundsException` with a -buffer. - -### Appending to a Buffer - -To append to a buffer, you use the `appendXXX` methods. Append methods -exist for appending various different types. - -The return value of the `appendXXX` methods is the buffer itself, so -these can be chained: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); - -buff.appendInt(123).appendString("hello\n"); - -socket.write(buff); -``` - -### Random access buffer writes - -You can also write into the buffer at a specific index, by using the -`setXXX` methods. Set methods exist for various different data types. -All the set methods take an index as the first argument - this -represents the position in the buffer where to start writing the data. - -The buffer will always expand as necessary to accommodate the data. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); - -buff.setInt(1000, 123); -buff.setString(0, "hello"); -``` - -## Reading from a Buffer - -Data is read from a buffer using the `getXXX` methods. Get methods exist -for various datatypes. The first argument to these methods is an index -in the buffer from where to get the data. - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(); -for (let i = 0; i < buff.length(); 4) { - console.log("int value at " + i + " is " + buff.getInt(i)); -} -``` - -## Working with unsigned numbers - -Unsigned numbers can be read from or appended/set to a buffer with the -`getUnsignedXXX`, `appendUnsignedXXX` and `setUnsignedXXX` methods. This -is useful when implementing a codec for a network protocol optimized to -minimize bandwidth consumption. - -In the following example, value 200 is set at specified position with -just one byte: - -``` js -import { Buffer } from "@vertx/core" -let buff = Buffer.buffer(128); -let pos = 15; -buff.setUnsignedByte(pos, 200); -console.log(buff.getUnsignedByte(pos)); -``` - -The console shows '200'. - -## Buffer length - -Use `length` to obtain the length of the buffer. The length of a buffer -is the index of the byte in the buffer with the largest index + 1. - -## Copying buffers - -Use `copy` to make a copy of the buffer - -## Slicing buffers - -A sliced buffer is a new buffer which backs onto the original buffer, -i.e. it does not copy the underlying data. Use `slice` to create a -sliced buffers - -## Buffer re-use - -After writing a buffer to a socket or other similar place, they cannot -be re-used. - -# Writing TCP servers and clients - -Vert.x allows you to easily write non blocking TCP clients and servers. - -## Creating a TCP server - -The simplest way to create a TCP server, using all default options is as -follows: - -``` js -let server = vertx.createNetServer(); -``` - -## Configuring a TCP server - -If you don’t want the default, a server can be configured by passing in -a `NetServerOptions` instance when creating it: - -``` js -let options = new NetServerOptions() - .setPort(4321); -let server = vertx.createNetServer(options); -``` - -## Start the Server Listening - -To tell the server to listen for incoming requests you use one of the -`listen` alternatives. - -To tell the server to listen at the host and port as specified in the -options: - -``` js -let server = vertx.createNetServer(); -server.listen(); -``` - -Or to specify the host and port in the call to listen, ignoring what is -configured in the options: - -``` js -let server = vertx.createNetServer(); -server.listen(1234, "localhost"); -``` - -The default host is `0.0.0.0` which means 'listen on all available -addresses' and the default port is `0`, which is a special value that -instructs the server to find a random unused local port and use that. - -The actual bind is asynchronous so the server might not actually be -listening until some time **after** the call to listen has returned. - -If you want to be notified when the server is actually listening you can -provide a handler to the `listen` call. For example: - -``` js -let server = vertx.createNetServer(); -server.listen(1234, "localhost", (res) => { - if (res.succeeded()) { - console.log("Server is now listening!"); - } else { - console.log("Failed to bind!"); - } -}); -``` - -## Listening on a random port - -If `0` is used as the listening port, the server will find an unused -random port to listen on. - -To find out the real port the server is listening on you can call -`actualPort`. - -``` js -let server = vertx.createNetServer(); -server.listen(0, "localhost", (res) => { - if (res.succeeded()) { - console.log("Server is now listening on actual port: " + server.actualPort()); - } else { - console.log("Failed to bind!"); - } -}); -``` - -## Getting notified of incoming connections - -To be notified when a connection is made you need to set a -`connectHandler`: - -``` js -let server = vertx.createNetServer(); -server.connectHandler((socket) => { - // Handle the connection in here -}); -``` - -When a connection is made the handler will be called with an instance of -`NetSocket`. - -This is a socket-like interface to the actual connection, and allows you -to read and write data as well as do various other things like close the -socket. - -## Reading data from the socket - -To read data from the socket you set the `handler` on the socket. - -This handler will be called with an instance of `Buffer` every time data -is received on the socket. - -``` js -let server = vertx.createNetServer(); -server.connectHandler((socket) => { - socket.handler((buffer) => { - console.log("I received some bytes: " + buffer.length()); - }); -}); -``` - -## Writing data to a socket - -You write to a socket using one of `write`. - -``` js -import { Buffer } from "@vertx/core" - -// Write a buffer -let buffer = Buffer.buffer().appendFloat(12.34).appendInt(123); -socket.write(buffer); - -// Write a string in UTF-8 encoding -socket.write("some data"); - -// Write a string using the specified encoding -socket.write("some data", "UTF-16"); -``` - -Write operations are asynchronous and may not occur until some time -after the call to write has returned. - -## Closed handler - -If you want to be notified when a socket is closed, you can set a -`closeHandler` on it: - -``` js -socket.closeHandler((v) => { - console.log("The socket has been closed"); -}); -``` - -## Handling exceptions - -You can set an `exceptionHandler` to receive any exceptions that happen -on the socket. - -You can set an `exceptionHandler` to receive any exceptions that happens -before the connection is passed to the `connectHandler` , e.g during the -TLS handshake. - -## Event bus write handler - -Every socket automatically registers a handler on the event bus, and -when any buffers are received in this handler, it writes them to itself. -Those are local subscriptions not routed on the cluster. - -This enables you to write data to a socket which is potentially in a -completely different verticle by sending the buffer to the address of -that handler. - -The address of the handler is given by `writeHandlerID` - -## Local and remote addresses - -The local address of a `NetSocket` can be retrieved using -`localAddress`. - -The remote address, (i.e. the address of the other end of the -connection) of a `NetSocket` can be retrieved using `remoteAddress`. - -## Sending files or resources from the classpath - -Files and classpath resources can be written to the socket directly -using `sendFile`. This can be a very efficient way to send files, as it -can be handled by the OS kernel directly where supported by the -operating system. - -Please see the chapter about [serving files from the -classpath](#classpath) for restrictions of the classpath resolution or -disabling it. - -``` js -socket.sendFile("myfile.dat"); -``` - -## Streaming sockets - -Instances of `NetSocket` are also `ReadStream` and `WriteStream` -instances so they can be used to pipe data to or from other read and -write streams. - -See the chapter on [streams](#streams) for more information. - -## Upgrading connections to SSL/TLS - -A non SSL/TLS connection can be upgraded to SSL/TLS using -`upgradeToSsl`. - -The server or client must be configured for SSL/TLS for this to work -correctly. Please see the [chapter on SSL/TLS](#ssl) for more -information. - -## Closing a TCP Server - -Call `close` to close the server. Closing the server closes any open -connections and releases all server resources. - -The close is actually asynchronous and might not complete until some -time after the call has returned. If you want to be notified when the -actual close has completed then you can pass in a handler. - -This handler will then be called when the close has fully completed. - -``` js -server.close((res) => { - if (res.succeeded()) { - console.log("Server is now closed"); - } else { - console.log("close failed"); - } -}); -``` - -## Automatic clean-up in verticles - -If you’re creating TCP servers and clients from inside verticles, those -servers and clients will be automatically closed when the verticle is -undeployed. - -## Scaling - sharing TCP servers - -The handlers of any TCP server are always executed on the same event -loop thread. - -This means that if you are running on a server with a lot of cores, and -you only have this one instance deployed then you will have at most one -core utilised on your server. - -In order to utilise more cores of your server you will need to deploy -more instances of the server. - -You can instantiate more instances programmatically in your code: - -``` js -// Create a few instances so we can utilise cores - -for (let i = 0;i < 10;i++) { - let server = vertx.createNetServer(); - server.connectHandler((socket) => { - socket.handler((buffer) => { - // Just echo back the data - socket.write(buffer); - }); - }); - server.listen(1234, "localhost"); -} -``` - -or, if you are using verticles you can simply deploy more instances of -your server verticle by using the `-instances` option on the command -line: - -vertx run com.mycompany.MyVerticle -instances 10 - -or when programmatically deploying your verticle - -``` js -let options = new DeploymentOptions() - .setInstances(10); -vertx.deployVerticle("com.mycompany.MyVerticle", options); -``` - -Once you do this you will find the echo server works functionally -identically to before, but all your cores on your server can be utilised -and more work can be handled. - -At this point you might be asking yourself **'How can you have more than -one server listening on the same host and port? Surely you will get port -conflicts as soon as you try and deploy more than one instance?'** - -*Vert.x does a little magic here.\** - -When you deploy another server on the same host and port as an existing -server it doesn’t actually try and create a new server listening on the -same host/port. - -Instead it internally maintains just a single server, and, as incoming -connections arrive it distributes them in a round-robin fashion to any -of the connect handlers. - -Consequently Vert.x TCP servers can scale over available cores while -each instance remains single threaded. - -## Creating a TCP client - -The simplest way to create a TCP client, using all default options is as -follows: - -``` js -let client = vertx.createNetClient(); -``` - -## Configuring a TCP client - -If you don’t want the default, a client can be configured by passing in -a `NetClientOptions` instance when creating it: - -``` js -let options = new NetClientOptions() - .setConnectTimeout(10000); -let client = vertx.createNetClient(options); -``` - -## Making connections - -To make a connection to a server you use `connect`, specifying the port -and host of the server and a handler that will be called with a result -containing the `NetSocket` when connection is successful or with a -failure if connection failed. - -``` js -let options = new NetClientOptions() - .setConnectTimeout(10000); -let client = vertx.createNetClient(options); -client.connect(4321, "localhost", (res) => { - if (res.succeeded()) { - console.log("Connected!"); - let socket = res.result(); - } else { - console.log("Failed to connect: " + res.cause().getMessage()); - } -}); -``` - -## Configuring connection attempts - -A client can be configured to automatically retry connecting to the -server in the event that it cannot connect. This is configured with -`setReconnectInterval` and `setReconnectAttempts`. - -> **Note** -> -> Currently Vert.x will not attempt to reconnect if a connection fails, -> reconnect attempts and interval only apply to creating initial -> connections. - -``` js -let options = new NetClientOptions() - .setReconnectAttempts(10) - .setReconnectInterval(500); - -let client = vertx.createNetClient(options); -``` - -By default, multiple connection attempts are disabled. - -## Logging network activity - -For debugging purposes, network activity can be logged: - -``` js -let options = new NetServerOptions() - .setLogActivity(true); - -let server = vertx.createNetServer(options); -``` - -for the client - -``` js -let options = new NetClientOptions() - .setLogActivity(true); - -let client = vertx.createNetClient(options); -``` - -Network activity is logged by Netty with the `DEBUG` level and with the -`io.netty.handler.logging.LoggingHandler` name. When using network -activity logging there are a few things to keep in mind: - - - logging is not performed by Vert.x logging but by Netty - - - this is **not** a production feature - -You should read the [Netty logging](#netty-logging) section. - -## Configuring servers and clients to work with SSL/TLS - -TCP clients and servers can be configured to use [Transport Layer -Security](http://en.wikipedia.org/wiki/Transport_Layer_Security) - -earlier versions of TLS were known as SSL. - -The APIs of the servers and clients are identical whether or not SSL/TLS -is used, and it’s enabled by configuring the `NetClientOptions` or -`NetServerOptions` instances used to create the servers or clients. - -### Enabling SSL/TLS on the server - -SSL/TLS is enabled with `ssl`. - -By default it is disabled. - -### Specifying key/certificate for the server - -SSL/TLS servers usually provide certificates to clients in order verify -their identity to clients. - -Certificates/keys can be configured for servers in several ways: - -The first method is by specifying the location of a Java key-store which -contains the certificate and private key. - -Java key stores can be managed with the -[keytool](http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html) -utility which ships with the JDK. - -The password for the key store should also be provided: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(new JksOptions() - .setPath("/path/to/your/server-keystore.jks") - .setPassword("password-of-your-keystore")); -let server = vertx.createNetServer(options); -``` - -Alternatively you can read the key store yourself as a buffer and -provide that directly: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-keystore.jks"); -let jksOptions = new JksOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(jksOptions); -let server = vertx.createNetServer(options); -``` - -Key/certificate in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS key -stores: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setPfxKeyCertOptions(new PfxOptions() - .setPath("/path/to/your/server-keystore.pfx") - .setPassword("password-of-your-keystore")); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-keystore.pfx"); -let pfxOptions = new PfxOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetServerOptions() - .setSsl(true) - .setPfxKeyCertOptions(pfxOptions); -let server = vertx.createNetServer(options); -``` - -Another way of providing server private key and certificate separately -using `.pem` files. - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setPemKeyCertOptions(new PemKeyCertOptions() - .setKeyPath("/path/to/your/server-key.pem") - .setCertPath("/path/to/your/server-cert.pem")); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-key.pem"); -let myCertAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-cert.pem"); -let pemOptions = new PemKeyCertOptions() - .setKeyValue(myKeyAsABuffer) - .setCertValue(myCertAsABuffer); -let options = new NetServerOptions() - .setSsl(true) - .setPemKeyCertOptions(pemOptions); -let server = vertx.createNetServer(options); -``` - -Vert.x supports reading of unencrypted RSA and/or ECC based private keys -from PKCS8 PEM files. RSA based private keys can also be read from PKCS1 -PEM files. X.509 certificates can be read from PEM files containing a -textual encoding of the certificate as defined by [RFC 7468, -Section 5](https://tools.ietf.org/html/rfc7468#section-5). - -> **Warning** -> -> Keep in mind that the keys contained in an unencrypted PKCS8 or a -> PKCS1 PEM file can be extracted by anybody who can read the file. -> Thus, make sure to put proper access restrictions on such PEM files in -> order to prevent misuse. - -### Specifying trust for the server - -SSL/TLS servers can use a certificate authority in order to verify the -identity of the clients. - -Certificate authorities can be configured for servers in several ways: - -Java trust stores can be managed with the -[keytool](http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html) -utility which ships with the JDK. - -The password for the trust store should also be provided: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setTrustStoreOptions(new JksOptions() - .setPath("/path/to/your/truststore.jks") - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Alternatively you can read the trust store yourself as a buffer and -provide that directly: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.jks"); -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setTrustStoreOptions(new JksOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Certificate authority in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS trust -stores: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPfxTrustOptions(new PfxOptions() - .setPath("/path/to/your/truststore.pfx") - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.pfx"); -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPfxTrustOptions(new PfxOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Another way of providing server certificate authority using a list -`.pem` files. - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPemTrustOptions(new PemTrustOptions() - .setCertPaths(["/path/to/your/server-ca.pem"])); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myCaAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-ca.pfx"); -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPemTrustOptions(new PemTrustOptions() - .setCertValues([myCaAsABuffer])); -let server = vertx.createNetServer(options); -``` - -### Enabling SSL/TLS on the client - -Net Clients can also be easily configured to use SSL. They have the -exact same API when using SSL as when using standard sockets. - -To enable SSL on a NetClient the function setSSL(true) is called. - -### Client trust configuration - -If the `trustALl` is set to true on the client, then the client will -trust all server certificates. The connection will still be encrypted -but this mode is vulnerable to 'man in the middle' attacks. I.e. you -can’t be sure who you are connecting to. Use this with caution. -Default value is false. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setTrustAll(true); -let client = vertx.createNetClient(options); -``` - -If `trustAll` is not set then a client trust store must be configured -and should contain the certificates of the servers that the client -trusts. - -By default, host verification is disabled on the client. To enable host -verification, set the algorithm to use on your client (only HTTPS and -LDAPS is currently supported): - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setHostnameVerificationAlgorithm("HTTPS"); -let client = vertx.createNetClient(options); -``` - -Likewise server configuration, the client trust can be configured in -several ways: - -The first method is by specifying the location of a Java trust-store -which contains the certificate authority. - -It is just a standard Java key store, the same as the key stores on the -server side. The client trust store location is set by using the -function `path` on the `jks options`. If a server presents a certificate -during connection which is not in the client trust store, the connection -attempt will not succeed. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(new JksOptions() - .setPath("/path/to/your/truststore.jks") - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.jks"); -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(new JksOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Certificate authority in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS trust -stores: - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPfxTrustOptions(new PfxOptions() - .setPath("/path/to/your/truststore.pfx") - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.pfx"); -let options = new NetClientOptions() - .setSsl(true) - .setPfxTrustOptions(new PfxOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Another way of providing server certificate authority using a list -`.pem` files. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPemTrustOptions(new PemTrustOptions() - .setCertPaths(["/path/to/your/ca-cert.pem"])); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/ca-cert.pem"); -let options = new NetClientOptions() - .setSsl(true) - .setPemTrustOptions(new PemTrustOptions() - .setCertValues([myTrustStoreAsABuffer])); -let client = vertx.createNetClient(options); -``` - -### Specifying key/certificate for the client - -If the server requires client authentication then the client must -present its own certificate to the server when connecting. The client -can be configured in several ways: - -The first method is by specifying the location of a Java key-store which -contains the key and certificate. Again it’s just a regular Java key -store. The client keystore location is set by using the function `path` -on the `jks options`. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setKeyStoreOptions(new JksOptions() - .setPath("/path/to/your/client-keystore.jks") - .setPassword("password-of-your-keystore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-keystore.jks"); -let jksOptions = new JksOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetClientOptions() - .setSsl(true) - .setKeyStoreOptions(jksOptions); -let client = vertx.createNetClient(options); -``` - -Key/certificate in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS key -stores: - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPfxKeyCertOptions(new PfxOptions() - .setPath("/path/to/your/client-keystore.pfx") - .setPassword("password-of-your-keystore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-keystore.pfx"); -let pfxOptions = new PfxOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetClientOptions() - .setSsl(true) - .setPfxKeyCertOptions(pfxOptions); -let client = vertx.createNetClient(options); -``` - -Another way of providing server private key and certificate separately -using `.pem` files. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPemKeyCertOptions(new PemKeyCertOptions() - .setKeyPath("/path/to/your/client-key.pem") - .setCertPath("/path/to/your/client-cert.pem")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-key.pem"); -let myCertAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-cert.pem"); -let pemOptions = new PemKeyCertOptions() - .setKeyValue(myKeyAsABuffer) - .setCertValue(myCertAsABuffer); -let options = new NetClientOptions() - .setSsl(true) - .setPemKeyCertOptions(pemOptions); -let client = vertx.createNetClient(options); -``` - -Keep in mind that pem configuration, the private key is not crypted. - -### Self-signed certificates for testing and development purposes - -> **Caution** -> -> Do not use this in production settings, and note that the generated -> keys are very insecure. - -It is very often the case that self-signed certificates are required, be -it for unit / integration tests or for running a development version of -an application. - -`SelfSignedCertificate` can be used to provide self-signed PEM -certificate helpers and give `KeyCertOptions` and `TrustOptions` -configurations: - -``` js -import { SelfSignedCertificate } from "@vertx/core" -let certificate = SelfSignedCertificate.create(); - -let serverOptions = new NetServerOptions() - .setSsl(true) - .setKeyCertOptions(certificate.keyCertOptions()) - .setTrustOptions(certificate.trustOptions()); - -let server = vertx.createNetServer(serverOptions).connectHandler((socket) => { - socket.write("Hello!").end(); -}).listen(1234, "localhost"); - -let clientOptions = new NetClientOptions() - .setSsl(true) - .setKeyCertOptions(certificate.keyCertOptions()) - .setTrustOptions(certificate.trustOptions()); - -let client = vertx.createNetClient(clientOptions); -client.connect(1234, "localhost", (ar) => { - if (ar.succeeded()) { - ar.result().handler((buffer) => { - console.log(buffer); - }); - } else { - console.error("Woops: " + ar.cause().getMessage()); - } -}); -``` - -The client can also be configured to trust all certificates: - -``` js -let clientOptions = new NetClientOptions() - .setSsl(true) - .setTrustAll(true); -``` - -Note that self-signed certificates also work for other TCP protocols -like HTTPS: - -``` js -import { SelfSignedCertificate } from "@vertx/core" -let certificate = SelfSignedCertificate.create(); - -vertx.createHttpServer(new HttpServerOptions() - .setSsl(true) - .setKeyCertOptions(certificate.keyCertOptions()) - .setTrustOptions(certificate.trustOptions())).requestHandler((req) => { - req.response().end("Hello!"); -}).listen(8080); -``` - -### Revoking certificate authorities - -Trust can be configured to use a certificate revocation list (CRL) for -revoked certificates that should no longer be trusted. The `crlPath` -configures the crl list to use: - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(trustOptions) - .setCrlPaths(["/path/to/your/crl.pem"]); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myCrlAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/crl.pem"); -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(trustOptions) - .setCrlValues([myCrlAsABuffer]); -let client = vertx.createNetClient(options); -``` - -### Configuring the Cipher suite - -By default, the TLS configuration will use the Cipher suite of the JVM -running Vert.x. This Cipher suite can be configured with a suite of -enabled ciphers: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions) - .setEnabledCipherSuites(["ECDHE-RSA-AES128-GCM-SHA256", "ECDHE-ECDSA-AES128-GCM-SHA256", "ECDHE-RSA-AES256-GCM-SHA384", "CDHE-ECDSA-AES256-GCM-SHA384"]); -let server = vertx.createNetServer(options); -``` - -Cipher suite can be specified on the `NetServerOptions` or -`NetClientOptions` configuration. - -### Configuring TLS protocol versions - -By default, the TLS configuration will use the following protocol -versions: SSLv2Hello, TLSv1, TLSv1.1 and TLSv1.2. Protocol versions can -be configured by explicitly adding enabled protocols: - -``` js -Code not translatable -``` - -Protocol versions can be specified on the `NetServerOptions` or -`NetClientOptions` configuration. - -### SSL engine - -The engine implementation can be configured to use -[OpenSSL](https://www.openssl.org) instead of the JDK implementation. -OpenSSL provides better performances and CPU usage than the JDK engine, -as well as JDK version independence. - -The engine options to use is - - - the `getSslEngineOptions` options when it is set - - - otherwise `JdkSSLEngineOptions` - - - -``` js -// Use JDK SSL engine -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions); - -// Use JDK SSL engine explicitly -options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions) - .setJdkSslEngineOptions(new JdkSSLEngineOptions()); - -// Use OpenSSL engine -options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions) - .setOpenSslEngineOptions(new OpenSSLEngineOptions()); -``` - -### Server Name Indication (SNI) - -Server Name Indication (SNI) is a TLS extension by which a client -specifies a hostname attempting to connect: during the TLS handshake the -client gives a server name and the server can use it to respond with a -specific certificate for this server name instead of the default -deployed certificate. If the server requires client authentication the -server can use a specific trusted CA certificate depending on the -indicated server name. - -When SNI is active the server uses - - - the certificate CN or SAN DNS (Subject Alternative Name with DNS) to - do an exact match, e.g `www.example.com` - - - the certificate CN or SAN DNS certificate to match a wildcard name, - e.g `*.example.com` - - - otherwise the first certificate when the client does not present a - server name or the presented server name cannot be matched - -When the server additionally requires client authentication: - - - if `JksOptions` were used to set the trust options (`options`) then - an exact match with the trust store alias is done - - - otherwise the available CA certificates are used in the same way as - if no SNI is in place - -You can enable SNI on the server by setting `setSni` to `true` and -configured the server with multiple key/certificate pairs. - -Java KeyStore files or PKCS12 files can store multiple key/cert pairs -out of the box. - -``` js -let keyCertOptions = new JksOptions() - .setPath("keystore.jks") - .setPassword("wibble"); - -let netServer = vertx.createNetServer(new NetServerOptions() - .setKeyStoreOptions(keyCertOptions) - .setSsl(true) - .setSni(true)); -``` - -`PemKeyCertOptions` can be configured to hold multiple entries: - -``` js -let keyCertOptions = new PemKeyCertOptions() - .setKeyPaths(["default-key.pem", "host1-key.pem", "etc..."]) - .setCertPaths(["default-cert.pem", "host2-key.pem", "etc..."]); - -let netServer = vertx.createNetServer(new NetServerOptions() - .setPemKeyCertOptions(keyCertOptions) - .setSsl(true) - .setSni(true)); -``` - -The client implicitly sends the connecting host as an SNI server name -for Fully Qualified Domain Name (FQDN). - -You can provide an explicit server name when connecting a socket - -``` js -let client = vertx.createNetClient(new NetClientOptions() - .setTrustStoreOptions(trustOptions) - .setSsl(true)); - -// Connect to 'localhost' and present 'server.name' server name -client.connect(1234, "localhost", "server.name", (res) => { - if (res.succeeded()) { - console.log("Connected!"); - let socket = res.result(); - } else { - console.log("Failed to connect: " + res.cause().getMessage()); - } -}); -``` - -It can be used for different purposes: - - - present a server name different than the server host - - - present a server name while connecting to an IP - - - force to present a server name when using shortname - -### Application-Layer Protocol Negotiation (ALPN) - -Application-Layer Protocol Negotiation (ALPN) is a TLS extension for -application layer protocol negotiation. It is used by HTTP/2: during the -TLS handshake the client gives the list of application protocols it -accepts and the server responds with a protocol it supports. - -If you are using Java 9, you are fine and you can use HTTP/2 out of the -box without extra steps. - -Java 8 does not supports ALPN out of the box, so ALPN should be enabled -by other means: - - - *OpenSSL* support - - - *Jetty-ALPN* support - -The engine options to use is - - - the `getSslEngineOptions` options when it is set - - - `JdkSSLEngineOptions` when ALPN is available for JDK - - - `OpenSSLEngineOptions` when ALPN is available for OpenSSL - - - otherwise it fails - -#### OpenSSL ALPN support - -OpenSSL provides native ALPN support. - -OpenSSL requires to configure `setOpenSslEngineOptions` and use -[netty-tcnative](http://netty.io/wiki/forked-tomcat-native.html) jar on -the classpath. Using tcnative may require OpenSSL to be installed on -your OS depending on the tcnative implementation. - -#### Jetty-ALPN support - -Jetty-ALPN is a small jar that overrides a few classes of Java 8 -distribution to support ALPN. - -The JVM must be started with the *alpn-boot-${version}.jar* in its -`bootclasspath`: - - -Xbootclasspath/p:/path/to/alpn-boot${version}.jar - -where ${version} depends on the JVM version, e.g. *8.1.7.v20160121* for -*OpenJDK 1.8.0u74* . The complete list is available on the [Jetty-ALPN -page](http://www.eclipse.org/jetty/documentation/current/alpn-chapter.html). - -The main drawback is that the version depends on the JVM. - -To solve this problem the *[Jetty ALPN -agent](https://github.com/jetty-project/jetty-alpn-agent)* can be use -instead. The agent is a JVM agent that will chose the correct ALPN -version for the JVM running it: - - -javaagent:/path/to/alpn/agent - -## Using a proxy for client connections - -The `NetClient` supports either a HTTP/1.x *CONNECT*, *SOCKS4a* or -*SOCKS5* proxy. - -The proxy can be configured in the `NetClientOptions` by setting a -`ProxyOptions` object containing proxy type, hostname, port and -optionally username and password. - -Here’s an example: - -``` js -let options = new NetClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("SOCKS5") - .setHost("localhost") - .setPort(1080) - .setUsername("username") - .setPassword("secret")); -let client = vertx.createNetClient(options); -``` - -The DNS resolution is always done on the proxy server, to achieve the -functionality of a SOCKS4 client, it is necessary to resolve the DNS -address locally. - -# Writing HTTP servers and clients - -Vert.x allows you to easily write non blocking HTTP clients and servers. - -Vert.x supports the HTTP/1.0, HTTP/1.1 and HTTP/2 protocols. - -The base API for HTTP is the same for HTTP/1.x and HTTP/2, specific API -features are available for dealing with the HTTP/2 protocol. - -## Creating an HTTP Server - -The simplest way to create an HTTP server, using all default options is -as follows: - -``` js -let server = vertx.createHttpServer(); -``` - -## Configuring an HTTP server - -If you don’t want the default, a server can be configured by passing in -a `HttpServerOptions` instance when creating it: - -``` js -let options = new HttpServerOptions() - .setMaxWebSocketFrameSize(1000000); - -let server = vertx.createHttpServer(options); -``` - -## Configuring an HTTP/2 server - -Vert.x supports HTTP/2 over TLS `h2` and over TCP `h2c`. - - - `h2` identifies the HTTP/2 protocol when used over TLS negotiated by - [Application-Layer Protocol - Negotiation](https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation) - (ALPN) - - - `h2c` identifies the HTTP/2 protocol when using in clear text over - TCP, such connections are established either with an HTTP/1.1 - upgraded request or directly - -To handle `h2` requests, TLS must be enabled along with `setUseAlpn`: - -``` js -let options = new HttpServerOptions() - .setUseAlpn(true) - .setSsl(true) - .setKeyStoreOptions(new JksOptions() - .setPath("/path/to/my/keystore")); - -let server = vertx.createHttpServer(options); -``` - -ALPN is a TLS extension that negotiates the protocol before the client -and the server start to exchange data. - -Clients that don’t support ALPN will still be able to do a *classic* SSL -handshake. - -ALPN will usually agree on the `h2` protocol, although `http/1.1` can be -used if the server or the client decides so. - -To handle `h2c` requests, TLS must be disabled, the server will upgrade -to HTTP/2 any request HTTP/1.1 that wants to upgrade to HTTP/2. It will -also accept a direct `h2c` connection beginning with the `PRI * -HTTP/2.0\r\nSM\r\n` preface. - -> **Warning** -> -> most browsers won’t support `h2c`, so for serving web sites you should -> use `h2` and not `h2c`. - -When a server accepts an HTTP/2 connection, it sends to the client its -`initial settings`. The settings define how the client can use the -connection, the default initial settings for a server are: - - - `getMaxConcurrentStreams`: `100` as recommended by the HTTP/2 RFC - - - the default HTTP/2 settings values for the others - -> **Note** -> -> Worker Verticles are not compatible with HTTP/2 - -## Logging network server activity - -For debugging purposes, network activity can be logged. - -``` js -let options = new HttpServerOptions() - .setLogActivity(true); - -let server = vertx.createHttpServer(options); -``` - -See the chapter on [logging network activity](#logging_network_activity) -for a detailed explanation. - -## Start the Server Listening - -To tell the server to listen for incoming requests you use one of the -`listen` alternatives. - -To tell the server to listen at the host and port as specified in the -options: - -``` js -let server = vertx.createHttpServer(); -server.listen(); -``` - -Or to specify the host and port in the call to listen, ignoring what is -configured in the options: - -``` js -let server = vertx.createHttpServer(); -server.listen(8080, "myhost.com"); -``` - -The default host is `0.0.0.0` which means 'listen on all available -addresses' and the default port is `80`. - -The actual bind is asynchronous so the server might not actually be -listening until some time **after** the call to listen has returned. - -If you want to be notified when the server is actually listening you can -provide a handler to the `listen` call. For example: - -``` js -let server = vertx.createHttpServer(); -server.listen(8080, "myhost.com", (res) => { - if (res.succeeded()) { - console.log("Server is now listening!"); - } else { - console.log("Failed to bind!"); - } -}); -``` - -## Getting notified of incoming requests - -To be notified when a request arrives you need to set a -`requestHandler`: - -``` js -let server = vertx.createHttpServer(); -server.requestHandler((request) => { - // Handle the request in here -}); -``` - -## Handling requests - -When a request arrives, the request handler is called passing in an -instance of `HttpServerRequest`. This object represents the server side -HTTP request. - -The handler is called when the headers of the request have been fully -read. - -If the request contains a body, that body will arrive at the server some -time after the request handler has been called. - -The server request object allows you to retrieve the `uri`, `path`, -`params` and `headers`, amongst other things. - -Each server request object is associated with one server response -object. You use `response` to get a reference to the -`HttpServerResponse` object. - -Here’s a simple example of a server handling a request and replying with -"hello world" to it. - -``` js -vertx.createHttpServer().requestHandler((request) => { - request.response().end("Hello world"); -}).listen(8080); -``` - -### Request version - -The version of HTTP specified in the request can be retrieved with -`version` - -### Request method - -Use `method` to retrieve the HTTP method of the request. (i.e. whether -it’s GET, POST, PUT, DELETE, HEAD, OPTIONS, etc). - -### Request URI - -Use `uri` to retrieve the URI of the request. - -Note that this is the actual URI as passed in the HTTP request, and it’s -almost always a relative URI. - -The URI is as defined in [Section 5.1.2 of the HTTP specification - -Request-URI](http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html) - -### Request path - -Use `path` to return the path part of the URI - -For example, if the request URI was: - -a/b/c/page.html?param1=abc\¶m2=xyz - -Then the path would be - -/a/b/c/page.html - -### Request query - -Use `query` to return the query part of the URI - -For example, if the request URI was: - -a/b/c/page.html?param1=abc\¶m2=xyz - -Then the query would be - -param1=abc\¶m2=xyz - -### Request headers - -Use `headers` to return the headers of the HTTP request. - -This returns an instance of `MultiMap` - which is like a normal Map or -Hash but allows multiple values for the same key - this is because HTTP -allows multiple header values with the same key. - -It also has case-insensitive keys, that means you can do the following: - -``` js -let headers = request.headers(); - -// Get the User-Agent: -console.log("User agent is " + headers.get("user-agent")); - -// You can also do this and get the same result: -console.log("User agent is " + headers.get("User-Agent")); -``` - -### Request host - -Use `host` to return the host of the HTTP request. - -For HTTP/1.x requests the `host` header is returned, for HTTP/1 requests -the `:authority` pseudo header is returned. - -### Request parameters - -Use `params` to return the parameters of the HTTP request. - -Just like `headers` this returns an instance of `MultiMap` as there can -be more than one parameter with the same name. - -Request parameters are sent on the request URI, after the path. For -example if the URI was: - -/page.html?param1=abc\¶m2=xyz - -Then the parameters would contain the following: - - param1: 'abc' - param2: 'xyz - -Note that these request parameters are retrieved from the URL of the -request. If you have form attributes that have been sent as part of the -submission of an HTML form submitted in the body of a -`multi-part/form-data` request then they will not appear in the params -here. - -### Remote address - -The address of the sender of the request can be retrieved with -`remoteAddress`. - -### Absolute URI - -The URI passed in an HTTP request is usually relative. If you wish to -retrieve the absolute URI corresponding to the request, you can get it -with `absoluteURI` - -### End handler - -The `endHandler` of the request is invoked when the entire request, -including any body has been fully read. - -### Reading Data from the Request Body - -Often an HTTP request contains a body that we want to read. As -previously mentioned the request handler is called when just the headers -of the request have arrived so the request object does not have a body -at that point. - -This is because the body may be very large (e.g. a file upload) and we -don’t generally want to buffer the entire body in memory before handing -it to you, as that could cause the server to exhaust available memory. - -To receive the body, you can use the `handler` on the request, this will -get called every time a chunk of the request body arrives. Here’s an -example: - -``` js -request.handler((buffer) => { - console.log("I have received a chunk of the body of length " + buffer.length()); -}); -``` - -The object passed into the handler is a `Buffer`, and the handler can be -called multiple times as data arrives from the network, depending on the -size of the body. - -In some cases (e.g. if the body is small) you will want to aggregate the -entire body in memory, so you could do the aggregation yourself as -follows: - -``` js -import { Buffer } from "@vertx/core" - -// Create an empty buffer -let totalBuffer = Buffer.buffer(); - -request.handler((buffer) => { - console.log("I have received a chunk of the body of length " + buffer.length()); - totalBuffer.appendBuffer(buffer); -}); - -request.endHandler((v) => { - console.log("Full body received, length = " + totalBuffer.length()); -}); -``` - -This is such a common case, that Vert.x provides a `bodyHandler` to do -this for you. The body handler is called once when all the body has been -received: - -``` js -request.bodyHandler((totalBuffer) => { - console.log("Full body received, length = " + totalBuffer.length()); -}); -``` - -### Streaming requests - -The request object is a `ReadStream` so you can pipe the request body to -any `WriteStream` instance. - -See the chapter on [streams](#streams) for a detailed explanation. - -### Handling HTML forms - -HTML forms can be submitted with either a content type of -`application/x-www-form-urlencoded` or `multipart/form-data`. - -For url encoded forms, the form attributes are encoded in the url, just -like normal query parameters. - -For multi-part forms they are encoded in the request body, and as such -are not available until the entire body has been read from the wire. - -Multi-part forms can also contain file uploads. - -If you want to retrieve the attributes of a multi-part form you should -tell Vert.x that you expect to receive such a form **before** any of the -body is read by calling `setExpectMultipart` with true, and then you -should retrieve the actual attributes using `formAttributes` once the -entire body has been read: - -``` js -server.requestHandler((request) => { - request.setExpectMultipart(true); - request.endHandler((v) => { - // The body has now been fully read, so retrieve the form attributes - let formAttributes = request.formAttributes(); - }); -}); -``` - -### Handling form file uploads - -Vert.x can also handle file uploads which are encoded in a multi-part -request body. - -To receive file uploads you tell Vert.x to expect a multi-part form and -set an `uploadHandler` on the request. - -This handler will be called once for every upload that arrives on the -server. - -The object passed into the handler is a `HttpServerFileUpload` instance. - -``` js -server.requestHandler((request) => { - request.setExpectMultipart(true); - request.uploadHandler((upload) => { - console.log("Got a file upload " + upload.name()); - }); -}); -``` - -File uploads can be large we don’t provide the entire upload in a single -buffer as that might result in memory exhaustion, instead, the upload -data is received in chunks: - -``` js -request.uploadHandler((upload) => { - upload.handler((chunk) => { - console.log("Received a chunk of the upload of length " + chunk.length()); - }); -}); -``` - -The upload object is a `ReadStream` so you can pipe the request body to -any `WriteStream` instance. See the chapter on [streams](#streams) for a -detailed explanation. - -If you just want to upload the file to disk somewhere you can use -`streamToFileSystem`: - -``` js -request.uploadHandler((upload) => { - upload.streamToFileSystem("myuploads_directory/" + upload.filename()); -}); -``` - -> **Warning** -> -> Make sure you check the filename in a production system to avoid -> malicious clients uploading files to arbitrary places on your -> filesystem. See [security notes](#_security_notes) for more -> information. - -### Handling cookies - -You use `getCookie` to retrieve a cookie by name, or use `cookieMap` to -retrieve all the cookies. - -To remove a cookie, use `removeCookie`. - -To add a cookie use `addCookie`. - -The set of cookies will be written back in the response automatically -when the response headers are written so the browser can store them. - -Cookies are described by instances of `Cookie`. This allows you to -retrieve the name, value, domain, path and other normal cookie -properties. - -Same Site Cookies let servers require that a cookie shouldn’t be sent -with cross-site (where Site is defined by the registrable domain) -requests, which provides some protection against cross-site request -forgery attacks. This kind of cookies are enabled using the setter: -`setSameSite`. - -Same site cookies can have one of 3 values: - - - None - The browser will send cookies with both cross-site requests - and same-site requests. - - - Strict - he browser will only send cookies for same-site requests - (requests originating from the site that set the cookie). If the - request originated from a different URL than the URL of the current - location, none of the cookies tagged with the Strict attribute will - be included. - - - Lax - Same-site cookies are withheld on cross-site subrequests, such - as calls to load images or frames, but will be sent when a user - navigates to the URL from an external site; for example, by - following a link. - -Here’s an example of querying and adding cookies: - -``` js -import { Cookie } from "@vertx/core" -let someCookie = request.getCookie("mycookie"); -let cookieValue = someCookie.getValue(); - -// Do something with cookie... - -// Add a cookie - this will get written back in the response automatically -request.response().addCookie(Cookie.cookie("othercookie", "somevalue")); -``` - -### Handling compressed body - -Vert.x can handle compressed body payloads which are encoded by the -client with the *deflate* or *gzip* algorithms. - -To enable decompression set `setDecompressionSupported` on the options -when creating the server. - -By default decompression is disabled. - -### Receiving custom HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To receive custom frames, you can use the `customFrameHandler` on the -request, this will get called every time a custom frame arrives. Here’s -an example: - -``` js -request.customFrameHandler((frame) => { - - console.log("Received a frame type=" + frame.type() + " payload" + frame.payload().toString()); -}); -``` - -HTTP/2 frames are not subject to flow control - the frame handler will -be called immediatly when a custom frame is received whether the request -is paused or is not - -### Non standard HTTP methods - -The `OTHER` HTTP method is used for non standard methods, in this case -`rawMethod` returns the HTTP method as sent by the client. - -## Sending back responses - -The server response object is an instance of `HttpServerResponse` and is -obtained from the request with `response`. - -You use the response object to write a response back to the HTTP client. - -### Setting status code and message - -The default HTTP status code for a response is `200`, representing `OK`. - -Use `setStatusCode` to set a different code. - -You can also specify a custom status message with `setStatusMessage`. - -If you don’t specify a status message, the default one corresponding to -the status code will be used. - -> **Note** -> -> for HTTP/2 the status won’t be present in the response since the -> protocol won’t transmit the message to the client - -### Writing HTTP responses - -To write data to an HTTP response, you use one of the `write` -operations. - -These can be invoked multiple times before the response is ended. They -can be invoked in a few ways: - -With a single buffer: - -``` js -let response = request.response(); -response.write(buffer); -``` - -With a string. In this case the string will encoded using UTF-8 and the -result written to the wire. - -``` js -let response = request.response(); -response.write("hello world!"); -``` - -With a string and an encoding. In this case the string will encoded -using the specified encoding and the result written to the wire. - -``` js -let response = request.response(); -response.write("hello world!", "UTF-16"); -``` - -Writing to a response is asynchronous and always returns immediately -after the write has been queued. - -If you are just writing a single string or buffer to the HTTP response -you can write it and end the response in a single call to the `end` - -The first call to write results in the response header being written to -the response. Consequently, if you are not using HTTP chunking then you -must set the `Content-Length` header before writing to the response, -since it will be too late otherwise. If you are using HTTP chunking you -do not have to worry. - -### Ending HTTP responses - -Once you have finished with the HTTP response you should `end` it. - -This can be done in several ways: - -With no arguments, the response is simply ended. - -``` js -let response = request.response(); -response.write("hello world!"); -response.end(); -``` - -It can also be called with a string or buffer in the same way `write` is -called. In this case it’s just the same as calling write with a string -or buffer followed by calling end with no arguments. For example: - -``` js -let response = request.response(); -response.end("hello world!"); -``` - -### Closing the underlying connection - -You can close the underlying TCP connection with `close`. - -Non keep-alive connections will be automatically closed by Vert.x when -the response is ended. - -Keep-alive connections are not automatically closed by Vert.x by -default. If you want keep-alive connections to be closed after an idle -time, then you configure `setIdleTimeout`. - -HTTP/2 connections send a {@literal GOAWAY} frame before closing the -response. - -### Setting response headers - -HTTP response headers can be added to the response by adding them -directly to the `headers`: - -``` js -let response = request.response(); -let headers = response.headers(); -headers.set("content-type", "text/html"); -headers.set("other-header", "wibble"); -``` - -Or you can use `putHeader` - -``` js -let response = request.response(); -response.putHeader("content-type", "text/html").putHeader("other-header", "wibble"); -``` - -Headers must all be added before any parts of the response body are -written. - -### Chunked HTTP responses and trailers - -Vert.x supports [HTTP Chunked Transfer -Encoding](http://en.wikipedia.org/wiki/Chunked_transfer_encoding). - -This allows the HTTP response body to be written in chunks, and is -normally used when a large response body is being streamed to a client -and the total size is not known in advance. - -You put the HTTP response into chunked mode as follows: - -``` js -let response = request.response(); -response.setChunked(true); -``` - -Default is non-chunked. When in chunked mode, each call to one of the -`write` methods will result in a new HTTP chunk being written out. - -When in chunked mode you can also write HTTP response trailers to the -response. These are actually written in the final chunk of the response. - -> **Note** -> -> chunked response has no effect for an HTTP/2 stream - -To add trailers to the response, add them directly to the `trailers`. - -``` js -let response = request.response(); -response.setChunked(true); -let trailers = response.trailers(); -trailers.set("X-wibble", "woobble").set("X-quux", "flooble"); -``` - -Or use `putTrailer`. - -``` js -let response = request.response(); -response.setChunked(true); -response.putTrailer("X-wibble", "woobble").putTrailer("X-quux", "flooble"); -``` - -### Serving files directly from disk or the classpath - -If you were writing a web server, one way to serve a file from disk -would be to open it as an `AsyncFile` and pipe it to the HTTP response. - -Or you could load it it one go using `readFile` and write it straight to -the response. - -Alternatively, Vert.x provides a method which allows you to serve a file -from disk or the filesystem to an HTTP response in one operation. Where -supported by the underlying operating system this may result in the OS -directly transferring bytes from the file to the socket without being -copied through user-space at all. - -This is done by using `sendFile`, and is usually more efficient for -large files, but may be slower for small files. - -Here’s a very simple web server that serves files from the file system -using sendFile: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let file = ""; - if (request.path() == "/") { - file = "index.html"; - } else if (!request.path().contains("..")) { - file = request.path(); - } - request.response().sendFile("web/" + file); -}).listen(8080); -``` - -Sending a file is asynchronous and may not complete until some time -after the call has returned. If you want to be notified when the file -has been writen you can use `sendFile` - -Please see the chapter about [serving files from the -classpath](#classpath) for restrictions about the classpath resolution -or disabling it. - -> **Note** -> -> If you use `sendFile` while using HTTPS it will copy through -> user-space, since if the kernel is copying data directly from disk to -> socket it doesn’t give us an opportunity to apply any encryption. - -> **Warning** -> -> If you’re going to write web servers directly using Vert.x be careful -> that users cannot exploit the path to access files outside the -> directory from which you want to serve them or the classpath It may be -> safer instead to use Vert.x Web. - -When there is a need to serve just a segment of a file, say starting -from a given byte, you can achieve this by doing: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let offset = 0; - try { - offset = Java.type("java.lang.Long").parseLong(request.getParam("start")); - } catch(err) { - // error handling... - } - - - let end = Java.type("java.lang.Long").MAX_VALUE; - try { - end = Java.type("java.lang.Long").parseLong(request.getParam("end")); - } catch(err) { - // error handling... - } - - - request.response().sendFile("web/mybigfile.txt", offset, end); -}).listen(8080); -``` - -You are not required to supply the length if you want to send a file -starting from an offset until the end, in this case you can just do: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let offset = 0; - try { - offset = Java.type("java.lang.Long").parseLong(request.getParam("start")); - } catch(err) { - // error handling... - } - - - request.response().sendFile("web/mybigfile.txt", offset); -}).listen(8080); -``` - -### Piping responses - -The server response is a `WriteStream` instance so you can pipe to it -from any `ReadStream`, e.g. `AsyncFile`, `NetSocket`, `WebSocket` or -`HttpServerRequest`. - -Here’s an example which echoes the request body back in the response for -any PUT methods. It uses a pipe for the body, so it will work even if -the HTTP request body is much larger than can fit in memory at any one -time: - -``` js -vertx.createHttpServer().requestHandler((request) => { - let response = request.response(); - if (request.method() === HttpMethod.PUT) { - response.setChunked(true); - request.pipeTo(response); - } else { - response.setStatusCode(400).end(); - } -}).listen(8080); -``` - -### Writing HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To send such frames, you can use the `writeCustomFrame` on the response. -Here’s an example: - -``` js -import { Buffer } from "@vertx/core" - -let frameType = 40; -let frameStatus = 10; -let payload = Buffer.buffer("some data"); - -// Sending a frame to the client -response.writeCustomFrame(frameType, frameStatus, payload); -``` - -These frames are sent immediately and are not subject to flow control - -when such frame is sent there it may be done before other {@literal -DATA} frames. - -### Stream reset - -HTTP/1.x does not allow a clean reset of a request or a response stream, -for example when a client uploads a resource already present on the -server, the server needs to accept the entire response. - -HTTP/2 supports stream reset at any time during the request/response: - -``` js -// Reset the stream -request.response().reset(); -``` - -By default the `NO_ERROR` (0) error code is sent, another code can sent -instead: - -``` js -// Cancel the stream -request.response().reset(8); -``` - -The HTTP/2 specification defines the list of [error -codes](http://httpwg.org/specs/rfc7540.html#ErrorCodes) one can use. - -The request handler are notified of stream reset events with the -`request handler` and `response handler`: - -``` js -request.response().exceptionHandler((err) => { - if (err instanceof StreamResetException) { - let reset = err; - console.log("Stream reset " + reset.getCode()); - } -}); -``` - -### Server push - -Server push is a new feature of HTTP/2 that enables sending multiple -responses in parallel for a single client request. - -When a server process a request, it can push a request/response to the -client: - -``` js -let response = request.response(); - -// Push main.js to the client -response.push(HttpMethod.GET, "/main.js", (ar) => { - - if (ar.succeeded()) { - - // The server is ready to push the response - let pushedResponse = ar.result(); - - // Send main.js response - pushedResponse.putHeader("content-type", "application/json").end("alert(\"Push response hello\")"); - } else { - console.log("Could not push client resource " + ar.cause()); - } -}); - -// Send the requested resource -response.sendFile(""); -``` - -When the server is ready to push the response, the push response handler -is called and the handler can send the response. - -The push response handler may receive a failure, for instance the client -may cancel the push because it already has `main.js` in its cache and -does not want it anymore. - -The `push` method must be called before the initiating response ends, -however the pushed response can be written after. - -### Handling exceptions - -You can set an `exceptionHandler` to receive any exceptions that happens -before the connection is passed to the `requestHandler` or to the -`webSocketHandler`, e.g during the TLS handshake. - -## HTTP Compression - -Vert.x comes with support for HTTP Compression out of the box. - -This means you are able to automatically compress the body of the -responses before they are sent back to the client. - -If the client does not support HTTP compression the responses are sent -back without compressing the body. - -This allows to handle Client that support HTTP Compression and those -that not support it at the same time. - -To enable compression use can configure it with -`setCompressionSupported`. - -By default compression is not enabled. - -When HTTP compression is enabled the server will check if the client -includes an `Accept-Encoding` header which includes the supported -compressions. Commonly used are deflate and gzip. Both are supported by -Vert.x. - -If such a header is found the server will automatically compress the -body of the response with one of the supported compressions and send it -back to the client. - -Whenever the response needs to be sent without compression you can set -the header `content-encoding` to `identity`: - -``` js -// Disable compression and send an image -request.response().putHeader(Java.type("io.vertx.core.http.HttpHeaders").CONTENT_ENCODING, Java.type("io.vertx.core.http.HttpHeaders").IDENTITY).sendFile("/path/to/image.jpg"); -``` - -Be aware that compression may be able to reduce network traffic but is -more CPU-intensive. - -To address this latter issue Vert.x allows you to tune the 'compression -level' parameter that is native of the gzip/deflate compression -algorithms. - -Compression level allows to configure gizp/deflate algorithms in terms -of the compression ratio of the resulting data and the computational -cost of the compress/decompress operation. - -The compression level is an integer value ranged from '1' to '9', where -'1' means lower compression ratio but fastest algorithm and '9' means -maximum compression ratio available but a slower algorithm. - -Using compression levels higher that 1-2 usually allows to save just -some bytes in size - the gain is not linear, and depends on the specific -data to be compressed - but it comports a non-trascurable cost in term -of CPU cycles required to the server while generating the compressed -response data ( Note that at moment Vert.x doesn’t support any form -caching of compressed response data, even for static files, so the -compression is done on-the-fly at every request body generation ) and in -the same way it affects client(s) while decoding (inflating) received -responses, operation that becomes more CPU-intensive the more the level -increases. - -By default - if compression is enabled via `setCompressionSupported` - -Vert.x will use '6' as compression level, but the parameter can be -configured to address any case with `setCompressionLevel`. - -## Creating an HTTP client - -You create an `HttpClient` instance with default options as follows: - -``` js -let client = vertx.createHttpClient(); -``` - -If you want to configure options for the client, you create it as -follows: - -``` js -let options = new HttpClientOptions() - .setKeepAlive(false); -let client = vertx.createHttpClient(options); -``` - -Vert.x supports HTTP/2 over TLS `h2` and over TCP `h2c`. - -By default the http client performs HTTP/1.1 requests, to perform HTTP/2 -requests the `setProtocolVersion` must be set to `HTTP_2`. - -For `h2` requests, TLS must be enabled with *Application-Layer Protocol -Negotiation*: - -``` js -let options = new HttpClientOptions() - .setProtocolVersion("HTTP_2") - .setSsl(true) - .setUseAlpn(true) - .setTrustAll(true); - -let client = vertx.createHttpClient(options); -``` - -For `h2c` requests, TLS must be disabled, the client will do an HTTP/1.1 -requests and try an upgrade to HTTP/2: - -``` js -let options = new HttpClientOptions() - .setProtocolVersion("HTTP_2"); - -let client = vertx.createHttpClient(options); -``` - -`h2c` connections can also be established directly, i.e connection -started with a prior knowledge, when `setHttp2ClearTextUpgrade` options -is set to false: after the connection is established, the client will -send the HTTP/2 connection preface and expect to receive the same -preface from the server. - -The http server may not support HTTP/2, the actual version can be -checked with `version` when the response arrives. - -When a clients connects to an HTTP/2 server, it sends to the server its -`initial settings`. The settings define how the server can use the -connection, the default initial settings for a client are the default -values defined by the HTTP/2 RFC. - -## Logging network client activity - -For debugging purposes, network activity can be logged. - -``` js -let options = new HttpClientOptions() - .setLogActivity(true); -let client = vertx.createHttpClient(options); -``` - -See the chapter on [logging network activity](#logging_network_activity) -for a detailed explanation. - -## Making requests - -The http client is very flexible and there are various ways you can make -requests with it. - -Often you want to make many requests to the same host/port with an http -client. To avoid you repeating the host/port every time you make a -request you can configure the client with a default host/port: - -``` js -// Set the default host -let options = new HttpClientOptions() - .setDefaultHost("wibble.com"); -// Can also set default port if you want... -let client = vertx.createHttpClient(options); -client.getNow("/some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -Alternatively if you find yourself making lots of requests to different -host/ports with the same client you can simply specify the host/port -when doing the request. - -``` js -let client = vertx.createHttpClient(); - -// Specify both port and host name -client.getNow(8080, "myserver.mycompany.com", "/some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -// This time use the default port 80 but specify the host name -client.getNow("foo.othercompany.com", "/other-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -Both methods of specifying host/port are supported for all the different -ways of making requests with the client. - -### Simple requests with no request body - -Often, you’ll want to make HTTP requests with no request body. This is -usually the case with HTTP GET, OPTIONS and HEAD requests. - -The simplest way to do this with the Vert.x http client is using the -methods suffixed with `Now`. For example `getNow`. - -These methods create the http request and send it in a single method -call and allow you to provide a handler that will be called with the -http response when it comes back. - -``` js -let client = vertx.createHttpClient(); - -// Send a GET request -client.getNow("/some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -// Send a GET request -client.headNow("/other-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -### Writing general requests - -At other times you don’t know the request method you want to send until -run-time. For that use case we provide general purpose request methods -such as `request` which allow you to specify the HTTP method at -run-time: - -``` js -let client = vertx.createHttpClient(); - -client.request(HttpMethod.GET, "some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).end(); - -client.request(HttpMethod.POST, "foo-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).end("some-data"); -``` - -### Writing request bodies - -Sometimes you’ll want to write requests which have a body, or perhaps -you want to write headers to a request before sending it. - -To do this you can call one of the specific request methods such as -`post` or one of the general purpose request methods such as `request`. - -These methods don’t send the request immediately, but instead return an -instance of `HttpClientRequest` which can be used to write to the -request body or write headers. - -Here are some examples of writing a POST request with a body: m - -``` js -let client = vertx.createHttpClient(); - -let request = client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -// Now do stuff with the request -request.putHeader("content-length", "1000"); -request.putHeader("content-type", "text/plain"); -request.write(body); - -// Make sure the request is ended when you're done with it -request.end(); - -// Or fluently: - -client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).putHeader("content-length", "1000").putHeader("content-type", "text/plain").write(body).end(); - -// Or event more simply: - -client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).putHeader("content-type", "text/plain").end(body); -``` - -Methods exist to write strings in UTF-8 encoding and in any specific -encoding and to write buffers: - -``` js -import { Buffer } from "@vertx/core" - -// Write string encoded in UTF-8 -request.write("some data"); - -// Write string encoded in specific encoding -request.write("some other data", "UTF-16"); - -// Write a buffer -let buffer = Buffer.buffer(); -buffer.appendInt(123).appendLong(245); -request.write(buffer); -``` - -If you are just writing a single string or buffer to the HTTP request -you can write it and end the request in a single call to the `end` -function. - -``` js -import { Buffer } from "@vertx/core" - -// Write string and end the request (send it) in a single call -request.end("some simple data"); - -// Write buffer and end the request (send it) in a single call -let buffer = Buffer.buffer().appendDouble(12.34).appendLong(432); -request.end(buffer); -``` - -When you’re writing to a request, the first call to `write` will result -in the request headers being written out to the wire. - -The actual write is asynchronous and might not occur until some time -after the call has returned. - -Non-chunked HTTP requests with a request body require a `Content-Length` -header to be provided. - -Consequently, if you are not using chunked HTTP then you must set the -`Content-Length` header before writing to the request, as it will be too -late otherwise. - -If you are calling one of the `end` methods that take a string or buffer -then Vert.x will automatically calculate and set the `Content-Length` -header before writing the request body. - -If you are using HTTP chunking a a `Content-Length` header is not -required, so you do not have to calculate the size up-front. - -### Writing request headers - -You can write headers to a request using the `headers` multi-map as -follows: - -``` js -// Write some headers using the headers() multimap - -let headers = request.headers(); -headers.set("content-type", "application/json").set("other-header", "foo"); -``` - -The headers are an instance of `MultiMap` which provides operations for -adding, setting and removing entries. Http headers allow more than one -value for a specific key. - -You can also write headers using `putHeader` - -``` js -// Write some headers using the putHeader method - -request.putHeader("content-type", "application/json").putHeader("other-header", "foo"); -``` - -If you wish to write headers to the request you must do so before any -part of the request body is written. - -### Non standard HTTP methods - -The `OTHER` HTTP method is used for non standard methods, when this -method is used, `setRawMethod` must be used to set the raw method to -send to the server. - -### Ending HTTP requests - -Once you have finished with the HTTP request you must end it with one of -the `end` operations. - -Ending a request causes any headers to be written, if they have not -already been written and the request to be marked as complete. - -Requests can be ended in several ways. With no arguments the request is -simply ended: - -``` js -request.end(); -``` - -Or a string or buffer can be provided in the call to `end`. This is like -calling `write` with the string or buffer before calling `end` with no -arguments - -``` js -import { Buffer } from "@vertx/core" -// End the request with a string -request.end("some-data"); - -// End it with a buffer -let buffer = Buffer.buffer().appendFloat(12.3).appendInt(321); -request.end(buffer); -``` - -### Chunked HTTP requests - -Vert.x supports [HTTP Chunked Transfer -Encoding](http://en.wikipedia.org/wiki/Chunked_transfer_encoding) for -requests. - -This allows the HTTP request body to be written in chunks, and is -normally used when a large request body is being streamed to the server, -whose size is not known in advance. - -You put the HTTP request into chunked mode using `setChunked`. - -In chunked mode each call to write will cause a new chunk to be written -to the wire. In chunked mode there is no need to set the -`Content-Length` of the request up-front. - -``` js -request.setChunked(true); - -// Write some chunks -for (let i = 0;i < 10;i++) { - request.write("this-is-chunk-" + i); -} - -request.end(); -``` - -### Request timeouts - -You can set a timeout for a specific http request using `setTimeout`. - -If the request does not return any data within the timeout period an -exception will be passed to the exception handler (if provided) and the -request will be closed. - -### Handling exceptions - -You can handle exceptions corresponding to a request by setting an -exception handler on the `HttpClientRequest` instance: - -``` js -let request = client.post("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -request.exceptionHandler((e) => { - console.log("Received exception: " + e.getMessage()); - e.printStackTrace(); -}); -``` - -This does not handle non *2xx* response that need to be handled in the -`HttpClientResponse` code: - -``` js -let request = client.post("some-uri", (response) => { - if (response.statusCode() === 200) { - console.log("Everything fine"); - return - } - if (response.statusCode() === 500) { - console.log("Unexpected behavior on the server side"); - return - } -}); -request.end(); -``` - -> **Important** -> -> `XXXNow` methods cannot receive an exception handler. - -### Specifying a handler on the client request - -Instead of providing a response handler in the call to create the client -request object, alternatively, you can not provide a handler when the -request is created and set it later on the request object itself, using -`handler`, for example: - -``` js -let request = client.post("some-uri"); -request.handler((response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -### Using the request as a stream - -The `HttpClientRequest` instance is also a `WriteStream` which means you -can pump to it from any `ReadStream` instance. - -For, example, you could pump a file on disk to a http request body as -follows: - -``` js -import { Pump } from "@vertx/core" - -request.setChunked(true); -let pump = Pump.pump(file, request); -file.endHandler((v) => { - request.end(); -}); -pump.start(); -``` - -### Writing HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To send such frames, you can use the `write` on the request. Here’s an -example: - -``` js -import { Buffer } from "@vertx/core" - -let frameType = 40; -let frameStatus = 10; -let payload = Buffer.buffer("some data"); - -// Sending a frame to the server -request.writeCustomFrame(frameType, frameStatus, payload); -``` - -### Stream reset - -HTTP/1.x does not allow a clean reset of a request or a response stream, -for example when a client uploads a resource already present on the -server, the server needs to accept the entire response. - -HTTP/2 supports stream reset at any time during the request/response: - -``` js -request.reset(); -``` - -By default the NO\_ERROR (0) error code is sent, another code can sent -instead: - -``` js -request.reset(8); -``` - -The HTTP/2 specification defines the list of [error -codes](http://httpwg.org/specs/rfc7540.html#ErrorCodes) one can use. - -The request handler are notified of stream reset events with the -`request handler` and `response handler`: - -``` js -request.exceptionHandler((err) => { - if (err instanceof StreamResetException) { - let reset = err; - console.log("Stream reset " + reset.getCode()); - } -}); -``` - -## Handling HTTP responses - -You receive an instance of `HttpClientResponse` into the handler that -you specify in of the request methods or by setting a handler directly -on the `HttpClientRequest` object. - -You can query the status code and the status message of the response -with `statusCode` and `statusMessage`. - -``` js -client.getNow("some-uri", (response) => { - // the status code - e.g. 200 or 404 - console.log("Status code is " + response.statusCode()); - - // the status message e.g. "OK" or "Not Found". - console.log("Status message is " + response.statusMessage()); -}); -``` - -### Using the response as a stream - -The `HttpClientResponse` instance is also a `ReadStream` which means you -can pipe it to any `WriteStream` instance. - -### Response headers and trailers - -Http responses can contain headers. Use `headers` to get the headers. - -The object returned is a `MultiMap` as HTTP headers can contain multiple -values for single keys. - -``` js -let contentType = response.headers().get("content-type"); -let contentLength = response.headers().get("content-lengh"); -``` - -Chunked HTTP responses can also contain trailers - these are sent in the -last chunk of the response body. - -You use `trailers` to get the trailers. Trailers are also a `MultiMap`. - -### Reading the request body - -The response handler is called when the headers of the response have -been read from the wire. - -If the response has a body this might arrive in several pieces some time -after the headers have been read. We don’t wait for all the body to -arrive before calling the response handler as the response could be very -large and we might be waiting a long time, or run out of memory for -large responses. - -As parts of the response body arrive, the `handler` is called with a -`Buffer` representing the piece of the body: - -``` js -client.getNow("some-uri", (response) => { - - response.handler((buffer) => { - console.log("Received a part of the response body: " + buffer); - }); -}); -``` - -If you know the response body is not very large and want to aggregate it -all in memory before handling it, you can either aggregate it yourself: - -``` js -import { Buffer } from "@vertx/core" - -client.getNow("some-uri", (response) => { - - // Create an empty buffer - let totalBuffer = Buffer.buffer(); - - response.handler((buffer) => { - console.log("Received a part of the response body: " + buffer.length()); - - totalBuffer.appendBuffer(buffer); - }); - - response.endHandler((v) => { - // Now all the body has been read - console.log("Total response body length is " + totalBuffer.length()); - }); -}); -``` - -Or you can use the convenience `bodyHandler` which is called with the -entire body when the response has been fully read: - -``` js -client.getNow("some-uri", (response) => { - - response.bodyHandler((totalBuffer) => { - // Now all the body has been read - console.log("Total response body length is " + totalBuffer.length()); - }); -}); -``` - -### Response end handler - -The response `endHandler` is called when the entire response body has -been read or immediately after the headers have been read and the -response handler has been called if there is no body. - -### Reading cookies from the response - -You can retrieve the list of cookies from a response using `cookies`. - -Alternatively you can just parse the `Set-Cookie` headers yourself in -the response. - -### 30x redirection handling - -The client can be configured to follow HTTP redirections provided by the -`Location` response header when the client receives: - - - a `301`, `302`, `307` or `308` status code along with a HTTP GET or - HEAD method - - - a `303` status code, in addition the directed request perform an - HTTP GET methodn - -Here’s an example: - -``` js -client.get("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).setFollowRedirects(true).end(); -``` - -The maximum redirects is `16` by default and can be changed with -`setMaxRedirects`. - -``` js -let client = vertx.createHttpClient(new HttpClientOptions() - .setMaxRedirects(32)); - -client.get("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}).setFollowRedirects(true).end(); -``` - -One size does not fit all and the default redirection policy may not be -adapted to your needs. - -The default redirection policy can changed with a custom implementation: - -``` js -import { Future } from "@vertx/core" - -client.redirectHandler((response) => { - - // Only follow 301 code - if (response.statusCode() === 301 && (response.getHeader("Location") !== null && response.getHeader("Location") !== undefined)) { - - // Compute the redirect URI - let absoluteURI = resolveURI(response.request().absoluteURI(), response.getHeader("Location")); - - // Create a new ready to use request that the client will use - return Future.succeededFuture(client.getAbs(absoluteURI)) - } - - // We don't redirect - return null -}); -``` - -The policy handles the original `HttpClientResponse` received and -returns either `null` or a `Future`. - - - when `null` is returned, the original response is processed - - - when a future is returned, the request will be sent on its - successful completion - - - when a future is returned, the exception handler set on the request - is called on its failure - -The returned request must be unsent so the original request handlers can -be sent and the client can send it after. - -Most of the original request settings will be propagated to the new -request: - - - request headers, unless if you have set some headers (including - `setHost`) - - - request body unless the returned request uses a `GET` method - - - response handler - - - request exception handler - - - request timeout - -### 100-Continue handling - -According to the [HTTP 1.1 -specification](http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html) a -client can set a header `Expect: 100-Continue` and send the request -header before sending the rest of the request body. - -The server can then respond with an interim response status `Status: 100 -(Continue)` to signify to the client that it is ok to send the rest of -the body. - -The idea here is it allows the server to authorise and accept/reject the -request before large amounts of data are sent. Sending large amounts of -data if the request might not be accepted is a waste of bandwidth and -ties up the server in reading data that it will just discard. - -Vert.x allows you to set a `continueHandler` on the client request -object - -This will be called if the server sends back a `Status: 100 (Continue)` -response to signify that it is ok to send the rest of the request. - -This is used in conjunction with -\`[sendHead](/es4x/@vertx/core/classes/httpclientrequest.html#sendhead)\`to -send the head of the request. - -Here’s an example: - -``` js -let request = client.put("some-uri", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); - -request.putHeader("Expect", "100-Continue"); - -request.continueHandler((v) => { - // OK to send rest of body - request.write("Some data"); - request.write("Some more data"); - request.end(); -}); -``` - -On the server side a Vert.x http server can be configured to -automatically send back 100 Continue interim responses when it receives -an `Expect: 100-Continue` header. - -This is done by setting the option `setHandle100ContinueAutomatically`. - -If you’d prefer to decide whether to send back continue responses -manually, then this property should be set to `false` (the default), -then you can inspect the headers and call `writeContinue` to have the -client continue sending the body: - -``` js -httpServer.requestHandler((request) => { - if (request.getHeader("Expect").equalsIgnoreCase("100-Continue")) { - - // Send a 100 continue response - request.response().writeContinue(); - - // The client should send the body when it receives the 100 response - request.bodyHandler((body) => { - // Do something with body - }); - - request.endHandler((v) => { - request.response().end(); - }); - } -}); -``` - -You can also reject the request by sending back a failure status code -directly: in this case the body should either be ignored or the -connection should be closed (100-Continue is a performance hint and -cannot be a logical protocol constraint): - -``` js -httpServer.requestHandler((request) => { - if (request.getHeader("Expect").equalsIgnoreCase("100-Continue")) { - - // - let rejectAndClose = true; - if (rejectAndClose) { - - // Reject with a failure code and close the connection - // this is probably best with persistent connection - request.response().setStatusCode(405).putHeader("Connection", "close").end(); - } else { - - // Reject with a failure code and ignore the body - // this may be appropriate if the body is small - request.response().setStatusCode(405).end(); - } - } -}); -``` - -### Client push - -Server push is a new feature of HTTP/2 that enables sending multiple -responses in parallel for a single client request. - -A push handler can be set on a request to receive the request/response -pushed by the server: - -``` js -let request = client.get("/index.html", (response) => { - // Process index.html response -}); - -// Set a push handler to be aware of any resource pushed by the server -request.pushHandler((pushedRequest) => { - - // A resource is pushed for this request - console.log("Server pushed " + pushedRequest.path()); - - // Set an handler for the response - pushedRequest.handler((pushedResponse) => { - console.log("The response for the pushed request"); - }); -}); - -// End the request -request.end(); -``` - -If the client does not want to receive a pushed request, it can reset -the stream: - -``` js -request.pushHandler((pushedRequest) => { - if (pushedRequest.path() == "/main.js") { - pushedRequest.reset(); - } else { - // Handle it - } -}); -``` - -When no handler is set, any stream pushed will be automatically -cancelled by the client with a stream reset (`8` error code). - -### Receiving custom HTTP/2 frames - -HTTP/2 is a framed protocol with various frames for the HTTP -request/response model. The protocol allows other kind of frames to be -sent and received. - -To receive custom frames, you can use the customFrameHandler on the -request, this will get called every time a custom frame arrives. Here’s -an example: - -``` js -response.customFrameHandler((frame) => { - - console.log("Received a frame type=" + frame.type() + " payload" + frame.payload().toString()); -}); -``` - -## Enabling compression on the client - -The http client comes with support for HTTP Compression out of the box. - -This means the client can let the remote http server know that it -supports compression, and will be able to handle compressed response -bodies. - -An http server is free to either compress with one of the supported -compression algorithms or to send the body back without compressing it -at all. So this is only a hint for the Http server which it may ignore -at will. - -To tell the http server which compression is supported by the client it -will include an `Accept-Encoding` header with the supported compression -algorithm as value. Multiple compression algorithms are supported. In -case of Vert.x this will result in the following header added: - -Accept-Encoding: gzip, deflate - -The server will choose then from one of these. You can detect if a -server ompressed the body by checking for the `Content-Encoding` header -in the response sent back from it. - -If the body of the response was compressed via gzip it will include for -example the following header: - -Content-Encoding: gzip - -To enable compression set `setTryUseCompression` on the options used -when creating the client. - -By default compression is disabled. - -## HTTP/1.x pooling and keep alive - -Http keep alive allows http connections to be used for more than one -request. This can be a more efficient use of connections when you’re -making multiple requests to the same server. - -For HTTP/1.x versions, the http client supports pooling of connections, -allowing you to reuse connections between requests. - -For pooling to work, keep alive must be true using `setKeepAlive` on the -options used when configuring the client. The default value is true. - -When keep alive is enabled. Vert.x will add a `Connection: Keep-Alive` -header to each HTTP/1.0 request sent. When keep alive is disabled. -Vert.x will add a `Connection: Close` header to each HTTP/1.1 request -sent to signal that the connection will be closed after completion of -the response. - -The maximum number of connections to pool **for each server** is -configured using `setMaxPoolSize` - -When making a request with pooling enabled, Vert.x will create a new -connection if there are less than the maximum number of connections -already created for that server, otherwise it will add the request to a -queue. - -Keep alive connections will be closed by the client automatically after -a timeout. The timeout can be specified by the server using the -`keep-alive` header: - - keep-alive: timeout=30 - -You can set the default timeout using `setKeepAliveTimeout` - any -connections not used within this timeout will be closed. Please note the -timeout value is in seconds not milliseconds. - -## HTTP/1.1 pipe-lining - -The client also supports pipe-lining of requests on a connection. - -Pipe-lining means another request is sent on the same connection before -the response from the preceding one has returned. Pipe-lining is not -appropriate for all requests. - -To enable pipe-lining, it must be enabled using `setPipelining`. By -default pipe-lining is disabled. - -When pipe-lining is enabled requests will be written to connections -without waiting for previous responses to return. - -The number of pipe-lined requests over a single connection is limited by -`setPipeliningLimit`. This option defines the maximum number of http -requests sent to the server awaiting for a response. This limit ensures -the fairness of the distribution of the client requests over the -connections to the same server. - -## HTTP/2 multiplexing - -HTTP/2 advocates to use a single connection to a server, by default the -http client uses a single connection for each server, all the streams to -the same server are multiplexed over the same connection. - -When the clients needs to use more than a single connection and use -pooling, the `setHttp2MaxPoolSize` shall be used. - -When it is desirable to limit the number of multiplexed streams per -connection and use a connection pool instead of a single connection, -`setHttp2MultiplexingLimit` can be used. - -``` js -let clientOptions = new HttpClientOptions() - .setHttp2MultiplexingLimit(10) - .setHttp2MaxPoolSize(3); - -// Uses up to 3 connections and up to 10 streams per connection -let client = vertx.createHttpClient(clientOptions); -``` - -The multiplexing limit for a connection is a setting set on the client -that limits the number of streams of a single connection. The effective -value can be even lower if the server sets a lower limit with the -`SETTINGS_MAX_CONCURRENT_STREAMS` setting. - -HTTP/2 connections will not be closed by the client automatically. To -close them you can call `close` or close the client instance. - -Alternatively you can set idle timeout using `setIdleTimeout` - any -connections not used within this timeout will be closed. Please note the -idle timeout value is in seconds not milliseconds. - -## HTTP connections - -The `HttpConnection` offers the API for dealing with HTTP connection -events, lifecycle and settings. - -HTTP/2 implements fully the `HttpConnection` API. - -HTTP/1.x implements partially the `HttpConnection` API: only the close -operation, the close handler and exception handler are implemented. This -protocol does not provide semantics for the other operations. - -### Server connections - -The `connection` method returns the request connection on the server: - -``` js -let connection = request.connection(); -``` - -A connection handler can be set on the server to be notified of any -incoming connection: - -``` js -let server = vertx.createHttpServer(http2Options); - -server.connectionHandler((connection) => { - console.log("A client connected"); -}); -``` - -### Client connections - -The `connection` method returns the request connection on the client: - -``` js -let connection = request.connection(); -``` - -A connection handler can be set on the client to be notified when a -connection has been established happens: - -``` js -client.connectionHandler((connection) => { - console.log("Connected to the server"); -}); -``` - -### Connection settings - -The configuration of an HTTP/2 is configured by the `Http2Settings` data -object. - -Each endpoint must respect the settings sent by the other side of the -connection. - -When a connection is established, the client and the server exchange -initial settings. Initial settings are configured by -`setInitialSettings` on the client and `setInitialSettings` on the -server. - -The settings can be changed at any time after the connection is -established: - -``` js -connection.updateSettings(new Http2Settings() - .setMaxConcurrentStreams(100)); -``` - -As the remote side should acknowledge on reception of the settings -update, it’s possible to give a callback to be notified of the -acknowledgment: - -``` js -connection.updateSettings(new Http2Settings() - .setMaxConcurrentStreams(100), (ar) => { - if (ar.succeeded()) { - console.log("The settings update has been acknowledged "); - } -}); -``` - -Conversely the `remoteSettingsHandler` is notified when the new remote -settings are received: - -``` js -connection.remoteSettingsHandler((settings) => { - console.log("Received new settings"); -}); -``` - -> **Note** -> -> this only applies to the HTTP/2 protocol - -### Connection ping - -HTTP/2 connection ping is useful for determining the connection -round-trip time or check the connection validity: `ping` sends a -{@literal PING} frame to the remote endpoint: - -``` js -import { Buffer } from "@vertx/core" -let data = Buffer.buffer(); -for (let i = 0;i < 8;i++) { - data.appendByte(i); -} -connection.ping(data, (pong) => { - console.log("Remote side replied"); -}); -``` - -Vert.x will send automatically an acknowledgement when a {@literal PING} -frame is received, an handler can be set to be notified for each ping -received: - -``` js -connection.pingHandler((ping) => { - console.log("Got pinged by remote side"); -}); -``` - -The handler is just notified, the acknowledgement is sent whatsoever. -Such feature is aimed for implementing protocols on top of HTTP/2. - -> **Note** -> -> this only applies to the HTTP/2 protocol - -### Connection shutdown and go away - -Calling `shutdown` will send a {@literal GOAWAY} frame to the remote -side of the connection, asking it to stop creating streams: a client -will stop doing new requests and a server will stop pushing responses. -After the {@literal GOAWAY} frame is sent, the connection waits some -time (30 seconds by default) until all current streams closed and close -the connection: - -``` js -connection.shutdown(); -``` - -The `shutdownHandler` notifies when all streams have been closed, the -connection is not yet closed. - -It’s possible to just send a {@literal GOAWAY} frame, the main -difference with a shutdown is that it will just tell the remote side of -the connection to stop creating new streams without scheduling a -connection close: - -``` js -connection.goAway(0); -``` - -Conversely, it is also possible to be notified when {@literal GOAWAY} -are received: - -``` js -connection.goAwayHandler((goAway) => { - console.log("Received a go away frame"); -}); -``` - -The `shutdownHandler` will be called when all current streams have been -closed and the connection can be closed: - -``` js -connection.goAway(0); -connection.shutdownHandler((v) => { - - // All streams are closed, close the connection - connection.close(); -}); -``` - -This applies also when a {@literal GOAWAY} is received. - -> **Note** -> -> this only applies to the HTTP/2 protocol - -### Connection close - -Connection `close` closes the connection: - - - it closes the socket for HTTP/1.x - - - a shutdown with no delay for HTTP/2, the {@literal GOAWAY} frame - will still be sent before the connection is closed. \* - -The `closeHandler` notifies when a connection is closed. - -## HttpClient usage - -The HttpClient can be used in a Verticle or embedded. - -When used in a Verticle, the Verticle **should use its own client -instance**. - -More generally a client should not be shared between different Vert.x -contexts as it can lead to unexpected behavior. - -For example a keep-alive connection will call the client handlers on the -context of the request that opened the connection, subsequent requests -will use the same context. - -When this happen Vert.x detects it and log a warn: - - Reusing a connection with a different context: an HttpClient is probably shared between different Verticles - -The HttpClient can be embedded in a non Vert.x thread like a unit test -or a plain java `main`: the client handlers will be called by different -Vert.x threads and contexts, such contexts are created as needed. For -production this usage is not recommended. - -## Server sharing - -When several HTTP servers listen on the same port, vert.x orchestrates -the request handling using a round-robin strategy. - -Let’s take a verticle creating a HTTP server such as: - -**io.vertx.examples.http.sharing.HttpServerVerticle.** - -``` js -vertx.createHttpServer().requestHandler((request) => { - request.response().end("Hello from server " + this); -}).listen(8080); -``` - -This service is listening on the port 8080. So, when this verticle is -instantiated multiple times as with: `vertx run -io.vertx.examples.http.sharing.HttpServerVerticle -instances 2`, what’s -happening ? If both verticles would bind to the same port, you would -receive a socket exception. Fortunately, vert.x is handling this case -for you. When you deploy another server on the same host and port as an -existing server it doesn’t actually try and create a new server -listening on the same host/port. It binds only once to the socket. When -receiving a request it calls the server handlers following a round robin -strategy. - -Let’s now imagine a client such as: - -``` js -vertx.setPeriodic(100, (l) => { - vertx.createHttpClient().getNow(8080, "localhost", "/", (resp) => { - resp.bodyHandler((body) => { - console.log(body.toString("ISO-8859-1")); - }); - }); -}); -``` - -Vert.x delegates the requests to one of the server sequentially: - - Hello from i.v.e.h.s.HttpServerVerticle@1 - Hello from i.v.e.h.s.HttpServerVerticle@2 - Hello from i.v.e.h.s.HttpServerVerticle@1 - Hello from i.v.e.h.s.HttpServerVerticle@2 - ... - -Consequently the servers can scale over available cores while each -Vert.x verticle instance remains strictly single threaded, and you don’t -have to do any special tricks like writing load-balancers in order to -scale your server on your multi-core machine. - -## Using HTTPS with Vert.x - -Vert.x http servers and clients can be configured to use HTTPS in -exactly the same way as net servers. - -Please see [configuring net servers to use SSL](#ssl) for more -information. - -SSL can also be enabled/disabled per request with `RequestOptions` or -when specifying a scheme with `requestAbs` method. - -``` js -client.getNow(new RequestOptions() - .setHost("localhost") - .setPort(8080) - .setURI("/") - .setSsl(true), (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -The `setSsl` setting acts as the default client setting. - -The `setSsl` overrides the default client setting - - - setting the value to `false` will disable SSL/TLS even if the client - is configured to use SSL/TLS - - - setting the value to `true` will enable SSL/TLS even if the client - is configured to not use SSL/TLS, the actual client SSL/TLS (such as - trust, key/certificate, ciphers, ALPN, …​) will be reused - -Likewise `requestAbs` scheme also overrides the default client setting. - -### Server Name Indication (SNI) - -Vert.x http servers can be configured to use SNI in exactly the same way -as {@linkplain io.vertx.core.net net servers}. - -Vert.x http client will present the actual hostname as *server name* -during the TLS handshake. - -## WebSockets - -[WebSockets](http://en.wikipedia.org/wiki/WebSocket) are a web -technology that allows a full duplex socket-like connection between HTTP -servers and HTTP clients (typically browsers). - -Vert.x supports WebSockets on both the client and server-side. - -### WebSockets on the server - -There are two ways of handling WebSockets on the server side. - -#### WebSocket handler - -The first way involves providing a `webSocketHandler` on the server -instance. - -When a WebSocket connection is made to the server, the handler will be -called, passing in an instance of `ServerWebSocket`. - -``` js -server.webSocketHandler((webSocket) => { - console.log("Connected!"); -}); -``` - -You can choose to reject the WebSocket by calling `reject`. - -``` js -server.webSocketHandler((webSocket) => { - if (webSocket.path() == "/myapi") { - webSocket.reject(); - } else { - // Do something - } -}); -``` - -You can perform an asynchronous handshake by calling `setHandshake` with -a `Future`: - -``` js -import { Promise } from "@vertx/core" -server.webSocketHandler((webSocket) => { - let promise = Promise.promise(); - webSocket.setHandshake(promise.future()); - authenticate(webSocket.headers(), (ar) => { - if (ar.succeeded()) { - // Terminate the handshake with the status code 101 (Switching Protocol) - // Reject the handshake with 401 (Unauthorized) - promise.complete(ar.succeeded() ? 101 : 401); - } else { - // Will send a 500 error - promise.fail(ar.cause()); - } - }); -}); -``` - -> **Note** -> -> the WebSocket will be automatically accepted after the handler is -> called unless the WebSocket’s handshake has been set - -#### Upgrading to WebSocket - -The second way of handling WebSockets is to handle the HTTP Upgrade -request that was sent from the client, and call `upgrade` on the server -request. - -``` js -server.requestHandler((request) => { - if (request.path() == "/myapi") { - - let webSocket = request.upgrade(); - // Do something - - } else { - // Reject - request.response().setStatusCode(400).end(); - } -}); -``` - -#### The server WebSocket - -The `ServerWebSocket` instance enables you to retrieve the `headers`, -`path`, `query` and `URI` of the HTTP request of the WebSocket -handshake. - -### WebSockets on the client - -The Vert.x `HttpClient` supports WebSockets. - -You can connect a WebSocket to a server using one of the `webSocket` -operations and providing a handler. - -The handler will be called with an instance of `WebSocket` when the -connection has been made: - -``` js -client.webSocket("/some-uri", (res) => { - if (res.succeeded()) { - let ws = res.result(); - console.log("Connected!"); - } -}); -``` - -### Writing messages to WebSockets - -If you wish to write a single WebSocket message to the WebSocket you can -do this with `writeBinaryMessage` or `writeTextMessage` : - -``` js -import { Buffer } from "@vertx/core" -// Write a simple binary message -let buffer = Buffer.buffer().appendInt(123).appendFloat(1.23); -webSocket.writeBinaryMessage(buffer); - -// Write a simple text message -let message = "hello"; -webSocket.writeTextMessage(message); -``` - -If the WebSocket message is larger than the maximum WebSocket frame size -as configured with `setMaxWebSocketFrameSize` then Vert.x will split it -into multiple WebSocket frames before sending it on the wire. - -### Writing frames to WebSockets - -A WebSocket message can be composed of multiple frames. In this case the -first frame is either a *binary* or *text* frame followed by zero or -more *continuation* frames. - -The last frame in the message is marked as *final*. - -To send a message consisting of multiple frames you create frames using -`WebSocketFrame.binaryFrame` , `WebSocketFrame.textFrame` or -`WebSocketFrame.continuationFrame` and write them to the WebSocket using -`writeFrame`. - -Here’s an example for binary frames: - -``` js -import { WebSocketFrame } from "@vertx/core" - -let frame1 = WebSocketFrame.binaryFrame(buffer1, false); -webSocket.writeFrame(frame1); - -let frame2 = WebSocketFrame.continuationFrame(buffer2, false); -webSocket.writeFrame(frame2); - -// Write the final frame -let frame3 = WebSocketFrame.continuationFrame(buffer2, true); -webSocket.writeFrame(frame3); -``` - -In many cases you just want to send a WebSocket message that consists of -a single final frame, so we provide a couple of shortcut methods to do -that with `writeFinalBinaryFrame` and `writeFinalTextFrame`. - -Here’s an example: - -``` js -import { Buffer } from "@vertx/core" - -// Send a WebSocket messages consisting of a single final text frame: - -webSocket.writeFinalTextFrame("Geronimo!"); - -// Send a WebSocket messages consisting of a single final binary frame: - -let buff = Buffer.buffer().appendInt(12).appendString("foo"); - -webSocket.writeFinalBinaryFrame(buff); -``` - -### Reading frames from WebSockets - -To read frames from a WebSocket you use the `frameHandler`. - -The frame handler will be called with instances of `WebSocketFrame` when -a frame arrives, for example: - -``` js -webSocket.frameHandler((frame) => { - console.log("Received a frame of size!"); -}); -``` - -### Closing WebSockets - -Use `close` to close the WebSocket connection when you have finished -with it. - -### Piping WebSockets - -The `WebSocket` instance is also a `ReadStream` and a `WriteStream` so -it can be used with pipes. - -When using a WebSocket as a write stream or a read stream it can only be -used with WebSockets connections that are used with binary frames that -are no split over multiple frames. - -### Event bus handlers - -Every WebSocket automatically registers two handler on the event bus, -and when any data are received in this handler, it writes them to -itself. Those are local subscriptions not routed on the cluster. - -This enables you to write data to a WebSocket which is potentially in a -completely different verticle sending data to the address of that -handler. - -The addresses of the handlers are given by `binaryHandlerID` and -`textHandlerID`. - -## Using a proxy for HTTP/HTTPS connections - -The http client supports accessing http/https URLs via a HTTP proxy -(e.g. Squid) or *SOCKS4a* or *SOCKS5* proxy. The CONNECT protocol uses -HTTP/1.x but can connect to HTTP/1.x and HTTP/2 servers. - -Connecting to h2c (unencrypted HTTP/2 servers) is likely not supported -by http proxies since they will support HTTP/1.1 only. - -The proxy can be configured in the `HttpClientOptions` by setting a -`ProxyOptions` object containing proxy type, hostname, port and -optionally username and password. - -Here’s an example of using an HTTP proxy: - -``` js -let options = new HttpClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("HTTP") - .setHost("localhost") - .setPort(3128) - .setUsername("username") - .setPassword("secret")); -let client = vertx.createHttpClient(options); -``` - -When the client connects to an http URL, it connects to the proxy server -and provides the full URL in the HTTP request ("GET - HTTP/1.1"). - -When the client connects to an https URL, it asks the proxy to create a -tunnel to the remote host with the CONNECT method. - -For a SOCKS5 proxy: - -``` js -let options = new HttpClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("SOCKS5") - .setHost("localhost") - .setPort(1080) - .setUsername("username") - .setPassword("secret")); -let client = vertx.createHttpClient(options); -``` - -The DNS resolution is always done on the proxy server, to achieve the -functionality of a SOCKS4 client, it is necessary to resolve the DNS -address locally. - -### Handling of other protocols - -The HTTP proxy implementation supports getting ftp:// urls if the proxy -supports that, which isn’t available in non-proxy getAbs requests. - -``` js -let options = new HttpClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("HTTP")); -let client = vertx.createHttpClient(options); -client.getAbs("ftp://ftp.gnu.org/gnu/", (response) => { - console.log("Received response with status code " + response.statusCode()); -}); -``` - -Support for other protocols is not available since java.net.URL does not -support them (gopher:// for example). - -## Automatic clean-up in verticles - -If you’re creating http servers and clients from inside verticles, those -servers and clients will be automatically closed when the verticle is -undeployed. - -# Using the SharedData API - -As its name suggests, the `SharedData` API allows you to safely share -data between: - - - different parts of your application, or - - - different applications in the same Vert.x instance, or - - - different applications across a cluster of Vert.x instances. - -In practice, it provides: - - - synchronous maps (local-only) - - - asynchronous maps - - - asynchronous locks - - - asynchronous counters - -> **Important** -> -> The behavior of the distributed data structure depends on the cluster -> manager you use. Backup (replication) and behavior when a network -> partition is faced are defined by the cluster manager and its -> configuration. Please refer to the cluster manager documentation as -> well as to the underlying framework manual. - -## Local maps - -`Local maps` allow you to share data safely between different event -loops (e.g. different verticles) in the same Vert.x instance. - -They only allow certain data types to be used as keys and values: - - - immutable types (e.g. strings, booleans, …​ etc), or - - - types implementing the `Shareable` interface (buffers, JSON arrays, - JSON objects, or your own shareable objects). - -In the latter case the key/value will be copied before putting it into -the map. - -This way we can ensure there is no *shared access to mutable state* -between different threads in your Vert.x application. And you won’t have -to worry about protecting that state by synchronising access to it. - -Here’s an example of using a shared local map: - -``` js -import { Buffer } from "@vertx/core" -let sharedData = vertx.sharedData(); - -let map1 = sharedData.getLocalMap("mymap1"); - -map1.put("foo", "bar"); - -let map2 = sharedData.getLocalMap("mymap2"); - -map2.put("eek", Buffer.buffer().appendInt(123)); - -// Then... in another part of your application: - -map1 = sharedData.getLocalMap("mymap1"); - -let val = map1.get("foo"); - -map2 = sharedData.getLocalMap("mymap2"); - -let buff = map2.get("eek"); -``` - -## Asynchronous shared maps - -`Asynchronous shared maps` allow data to be put in the map and retrieved -locally or from any other node. - -This makes them really useful for things like storing session state in a -farm of servers hosting a Vert.x Web application. - -Getting the map is asynchronous and the result is returned to you in the -handler that you specify. Here’s an example: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getAsyncMap("mymap", (res) => { - if (res.succeeded()) { - let map = res.result(); - } else { - // Something went wrong! - } -}); -``` - -When Vert.x is clustered, data that you put into the map is accessible -locally as well as on any of the other cluster members. - -> **Important** -> -> In clustered mode, asynchronous shared maps rely on distributed data -> structures provided by the cluster manager. Beware that the latency -> relative to asynchronous shared map operations can be much higher in -> clustered than in local mode. - -If your application doesn’t need data to be shared with every other -node, you can retrieve a local-only map: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLocalAsyncMap("mymap", (res) => { - if (res.succeeded()) { - // Local-only async map - let map = res.result(); - } else { - // Something went wrong! - } -}); -``` - -### Putting data in a map - -You put data in a map with `put`. - -The actual put is asynchronous and the handler is notified once it is -complete: - -``` js -map.put("foo", "bar", (resPut) => { - if (resPut.succeeded()) { - // Successfully put the value - } else { - // Something went wrong! - } -}); -``` - -### Getting data from a map - -You get data from a map with `get`. - -The actual get is asynchronous and the handler is notified with the -result some time later: - -``` js -map.get("foo", (resGet) => { - if (resGet.succeeded()) { - // Successfully got the value - let val = resGet.result(); - } else { - // Something went wrong! - } -}); -``` - -#### Other map operations - -You can also remove entries from an asynchronous map, clear them and get -the size. - -See the `API docs` for a detailed list of map operations. - -## Asynchronous locks - -`Asynchronous locks` allow you to obtain exclusive locks locally or -across the cluster. This is useful when you want to do something or -access a resource on only one node of a cluster at any one time. - -Asynchronous locks have an asynchronous API unlike most lock APIs which -block the calling thread until the lock is obtained. - -To obtain a lock use `getLock`. This won’t block, but when the lock is -available, the handler will be called with an instance of `Lock`, -signalling that you now own the lock. - -While you own the lock, no other caller, locally or on the cluster, will -be able to obtain the lock. - -When you’ve finished with the lock, you call `release` to release it, so -another caller can obtain it: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLock("mylock", (res) => { - if (res.succeeded()) { - // Got the lock! - let lock = res.result(); - - // 5 seconds later we release the lock so someone else can get it - - vertx.setTimer(5000, (tid) => { - lock.release(); - }); - - } else { - // Something went wrong - } -}); -``` - -You can also get a lock with a timeout. If it fails to obtain the lock -within the timeout the handler will be called with a failure: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLockWithTimeout("mylock", 10000, (res) => { - if (res.succeeded()) { - // Got the lock! - let lock = res.result(); - - } else { - // Failed to get lock - } -}); -``` - -See the `API docs` for a detailed list of lock operations. - -> **Important** -> -> In clustered mode, asynchronous locks rely on distributed data -> structures provided by the cluster manager. Beware that the latency -> relative to asynchronous shared lock operations can be much higher in -> clustered than in local mode. - -If your application doesn’t need the lock to be shared with every other -node, you can retrieve a local-only lock: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLocalLock("mylock", (res) => { - if (res.succeeded()) { - // Local-only lock - let lock = res.result(); - - // 5 seconds later we release the lock so someone else can get it - - vertx.setTimer(5000, (tid) => { - lock.release(); - }); - - } else { - // Something went wrong - } -}); -``` - -## Asynchronous counters - -It’s often useful to maintain an atomic counter locally or across the -different nodes of your application. - -You can do this with `Counter`. - -You obtain an instance with `getCounter`: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getCounter("mycounter", (res) => { - if (res.succeeded()) { - let counter = res.result(); - } else { - // Something went wrong! - } -}); -``` - -Once you have an instance you can retrieve the current count, atomically -increment it, decrement and add a value to it using the various methods. - -See the `API docs` for a detailed list of counter operations. - -> **Important** -> -> In clustered mode, asynchronous counters rely on distributed data -> structures provided by the cluster manager. Beware that the latency -> relative to asynchronous shared counter operations can be much higher -> in clustered than in local mode. - -If your application doesn’t need the counter to be shared with every -other node, you can retrieve a local-only counter: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLocalCounter("mycounter", (res) => { - if (res.succeeded()) { - // Local-only counter - let counter = res.result(); - } else { - // Something went wrong! - } -}); -``` - -# Using the file system with Vert.x - -The Vert.x `FileSystem` object provides many operations for manipulating -the file system. - -There is one file system object per Vert.x instance, and you obtain it -with `fileSystem`. - -A blocking and a non blocking version of each operation is provided. The -non blocking versions take a handler which is called when the operation -completes or an error occurs. - -Here’s an example of an asynchronous copy of a file: - -``` js -let fs = vertx.fileSystem(); - -// Copy file from foo.txt to bar.txt -fs.copy("foo.txt", "bar.txt", (res) => { - if (res.succeeded()) { - // Copied ok! - } else { - // Something went wrong - } -}); -``` - -The blocking versions are named `xxxBlocking` and return the results or -throw exceptions directly. In many cases, depending on the operating -system and file system, some of the potentially blocking operations can -return quickly, which is why we provide them, but it’s highly -recommended that you test how long they take to return in your -particular application before using them from an event loop, so as not -to break the Golden Rule. - -Here’s the copy using the blocking API: - -``` js -let fs = vertx.fileSystem(); - -// Copy file from foo.txt to bar.txt synchronously -fs.copyBlocking("foo.txt", "bar.txt"); -``` - -Many operations exist to copy, move, truncate, chmod and many other file -operations. We won’t list them all here, please consult the `API docs` -for the full list. - -Let’s see a couple of examples using asynchronous methods: - -``` js -import { Buffer } from "@vertx/core" -// Read a file -vertx.fileSystem().readFile("target/classes/readme.txt", (result) => { - if (result.succeeded()) { - console.log(result.result()); - } else { - console.error("Oh oh ..." + result.cause()); - } -}); - -// Copy a file -vertx.fileSystem().copy("target/classes/readme.txt", "target/classes/readme2.txt", (result) => { - if (result.succeeded()) { - console.log("File copied"); - } else { - console.error("Oh oh ..." + result.cause()); - } -}); - -// Write a file -vertx.fileSystem().writeFile("target/classes/hello.txt", Buffer.buffer("Hello"), (result) => { - if (result.succeeded()) { - console.log("File written"); - } else { - console.error("Oh oh ..." + result.cause()); - } -}); - -// Check existence and delete -vertx.fileSystem().exists("target/classes/junk.txt", (result) => { - if (result.succeeded() && result.result()) { - vertx.fileSystem().delete("target/classes/junk.txt", (r) => { - console.log("File deleted"); - }); - } else { - console.error("Oh oh ... - cannot delete the file: " + result.cause()); - } -}); -``` - -## Asynchronous files - -Vert.x provides an asynchronous file abstraction that allows you to -manipulate a file on the file system. - -You open an `AsyncFile` as follows: - -``` js -let options = new OpenOptions(); -fileSystem.open("myfile.txt", options, (res) => { - if (res.succeeded()) { - let file = res.result(); - } else { - // Something went wrong! - } -}); -``` - -`AsyncFile` implements `ReadStream` and `WriteStream` so you can *pipe* -files to and from other stream objects such as net sockets, http -requests and responses, and WebSockets. - -They also allow you to read and write directly to them. - -### Random access writes - -To use an `AsyncFile` for random access writing you use the `write` -method. - -The parameters to the method are: - - - `buffer`: the buffer to write. - - - `position`: an integer position in the file where to write the - buffer. If the position is greater or equal to the size of the file, - the file will be enlarged to accommodate the offset. - - - `handler`: the result handler - -Here is an example of random access writes: - -``` js -import { Buffer } from "@vertx/core" -vertx.fileSystem().open("target/classes/hello.txt", new OpenOptions(), (result) => { - if (result.succeeded()) { - let file = result.result(); - let buff = Buffer.buffer("foo"); - for (let i = 0;i < 5;i++) { - file.write(buff, buff.length() * i, (ar) => { - if (ar.succeeded()) { - console.log("Written ok!"); - // etc - } else { - console.error("Failed to write: " + ar.cause()); - } - }); - } - } else { - console.error("Cannot open file " + result.cause()); - } -}); -``` - -### Random access reads - -To use an `AsyncFile` for random access reads you use the `read` method. - -The parameters to the method are: - - - `buffer`: the buffer into which the data will be read. - - - `offset`: an integer offset into the buffer where the read data will - be placed. - - - `position`: the position in the file where to read data from. - - - `length`: the number of bytes of data to read - - - `handler`: the result handler - -Here’s an example of random access reads: - -``` js -import { Buffer } from "@vertx/core" -vertx.fileSystem().open("target/classes/les_miserables.txt", new OpenOptions(), (result) => { - if (result.succeeded()) { - let file = result.result(); - let buff = Buffer.buffer(1000); - for (let i = 0;i < 10;i++) { - file.read(buff, i * 100, i * 100, 100, (ar) => { - if (ar.succeeded()) { - console.log("Read ok!"); - } else { - console.error("Failed to write: " + ar.cause()); - } - }); - } - } else { - console.error("Cannot open file " + result.cause()); - } -}); -``` - -### Opening Options - -When opening an `AsyncFile`, you pass an `OpenOptions` instance. These -options describe the behavior of the file access. For instance, you can -configure the file permissions with the `setRead`, `setWrite` and -`setPerms` methods. - -You can also configure the behavior if the open file already exists with -`setCreateNew` and `setTruncateExisting`. - -You can also mark the file to be deleted on close or when the JVM is -shutdown with `setDeleteOnClose`. - -### Flushing data to underlying storage. - -In the `OpenOptions`, you can enable/disable the automatic -synchronisation of the content on every write using `setDsync`. In that -case, you can manually flush any writes from the OS cache by calling the -`flush` method. - -This method can also be called with an handler which will be called when -the flush is complete. - -### Using AsyncFile as ReadStream and WriteStream - -`AsyncFile` implements `ReadStream` and `WriteStream`. You can then use -them with a *pipe* to pipe data to and from other read and write -streams. For example, this would copy the content to another -`AsyncFile`: - -``` js -let output = vertx.fileSystem().openBlocking("target/classes/plagiary.txt", new OpenOptions()); - -vertx.fileSystem().open("target/classes/les_miserables.txt", new OpenOptions(), (result) => { - if (result.succeeded()) { - let file = result.result(); - file.pipeTo(output, (ar) => { - if (ar.succeeded()) { - console.log("Copy done"); - } - }); - } else { - console.error("Cannot open file " + result.cause()); - } -}); -``` - -You can also use the *pipe* to write file content into HTTP responses, -or more generally in any `WriteStream`. - -### Accessing files from the classpath - -When vert.x cannot find the file on the filesystem it tries to resolve -the file from the class path. Note that classpath resource paths never -start with a `/`. - -Due to the fact that Java does not offer async access to classpath -resources, the file is copied to the filesystem in a worker thread when -the classpath resource is accessed the very first time and served from -there asynchronously. When the same resource is accessed a second time, -the file from the filesystem is served directly from the filesystem. The -original content is served even if the classpath resource changes (e.g. -in a development system). - -This caching behaviour can be set on the `setFileCachingEnabled` option. -The default value of this option is `true` unless the system property -`vertx.disableFileCaching` is defined. - -The path where the files are cached is `.vertx` by default and can be -customized by setting the system property `vertx.cacheDirBase`. - -The whole classpath resolving feature can be disabled system-wide by -setting the system property `vertx.disableFileCPResolving` to `true`. - -> **Note** -> -> these system properties are evaluated once when the the -> `io.vertx.core.file.FileSystemOptions` class is loaded, so these -> properties should be set before loading this class or as a JVM system -> property when launching it. - -If you want to disable classpath resolving for a particular application -but keep it enabled by default system-wide, you can do so via the -`setClassPathResolvingEnabled` option. - -### Closing an AsyncFile - -To close an `AsyncFile` call the `close` method. Closing is asynchronous -and if you want to be notified when the close has been completed you can -specify a handler function as an argument. - -# Datagram sockets (UDP) - -Using User Datagram Protocol (UDP) with Vert.x is a piece of cake. - -UDP is a connection-less transport which basically means you have no -persistent connection to a remote peer. - -Instead you can send and receive packages and the remote address is -contained in each of them. - -Beside this UDP is not as safe as TCP to use, which means there are no -guarantees that a send Datagram packet will receive it’s endpoint at -all. - -The only guarantee is that it will either receive complete or not at -all. - -Also you usually can’t send data which is bigger then the MTU size of -your network interface, this is because each packet will be send as one -packet. - -But be aware even if the packet size is smaller then the MTU it may -still fail. - -At which size it will fail depends on the Operating System etc. So rule -of thumb is to try to send small packets. - -Because of the nature of UDP it is best fit for Applications where you -are allowed to drop packets (like for example a monitoring application). - -The benefits are that it has a lot less overhead compared to TCP, which -can be handled by the NetServer and NetClient (see above). - -## Creating a DatagramSocket - -To use UDP you first need t create a `DatagramSocket`. It does not -matter here if you only want to send data or send and receive. - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -``` - -The returned `DatagramSocket` will not be bound to a specific port. This -is not a problem if you only want to send data (like a client), but more -on this in the next section. - -## Sending Datagram packets - -As mentioned before, User Datagram Protocol (UDP) sends data in packets -to remote peers but is not connected to them in a persistent fashion. - -This means each packet can be sent to a different remote peer. - -Sending packets is as easy as shown here: - -``` js -import { Buffer } from "@vertx/core" -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -let buffer = Buffer.buffer("content"); -// Send a Buffer -socket.send(buffer, 1234, "10.0.0.1", (asyncResult) => { - console.log("Send succeeded? " + asyncResult.succeeded()); -}); -// Send a String -socket.send("A string used as content", 1234, "10.0.0.1", (asyncResult) => { - console.log("Send succeeded? " + asyncResult.succeeded()); -}); -``` - -## Receiving Datagram packets - -If you want to receive packets you need to bind the `DatagramSocket` by -calling `listen(…​)}` on it. - -This way you will be able to receive ``DatagramPacket`s that were sent -to the address and port on -which the `DatagramSocket`` listens. - -Beside this you also want to set a `Handler` which will be called for -each received `DatagramPacket`. - -The `DatagramPacket` has the following methods: - - - `sender`: The InetSocketAddress which represent the sender of the - packet - - - `data`: The Buffer which holds the data which was received. - -So to listen on a specific address and port you would do something like -shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -socket.listen(1234, "0.0.0.0", (asyncResult) => { - if (asyncResult.succeeded()) { - socket.handler((packet) => { - // Do something with the packet - }); - } else { - console.log("Listen failed" + asyncResult.cause()); - } -}); -``` - -Be aware that even if the {code AsyncResult} is successed it only means -it might be written on the network stack, but gives no guarantee that it -ever reached or will reach the remote peer at all. - -If you need such a guarantee then you want to use TCP with some -handshaking logic build on top. - -## Multicast - -### Sending Multicast packets - -Multicast allows multiple sockets to receive the same packets. This -works by having the sockets join the same multicast group to which you -can then send packets. - -We will look at how you can join a Multicast Group and receive packets -in the next section. - -Sending multicast packets is not different than sending normal Datagram -packets. The difference is that you pass in a multicast group address to -the send method. - -This is show here: - -``` js -import { Buffer } from "@vertx/core" -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -let buffer = Buffer.buffer("content"); -// Send a Buffer to a multicast address -socket.send(buffer, 1234, "230.0.0.1", (asyncResult) => { - console.log("Send succeeded? " + asyncResult.succeeded()); -}); -``` - -All sockets that have joined the multicast group 230.0.0.1 will receive -the packet. - -#### Receiving Multicast packets - -If you want to receive packets for specific Multicast group you need to -bind the `DatagramSocket` by calling `listen(…​)` on it to join the -Multicast group. - -This way you will receive DatagramPackets that were sent to the address -and port on which the `DatagramSocket` listens and also to those sent to -the Multicast group. - -Beside this you also want to set a Handler which will be called for each -received DatagramPacket. - -The `DatagramPacket` has the following methods: - - - `sender()`: The InetSocketAddress which represent the sender of the - packet - - - `data()`: The Buffer which holds the data which was received. - -So to listen on a specific address and port and also receive packets for -the Multicast group 230.0.0.1 you would do something like shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -socket.listen(1234, "0.0.0.0", (asyncResult) => { - if (asyncResult.succeeded()) { - socket.handler((packet) => { - // Do something with the packet - }); - - // join the multicast group - socket.listenMulticastGroup("230.0.0.1", (asyncResult2) => { - console.log("Listen succeeded? " + asyncResult2.succeeded()); - }); - } else { - console.log("Listen failed" + asyncResult.cause()); - } -}); -``` - -#### Unlisten / leave a Multicast group - -There are sometimes situations where you want to receive packets for a -Multicast group for a limited time. - -In this situations you can first start to listen for them and then later -unlisten. - -This is shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); -socket.listen(1234, "0.0.0.0", (asyncResult) => { - if (asyncResult.succeeded()) { - socket.handler((packet) => { - // Do something with the packet - }); - - // join the multicast group - socket.listenMulticastGroup("230.0.0.1", (asyncResult2) => { - if (asyncResult2.succeeded()) { - // will now receive packets for group - - // do some work - - socket.unlistenMulticastGroup("230.0.0.1", (asyncResult3) => { - console.log("Unlisten succeeded? " + asyncResult3.succeeded()); - }); - } else { - console.log("Listen failed" + asyncResult2.cause()); - } - }); - } else { - console.log("Listen failed" + asyncResult.cause()); - } -}); -``` - -#### Blocking multicast - -Beside unlisten a Multicast address it’s also possible to just block -multicast for a specific sender address. - -Be aware this only work on some Operating Systems and kernel versions. -So please check the Operating System documentation if it’s supported. - -This an expert feature. - -To block multicast from a specific address you can call -`blockMulticastGroup(…​)` on the DatagramSocket like shown here: - -``` js -let socket = vertx.createDatagramSocket(new DatagramSocketOptions()); - -// Some code - -// This would block packets which are send from 10.0.0.2 -socket.blockMulticastGroup("230.0.0.1", "10.0.0.2", (asyncResult) => { - console.log("block succeeded? " + asyncResult.succeeded()); -}); -``` - -### DatagramSocket properties - -When creating a `DatagramSocket` there are multiple properties you can -set to change it’s behaviour with the `DatagramSocketOptions` object. -Those are listed here: - - - `setSendBufferSize` Sets the send buffer size in bytes. - - - `setReceiveBufferSize` Sets the TCP receive buffer size in bytes. - - - `setReuseAddress` If true then addresses in TIME\_WAIT state can be - reused after they have been closed. - - - `setTrafficClass` - - - `setBroadcast` Sets or clears the SO\_BROADCAST socket option. When - this option is set, Datagram (UDP) packets may be sent to a local - interface’s broadcast address. - - - `setMulticastNetworkInterface` Sets or clears the - IP\_MULTICAST\_LOOP socket option. When this option is set, - multicast packets will also be received on the local interface. - - - `setMulticastTimeToLive` Sets the IP\_MULTICAST\_TTL socket option. - TTL stands for "Time to Live," but in this context it specifies the - number of IP hops that a packet is allowed to go through, - specifically for multicast traffic. Each router or gateway that - forwards a packet decrements the TTL. If the TTL is decremented to 0 - by a router, it will not be forwarded. - -### DatagramSocket Local Address - -You can find out the local address of the socket (i.e. the address of -this side of the UDP Socket) by calling `localAddress`. This will only -return an `InetSocketAddress` if you bound the `DatagramSocket` with -`listen(…​)` before, otherwise it will return null. - -### Closing a DatagramSocket - -You can close a socket by invoking the `close` method. This will close -the socket and release all resources - -# DNS client - -Often you will find yourself in situations where you need to obtain DNS -informations in an asynchronous fashion. Unfortunally this is not -possible with the API that is shipped with the Java Virtual Machine -itself. Because of this Vert.x offers it’s own API for DNS resolution -which is fully asynchronous. - -To obtain a DnsClient instance you will create a new via the Vertx -instance. - -``` js -let client = vertx.createDnsClient(53, "10.0.0.1"); -``` - -You can also create the client with options and configure the query -timeout. - -``` js -let client = vertx.createDnsClient(new DnsClientOptions() - .setPort(53) - .setHost("10.0.0.1") - .setQueryTimeout(10000)); -``` - -Creating the client with no arguments or omitting the server address -will use the address of the server used internally for non blocking -address resolution. - -``` js -let client1 = vertx.createDnsClient(); - -// Just the same but with a different query timeout -let client2 = vertx.createDnsClient(new DnsClientOptions() - .setQueryTimeout(10000)); -``` - -## lookup - -Try to lookup the A (ipv4) or AAAA (ipv6) record for a given name. The -first which is returned will be used, so it behaves the same way as you -may be used from when using "nslookup" on your operation system. - -To lookup the A / AAAA record for "vertx.io" you would typically use it -like: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.lookup("vertx.io", (ar) => { - if (ar.succeeded()) { - console.log(ar.result()); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## lookup4 - -Try to lookup the A (ipv4) record for a given name. The first which is -returned will be used, so it behaves the same way as you may be used -from when using "nslookup" on your operation system. - -To lookup the A record for "vertx.io" you would typically use it like: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.lookup4("vertx.io", (ar) => { - if (ar.succeeded()) { - console.log(ar.result()); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## lookup6 - -Try to lookup the AAAA (ipv6) record for a given name. The first which -is returned will be used, so it behaves the same way as you may be used -from when using "nslookup" on your operation system. - -To lookup the A record for "vertx.io" you would typically use it like: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.lookup6("vertx.io", (ar) => { - if (ar.succeeded()) { - console.log(ar.result()); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveA - -Try to resolve all A (ipv4) records for a given name. This is quite -similar to using "dig" on unix like operation systems. - -To lookup all the A records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveA("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveAAAA - -Try to resolve all AAAA (ipv6) records for a given name. This is quite -similar to using "dig" on unix like operation systems. - -To lookup all the AAAAA records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveAAAA("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveCNAME - -Try to resolve all CNAME records for a given name. This is quite similar -to using "dig" on unix like operation systems. - -To lookup all the CNAME records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveCNAME("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveMX - -Try to resolve all MX records for a given name. The MX records are used -to define which Mail-Server accepts emails for a given domain. - -To lookup all the MX records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveMX("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -Be aware that the List will contain the `MxRecord` sorted by the -priority of them, which means MX records with smaller priority coming -first in the List. - -The `MxRecord` allows you to access the priority and the name of the MX -record by offer methods for it like: - -``` js -record.priority(); -record.name(); -``` - -## resolveTXT - -Try to resolve all TXT records for a given name. TXT records are often -used to define extra informations for a domain. - -To resolve all the TXT records for "vertx.io" you could use something -along these lines: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveTXT("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveNS - -Try to resolve all NS records for a given name. The NS records specify -which DNS Server hosts the DNS informations for a given domain. - -To resolve all the NS records for "vertx.io" you could use something -along these lines: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveNS("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## resolveSRV - -Try to resolve all SRV records for a given name. The SRV records are -used to define extra informations like port and hostname of services. -Some protocols need this extra informations. - -To lookup all the SRV records for "vertx.io" you would typically do: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolveSRV("vertx.io", (ar) => { - if (ar.succeeded()) { - let records = ar.result(); - records.forEach(record => { - console.log(record); - }); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -Be aware that the List will contain the SrvRecords sorted by the -priority of them, which means SrvRecords with smaller priority coming -first in the List. - -The `SrvRecord` allows you to access all informations contained in the -SRV record itself: - -``` js -record.priority(); -record.name(); -record.weight(); -record.port(); -record.protocol(); -record.service(); -record.target(); -``` - -Please refer to the API docs for the exact details. - -## resolvePTR - -Try to resolve the PTR record for a given name. The PTR record maps an -ipaddress to a name. - -To resolve the PTR record for the ipaddress 10.0.0.1 you would use the -PTR notion of "1.0.0.10.in-addr.arpa" - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.resolvePTR("1.0.0.10.in-addr.arpa", (ar) => { - if (ar.succeeded()) { - let record = ar.result(); - console.log(record); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## reverseLookup - -Try to do a reverse lookup for an ipaddress. This is basically the same -as resolve a PTR record, but allows you to just pass in the ipaddress -and not a valid PTR query string. - -To do a reverse lookup for the ipaddress 10.0.0.1 do something similar -like this: - -``` js -let client = vertx.createDnsClient(53, "9.9.9.9"); -client.reverseLookup("10.0.0.1", (ar) => { - if (ar.succeeded()) { - let record = ar.result(); - console.log(record); - } else { - console.log("Failed to resolve entry" + ar.cause()); - } -}); -``` - -## Error handling - -As you saw in previous sections the DnsClient allows you to pass in a -Handler which will be notified with an AsyncResult once the query was -complete. In case of an error it will be notified with a DnsException -which will hole a {@link io.vertx.core.dns.DnsResponseCode} that -indicate why the resolution failed. This DnsResponseCode can be used to -inspect the cause in more detail. - -Possible DnsResponseCodes are: - - - {@link io.vertx.core.dns.DnsResponseCode\#NOERROR} No record was - found for a given query - - - {@link io.vertx.core.dns.DnsResponseCode\#FORMERROR} Format error - - - {@link io.vertx.core.dns.DnsResponseCode\#SERVFAIL} Server failure - - - {@link io.vertx.core.dns.DnsResponseCode\#NXDOMAIN} Name error - - - {@link io.vertx.core.dns.DnsResponseCode\#NOTIMPL} Not implemented - by DNS Server - - - {@link io.vertx.core.dns.DnsResponseCode\#REFUSED} DNS Server - refused the query - - - {@link io.vertx.core.dns.DnsResponseCode\#YXDOMAIN} Domain name - should not exist - - - {@link io.vertx.core.dns.DnsResponseCode\#YXRRSET} Resource record - should not exist - - - {@link io.vertx.core.dns.DnsResponseCode\#NXRRSET} RRSET does not - exist - - - {@link io.vertx.core.dns.DnsResponseCode\#NOTZONE} Name not in zone - - - {@link io.vertx.core.dns.DnsResponseCode\#BADVERS} Bad extension - mechanism for version - - - {@link io.vertx.core.dns.DnsResponseCode\#BADSIG} Bad signature - - - {@link io.vertx.core.dns.DnsResponseCode\#BADKEY} Bad key - - - {@link io.vertx.core.dns.DnsResponseCode\#BADTIME} Bad timestamp - -All of those errors are "generated" by the DNS Server itself. - -You can obtain the DnsResponseCode from the DnsException like: - -``` java -{@link docoverride.dns.Examples#example16} -``` - -# Streams - -There are several objects in Vert.x that allow items to be read from and -written. - -In previous versions the `io.vertx.core.streams` package was -manipulating `Buffer` objects exclusively. From now, streams are not -coupled to buffers anymore and they work with any kind of objects. - -In Vert.x, write calls return immediately, and writes are queued -internally. - -It’s not hard to see that if you write to an object faster than it can -actually write the data to its underlying resource, then the write queue -can grow unbounded - eventually resulting in memory exhaustion. - -To solve this problem a simple flow control (*back-pressure*) capability -is provided by some objects in the Vert.x API. - -Any flow control aware object that can be *written-to* implements -`WriteStream`, while any flow control object that can be *read-from* is -said to implement `ReadStream`. - -Let’s take an example where we want to read from a `ReadStream` then -write the data to a `WriteStream`. - -A very simple example would be reading from a `NetSocket` then writing -back to the same `NetSocket` - since `NetSocket` implements both -`ReadStream` and `WriteStream`. Note that this works between any -`ReadStream` and `WriteStream` compliant object, including HTTP -requests, HTTP responses, async files I/O, WebSockets, etc. - -A naive way to do this would be to directly take the data that has been -read and immediately write it to the `NetSocket`: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - // Write the data straight back - sock.write(buffer); - }); -}).listen(); -``` - -There is a problem with the example above: if data is read from the -socket faster than it can be written back to the socket, it will build -up in the write queue of the `NetSocket`, eventually running out of RAM. -This might happen, for example if the client at the other end of the -socket wasn’t reading fast enough, effectively putting back-pressure on -the connection. - -Since `NetSocket` implements `WriteStream`, we can check if the -`WriteStream` is full before writing to it: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - if (!sock.writeQueueFull()) { - sock.write(buffer); - } - }); - -}).listen(); -``` - -This example won’t run out of RAM but we’ll end up losing data if the -write queue gets full. What we really want to do is pause the -`NetSocket` when the write queue is full: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - sock.write(buffer); - if (sock.writeQueueFull()) { - sock.pause(); - } - }); -}).listen(); -``` - -We’re almost there, but not quite. The `NetSocket` now gets paused when -the file is full, but we also need to unpause it when the write queue -has processed its backlog: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - sock.write(buffer); - if (sock.writeQueueFull()) { - sock.pause(); - sock.drainHandler((done) => { - sock.resume(); - }); - } - }); -}).listen(); -``` - -And there we have it. The `drainHandler` event handler will get called -when the write queue is ready to accept more data, this resumes the -`NetSocket` that allows more data to be read. - -Wanting to do this is quite common while writing Vert.x applications, so -we added the `pipeTo` method that does all of this hard work for you. -You just feed it the `WriteStream` and use it: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.pipeTo(sock); -}).listen(); -``` - -This does exactly the same thing as the more verbose example, plus it -handles stream failures and termination: the destination `WriteStream` -is ended when the pipe completes with success or a failure. - -You can be notified when the operation completes: - -``` js -server.connectHandler((sock) => { - - // Pipe the socket providing an handler to be notified of the result - sock.pipeTo(sock, (ar) => { - if (ar.succeeded()) { - console.log("Pipe succeeded"); - } else { - console.log("Pipe failed"); - } - }); -}).listen(); -``` - -When you deal with an asynchronous destination, you can create a `Pipe` -instance that pauses the source and resumes it when the source is piped -to the destination: - -``` js -server.connectHandler((sock) => { - - // Create a pipe to use asynchronously - let pipe = sock.pipe(); - - // Open a destination file - fs.open("/path/to/file", new OpenOptions(), (ar) => { - if (ar.succeeded()) { - let file = ar.result(); - - // Pipe the socket to the file and close the file at the end - pipe.to(file); - } else { - sock.close(); - } - }); -}).listen(); -``` - -When you need to abort the transfer, you need to close it: - -``` js -vertx.createHttpServer().requestHandler((request) => { - - // Create a pipe that to use asynchronously - let pipe = request.pipe(); - - // Open a destination file - fs.open("/path/to/file", new OpenOptions(), (ar) => { - if (ar.succeeded()) { - let file = ar.result(); - - // Pipe the socket to the file and close the file at the end - pipe.to(file); - } else { - // Close the pipe and resume the request, the body buffers will be discarded - pipe.close(); - - // Send an error response - request.response().setStatusCode(500).end(); - } - }); -}).listen(8080); -``` - -When the pipe is closed, the streams handlers are unset and the -`ReadStream` resumed. - -As seen above, by default the destination is always ended when the -stream completes, you can control this behavior on the pipe object: - - - `endOnFailure` controls the behavior when a failure happens - - - `endOnSuccess` controls the behavior when the read stream ends - - - `endOnComplete` controls the behavior in all cases - -Here is a short example: - -``` js -import { Buffer } from "@vertx/core" -src.pipe().endOnSuccess(false).to(dst, (rs) => { - // Append some text and close the file - dst.end(Buffer.buffer("done")); -}); -``` - -Let’s now look at the methods on `ReadStream` and `WriteStream` in more -detail: - -## ReadStream - -`ReadStream` is implemented by `HttpClientResponse`, `DatagramSocket`, -`HttpClientRequest`, `HttpServerFileUpload`, `HttpServerRequest`, -`MessageConsumer`, `NetSocket`, `WebSocket`, `TimeoutStream`, -`AsyncFile`. - -Functions: - - - `handler`: set a handler which will receive items from the - ReadStream. - - - `pause`: pause the handler. When paused no items will be received in - the handler. - - - `resume`: resume the handler. The handler will be called if any item - arrives. - - - `exceptionHandler`: Will be called if an exception occurs on the - ReadStream. - - - `endHandler`: Will be called when end of stream is reached. This - might be when EOF is reached if the ReadStream represents a file, or - when end of request is reached if it’s an HTTP request, or when the - connection is closed if it’s a TCP socket. - -## WriteStream - -`WriteStream` is implemented by `HttpClientRequest`, -`HttpServerResponse` `WebSocket`, `NetSocket`, `AsyncFile`, and -`MessageProducer` - -Functions: - - - `write`: write an object to the WriteStream. This method will never - block. Writes are queued internally and asynchronously written to - the underlying resource. - - - `setWriteQueueMaxSize`: set the number of object at which the write - queue is considered *full*, and the method `writeQueueFull` returns - `true`. Note that, when the write queue is considered full, if write - is called the data will still be accepted and queued. The actual - number depends on the stream implementation, for `Buffer` the size - represents the actual number of bytes written and not the number of - buffers. - - - `writeQueueFull`: returns `true` if the write queue is considered - full. - - - `exceptionHandler`: Will be called if an exception occurs on the - `WriteStream`. - - - `drainHandler`: The handler will be called if the `WriteStream` is - considered no longer full. - -## Pump - -The pump exposes a subset of the pipe API and only transfers the items -between streams, it does not handle the completion or failure of the -transfer operation. - -``` js -import { Pump } from "@vertx/core" -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - Pump.pump(sock, sock).start(); -}).listen(); -``` - -> **Important** -> -> Before Vert.x 3.7 the `Pump` was the advocated API for transferring a -> read stream to a write stream. Since 3.7 the pipe API supersedes the -> pump API. - -Instances of Pump have the following methods: - - - `start`: Start the pump. - - - `stop`: Stops the pump. When the pump starts it is in stopped mode. - - - `setWriteQueueMaxSize`: This has the same meaning as - `setWriteQueueMaxSize` on the `WriteStream`. - -A pump can be started and stopped multiple times. - -When a pump is first created it is *not* started. You need to call the -`start()` method to start it. - -# Record Parser - -The record parser allows you to easily parse protocols which are -delimited by a sequence of bytes, or fixed size records. It transforms a -sequence of input buffer to a sequence of buffer structured as -configured (either fixed size or separated records). - -For example, if you have a simple ASCII text protocol delimited by '\\n' -and the input is the following: - - buffer1:HELLO\nHOW ARE Y - buffer2:OU?\nI AM - buffer3: DOING OK - buffer4:\n - -The record parser would produce - - buffer1:HELLO - buffer2:HOW ARE YOU? - buffer3:I AM DOING OK - -Let’s see the associated code: - -``` js -import { RecordParser } from "@vertx/core" -import { Buffer } from "@vertx/core" -let parser = RecordParser.newDelimited("\n", (h) => { - console.log(h.toString()); -}); - -parser.handle(Buffer.buffer("HELLO\nHOW ARE Y")); -parser.handle(Buffer.buffer("OU?\nI AM")); -parser.handle(Buffer.buffer("DOING OK")); -parser.handle(Buffer.buffer("\n")); -``` - -You can also produce fixed sized chunks as follows: - -``` js -import { RecordParser } from "@vertx/core" -RecordParser.newFixed(4, (h) => { - console.log(h.toString()); -}); -``` - -For more details, check out the `RecordParser` class. - -# Json Parser - -You can easily parse JSON structures but that requires to provide the -JSON content at once, but it may not be convenient when you need to -parse very large structures. - -The non-blocking JSON parser is an event driven parser able to deal with -very large structures. It transforms a sequence of input buffer to a -sequence of JSON parse events. - -``` js -Code not translatable -``` - -The parser is non-blocking and emitted events are driven by the input -buffers. - -``` js -import { JsonParser } from "@vertx/core" -import { Buffer } from "@vertx/core" - -let parser = JsonParser.newParser(); - -// start array event -// start object event -// "firstName":"Bob" event -parser.handle(Buffer.buffer("[{\"firstName\":\"Bob\",")); - -// "lastName":"Morane" event -// end object event -parser.handle(Buffer.buffer("\"lastName\":\"Morane\"},")); - -// start object event -// "firstName":"Luke" event -// "lastName":"Lucky" event -// end object event -parser.handle(Buffer.buffer("{\"firstName\":\"Luke\",\"lastName\":\"Lucky\"}")); - -// end array event -parser.handle(Buffer.buffer("]")); - -// Always call end -parser.end(); -``` - -Event driven parsing provides more control but comes at the price of -dealing with fine grained events, which can be inconvenient sometimes. -The JSON parser allows you to handle JSON structures as values when it -is desired: - -``` js -Code not translatable -``` - -The value mode can be set and unset during the parsing allowing you to -switch between fine grained events or JSON object value events. - -``` js -Code not translatable -``` - -You can do the same with arrays as well - -``` js -Code not translatable -``` - -You can also decode POJOs - -``` js -parser.handler((event) => { - // Handle each object - // Get the field in which this object was parsed - let id = event.fieldName(); - let user = event.mapTo(Java.type("examples.ParseToolsExamples.User").class); - console.log("User with id " + id + " : " + user.firstName + " " + user.lastName); -}); -``` - -Whenever the parser fails to process a buffer, an exception will be -thrown unless you set an exception handler: - -``` js -import { JsonParser } from "@vertx/core" - -let parser = JsonParser.newParser(); - -parser.exceptionHandler((err) => { - // Catch any parsing or decoding error -}); -``` - -The parser also parses json streams: - - - concatenated json streams: `{"temperature":30}{"temperature":50}` - - - line delimited json streams: `{"an":"object"}\r\n3\r\n"a - string"\r\nnull` - -For more details, check out the `JsonParser` class. - -# Thread safety - -Most Vert.x objects are safe to access from different threads. *However* -performance is optimised when they are accessed from the same context -they were created from. - -For example if you have deployed a verticle which creates a `NetServer` -which provides `NetSocket` instances in it’s handler, then it’s best to -always access that socket instance from the event loop of the verticle. - -If you stick to the standard Vert.x verticle deployment model and avoid -sharing objects between verticles then this should be the case without -you having to think about it. - -# Metrics SPI - -By default Vert.x does not record any metrics. Instead it provides an -SPI for others to implement which can be added to the classpath. The -metrics SPI is an advanced feature which allows implementers to capture -events from Vert.x in order to gather metrics. For more information on -this, please consult the `API Documentation`. - -You can also specify a metrics factory programmatically if embedding -Vert.x using `setFactory`. - -# OSGi - -Vert.x Core is packaged as an OSGi bundle, so can be used in any OSGi -R4.2+ environment such as Apache Felix or Eclipse Equinox. The bundle -exports `io.vertx.core*`. - -However, the bundle has some dependencies on Jackson and Netty. To get -the vert.x core bundle resolved deploy: - - - Jackson Annotation \[2.6.0,3) - - - Jackson Core \[2.6.2,3) - - - Jackson Databind \[2.6.2,3) - - - Netty Buffer \[4.0.31,5) - - - Netty Codec \[4.0.31,5) - - - Netty Codec/Socks \[4.0.31,5) - - - Netty Codec/Common \[4.0.31,5) - - - Netty Codec/Handler \[4.0.31,5) - - - Netty Codec/Transport \[4.0.31,5) - -Here is a working deployment on Apache Felix 5.2.0: - - 14|Active | 1|Jackson-annotations (2.6.0) - 15|Active | 1|Jackson-core (2.6.2) - 16|Active | 1|jackson-databind (2.6.2) - 18|Active | 1|Netty/Buffer (4.0.31.Final) - 19|Active | 1|Netty/Codec (4.0.31.Final) - 20|Active | 1|Netty/Codec/HTTP (4.0.31.Final) - 21|Active | 1|Netty/Codec/Socks (4.0.31.Final) - 22|Active | 1|Netty/Common (4.0.31.Final) - 23|Active | 1|Netty/Handler (4.0.31.Final) - 24|Active | 1|Netty/Transport (4.0.31.Final) - 25|Active | 1|Netty/Transport/SCTP (4.0.31.Final) - 26|Active | 1|Vert.x Core (3.1.0) - -On Equinox, you may want to disable the `ContextFinder` with the -following framework property: `eclipse.bundle.setTCCL=false` - -# The 'vertx' command line - -The `vertx` command is used to interact with Vert.x from the command -line. It’s main use is to run Vert.x verticles. To do this you need to -download and install a Vert.x distribution, and add the `bin` directory -of the installation to your `PATH` environment variable. Also make sure -you have a Java 8 JDK on your `PATH`. - -> **Note** -> -> The JDK is required to support on the fly compilation of Java code. - -## Run verticles - -You can run raw Vert.x verticles directly from the command line using -`vertx run`. Here is a couple of examples of the `run` *command*: - - vertx run my-verticle.js (1) - vertx run my-verticle.groovy (2) - vertx run my-verticle.rb (3) - - vertx run io.vertx.example.MyVerticle (4) - vertx run io.vertx.example.MVerticle -cp my-verticle.jar (5) - - vertx run MyVerticle.java (6) - -1. Deploys a JavaScript verticle - -2. Deploys a Groovy verticle - -3. Deploys a Ruby verticle - -4. Deploys an already compiled Java verticle. Classpath root is the - current directory - -5. Deploys a verticle packaged in a Jar, the jar need to be in the - classpath - -6. Compiles the Java source and deploys it - -As you can see in the case of Java, the name can either be the fully -qualified class name of the verticle, or you can specify the Java Source -file directly and Vert.x compiles it for you. - -You can also prefix the verticle with the name of the language -implementation to use. For example if the verticle is a compiled Groovy -class, you prefix it with `groovy:` so that Vert.x knows it’s a Groovy -class not a Java class. - - vertx run groovy:io.vertx.example.MyGroovyVerticle - -The `vertx run` command can take a few optional parameters, they are: - - - `-options ` - Provides the Vert.x options. `options` is the - name of a JSON file that represents the Vert.x options, or a JSON - string. This is optional. - - - `-conf ` - Provides some configuration to the verticle. - `config` is the name of a JSON file that represents the - configuration for the verticle, or a JSON string. This is optional. - - - `-cp ` - The path on which to search for the verticle and any - other resources used by the verticle. This defaults to `.` (current - directory). If your verticle references other scripts, classes or - other resources (e.g. jar files) then make sure these are on this - path. The path can contain multiple path entries separated by `:` - (colon) or `;` (semi-colon) depending on the operating system. Each - path entry can be an absolute or relative path to a directory - containing scripts, or absolute or relative filenames for jar or zip - files. An example path might be `-cp - classes:lib/otherscripts:jars/myjar.jar:jars/otherjar.jar`. Always - use the path to reference any resources that your verticle requires. - Do **not** put them on the system classpath as this can cause - isolation issues between deployed verticles. - - - `-instances ` - The number of instances of the verticle - to instantiate. Each verticle instance is strictly single threaded - so to scale your application across available cores you might want - to deploy more than one instance. If omitted a single instance will - be deployed. - - - `-worker` - This option determines whether the verticle is a worker - verticle or not. - - - `-cluster` - This option determines whether the Vert.x instance will - attempt to form a cluster with other Vert.x instances on the - network. Clustering Vert.x instances allows Vert.x to form a - distributed event bus with other nodes. Default is `false` (not - clustered). - - - `-cluster-port` - If the `cluster` option has also been specified - then this determines which port will be bound for cluster - communication with other Vert.x instances. Default is `0` - which - means '*choose a free random port*'. You don’t usually need to - specify this parameter unless you really need to bind to a specific - port. - - - `-cluster-host` - If the `cluster` option has also been specified - then this determines which host address will be bound for cluster - communication with other Vert.x instances. By default it will try - and pick one from the available interfaces. If you have more than - one interface and you want to use a specific one, specify it here. - - - `-cluster-public-port` - If the `cluster` option has also been - specified then this determines which port will be advertised for - cluster communication with other Vert.x instances. Default is `-1`, - which means same as `cluster-port`. - - - `-cluster-public-host` - If the `cluster` option has also been - specified then this determines which host address will be advertised - for cluster communication with other Vert.x instances. If not - specified, Vert.x uses the value of `cluster-host`. - - - `-ha` - if specified the verticle will be deployed as high - availability (HA) deployment. See related section for more details - - - `-quorum` - used in conjunction with `-ha`. It specifies the minimum - number of nodes in the cluster for any *HA deploymentIDs* to be - active. Defaults to 0. - - - `-hagroup` - used in conjunction with `-ha`. It specifies the HA - group this node will join. There can be multiple HA groups in a - cluster. Nodes will only failover to other nodes in the same group. - The default value is \` \_\_DEFAULT\_\_\` - -You can also set system properties using: `-Dkey=value`. - -Here are some more examples: - -Run a JavaScript verticle server.js with default settings - - vertx run server.js - -Run 10 instances of a pre-compiled Java verticle specifying classpath - - vertx run com.acme.MyVerticle -cp "classes:lib/myjar.jar" -instances 10 - -Run 10 instances of a Java verticle by source *file* - - vertx run MyVerticle.java -instances 10 - -Run 20 instances of a ruby worker verticle - - vertx run order_worker.rb -instances 20 -worker - -Run two JavaScript verticles on the same machine and let them cluster -together with each other and any other servers on the network - - vertx run handler.js -cluster - vertx run sender.js -cluster - -Run a Ruby verticle passing it some config - - vertx run my_verticle.rb -conf my_verticle.conf - -Where `my_verticle.conf` might contain something like: - -``` json -{ -"name": "foo", -"num_widgets": 46 -} -``` - -The config will be available inside the verticle via the core API. - -When using the high-availability feature of vert.x you may want to -create a *bare* instance of vert.x. This instance does not deploy any -verticles when launched, but will receive a verticle if another node of -the cluster dies. To create a *bare* instance, launch: - - vertx bare - -Depending on your cluster configuration, you may have to append the -`cluster-host` and `cluster-port` parameters. - -## Executing a Vert.x application packaged as a fat jar - -A *fat jar* is an executable jar embedding its dependencies. This means -you don’t have to have Vert.x pre-installed on the machine on which you -execute the jar. Like any executable Java jar it can be executed with. - - java -jar my-application-fat.jar - -There is nothing really Vert.x specific about this, you could do this -with any Java application - -You can either create your own main class and specify that in the -manifest, but it’s recommended that you write your code as verticles and -use the Vert.x `Launcher` class (`io.vertx.core.Launcher`) as your main -class. This is the same main class used when running Vert.x at the -command line and therefore allows you to specify command line arguments, -such as `-instances` in order to scale your application more easily. - -To deploy your verticle in a *fatjar* like this you must have a -*manifest* with: - - - `Main-Class` set to `io.vertx.core.Launcher` - - - `Main-Verticle` specifying the main verticle (fully qualified class - name or script file name) - -You can also provide the usual command line arguments that you would -pass to `vertx run`: - - java -jar my-verticle-fat.jar -cluster -conf myconf.json - java -jar my-verticle-fat.jar -cluster -conf myconf.json -cp path/to/dir/conf/cluster_xml - -> **Note** -> -> Please consult the Maven/Gradle simplest and Maven/Gradle verticle -> examples in the examples repository for examples of building -> applications as fatjars. - -A fat jar executes the `run` command, by default. - -## Displaying version of Vert.x - -To display the vert.x version, just launch: - - vertx version - -## Other commands - -The `vertx` command line and the `Launcher` also provide other -*commands* in addition to `run` and `version`: - -You can create a `bare` instance using: - - vertx bare - # or - java -jar my-verticle-fat.jar bare - -You can also start an application in background using: - - java -jar my-verticle-fat.jar start --vertx-id=my-app-name - -If `my-app-name` is not set, a random id will be generated, and printed -on the command prompt. You can pass `run` options to the `start` -command: - - java -jar my-verticle-fat.jar start —-vertx-id=my-app-name -cluster - -Once launched in background, you can stop it with the `stop` command: - - java -jar my-verticle-fat.jar stop my-app-name - -You can also list the vert.x application launched in background using: - - java -jar my-verticle-fat.jar list - -The `start`, `stop` and `list` command are also available from the -`vertx` tool. The start\` command supports a couple of options: - - - `vertx-id` : the application id, uses a random UUID if not set - - - `java-opts` : the Java Virtual Machine options, uses the `JAVA_OPTS` - environment variable if not set. - - - `redirect-output` : redirect the spawned process output and error - streams to the parent process streams. - -If option values contain spaces, don’t forget to wrap the value between -`""` (double-quotes). - -As the `start` command spawns a new process, the java options passed to -the JVM are not propagated, so you **must** use `java-opts` to configure -the JVM (`-X`, `-D`…​). If you use the `CLASSPATH` environment variable, -be sure it contains all the required jars (vertx-core, your jars and all -the dependencies). - -The set of commands is extensible, refer to the [Extending the vert.x -Launcher](#_extending_the_vert_x_launcher) section. - -## Live Redeploy - -When developing it may be convenient to automatically redeploy your -application upon file changes. The `vertx` command line tool and more -generally the `Launcher` class offers this feature. Here are some -examples: - - vertx run MyVerticle.groovy --redeploy="**/*.groovy" --launcher-class=io.vertx.core.Launcher - vertx run MyVerticle.groovy --redeploy="**/*.groovy,**/*.rb" --launcher-class=io.vertx.core.Launcher - java io.vertx.core.Launcher run org.acme.MyVerticle --redeploy="**/*.class" --launcher-class=io.vertx.core - .Launcher -cp ... - -The redeployment process is implemented as follows. First your -application is launched as a background application (with the `start` -command). On matching file changes, the process is stopped and the -application is restarted. This avoids leaks, as the process is -restarted. - -To enable the live redeploy, pass the `--redeploy` option to the `run` -command. The `--redeploy` indicates the set of file to *watch*. This set -can use Ant-style patterns (with `**`, `*` and `?`). You can specify -several sets by separating them using a comma (`,`). Patterns are -relative to the current working directory. - -Parameters passed to the `run` command are passed to the application. -Java Virtual Machine options can be configured using `--java-opts`. For -instance, to pass the the `conf` parameter or a system property, you -need to use: `--java-opts="-conf=my-conf.json -Dkey=value"` - -The `--launcher-class` option determine with with *main* class the -application is launcher. It’s generally `Launcher`, but you have use you -own *main*. - -The redeploy feature can be used in your IDE: - - - Eclipse - create a *Run* configuration, using the - `io.vertx.core.Launcher` class a *main class*. In the *Program - arguments* area (in the *Arguments* tab), write `run - your-verticle-fully-qualified-name --redeploy=**/*.java - --launcher-class=io.vertx.core.Launcher`. You can also add other - parameters. The redeployment works smoothly as Eclipse incrementally - compiles your files on save. - - - IntelliJ - create a *Run* configuration (*Application*), set the - *Main class* to `io.vertx.core.Launcher`. In the Program arguments - write: `run your-verticle-fully-qualified-name --redeploy=**/*.class - --launcher-class=io.vertx.core.Launcher`. To trigger the - redeployment, you need to *make* the project or the module - explicitly (*Build* menu → *Make project*). - -To debug your application, create your run configuration as a remote -application and configure the debugger using `--java-opts`. However, -don’t forget to re-plug the debugger after every redeployment as a new -process is created every time. - -You can also hook your build process in the redeploy cycle: - - java -jar target/my-fat-jar.jar --redeploy="**/*.java" --on-redeploy="mvn package" - java -jar build/libs/my-fat-jar.jar --redeploy="src/**/*.java" --on-redeploy='./gradlew shadowJar' - -The "on-redeploy" option specifies a command invoked after the shutdown -of the application and before the restart. So you can hook your build -tool if it updates some runtime artifacts. For instance, you can launch -`gulp` or `grunt` to update your resources. Don’t forget that passing -parameters to your application requires the `--java-opts` param: - - java -jar target/my-fat-jar.jar --redeploy="**/*.java" --on-redeploy="mvn package" --java-opts="-Dkey=val" - java -jar build/libs/my-fat-jar.jar --redeploy="src/**/*.java" --on-redeploy='./gradlew shadowJar' --java-opts="-Dkey=val" - -The redeploy feature also supports the following settings: - - - `redeploy-scan-period` : the file system check period (in - milliseconds), 250ms by default - - - `redeploy-grace-period` : the amount of time (in milliseconds) to - wait between 2 re-deployments, 1000ms by default - - - `redeploy-termination-period` : the amount of time to wait after - having stopped the application (before launching user command). This - is useful on Windows, where the process is not killed immediately. - The time is given in milliseconds. 0 ms by default. - -# Cluster Managers - -In Vert.x a cluster manager is used for various functions including: - - - Discovery and group membership of Vert.x nodes in a cluster - - - Maintaining cluster wide topic subscriber lists (so we know which - nodes are interested in which event bus addresses) - - - Distributed Map support - - - Distributed Locks - - - Distributed Counters - -Cluster managers *do not* handle the event bus inter-node transport, -this is done directly by Vert.x with TCP connections. - -The default cluster manager used in the Vert.x distributions is one that -uses [Hazelcast](http://hazelcast.com) but this can be easily replaced -by a different implementation as Vert.x cluster managers are pluggable. - -A cluster manager must implement the interface `ClusterManager`. Vert.x -locates cluster managers at run-time by using the Java [Service -Loader](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html) -functionality to locate instances of `ClusterManager` on the classpath. - -If you are using Vert.x at the command line and you want to use -clustering you should make sure the `lib` directory of the Vert.x -installation contains your cluster manager jar. - -If you are using Vert.x from a Maven or Gradle project just add the -cluster manager jar as a dependency of your project. - -You can also specify cluster managers programmatically if embedding -Vert.x using `setClusterManager`. - -# Logging - -Vert.x logs using it’s in-built logging API. The default implementation -uses the JDK (JUL) logging so no extra logging dependencies are needed. - -## Configuring JUL logging - -A JUL logging configuration file can be specified in the normal JUL way -by providing a system property called: `java.util.logging.config.file` -with the value being your configuration file. For more information on -this and the structure of a JUL config file please consult the JUL -logging documentation. - -Vert.x also provides a slightly more convenient way to specify a -configuration file without having to set a system property. Just provide -a JUL config file with the name `vertx-default-jul-logging.properties` -on your classpath (e.g. inside your fatjar) and Vert.x will use that to -configure JUL. - -## Using another logging framework - -If you don’t want Vert.x to use JUL for it’s own logging you can -configure it to use another logging framework, e.g. Log4J or SLF4J. - -To do this you should set a system property called -`vertx.logger-delegate-factory-class-name` with the name of a Java class -which implements the interface `LogDelegateFactory`. We provide -pre-built implementations for Log4J (version 1), Log4J 2 and SLF4J with -the class names `io.vertx.core.logging.Log4jLogDelegateFactory`, -`io.vertx.core.logging.Log4j2LogDelegateFactory` and -`io.vertx.core.logging.SLF4JLogDelegateFactory` respectively. If you -want to use these implementations you should also make sure the relevant -Log4J or SLF4J jars are on your classpath. - -Notice that, the provided delegate for Log4J 1 does not support -parameterized message. The delegate for Log4J 2 uses the `{}` syntax -like the SLF4J delegate. JUL delegate uses the `{x}` syntax. - -## Netty logging - -When configuring logging, you should care about configuring Netty -logging as well. - -Netty does not rely on external logging configuration (e.g system -properties) and instead implements a logging configuration based on the -logging libraries visible from the Netty classes: - - - use `SLF4J` library if it is visible - - - otherwise use `Log4j` if it is visible - - - otherwise fallback `java.util.logging` - -The logger implementation can be forced to a specific implementation by -setting Netty’s internal logger implementation directly on -`io.netty.util.internal.logging.InternalLoggerFactory`: - -``` java -// Force logging to Log4j -InternalLoggerFactory.setDefaultFactory(Log4JLoggerFactory.INSTANCE); -``` - -## Troubleshooting - -### SLF4J warning at startup - -If, when you start your application, you see the following message: - - SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". - SLF4J: Defaulting to no-operation (NOP) logger implementation - SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. - -It means that you have SLF4J-API in your classpath but no actual -binding. Messages logged with SLF4J will be dropped. You should add a -binding to your classpath. Check - to pick a binding and -configure it. - -Be aware that Netty looks for the SLF4-API jar and uses it by default. - -### Connection reset by peer - -If your logs show a bunch of: - - io.vertx.core.net.impl.ConnectionBase - SEVERE: java.io.IOException: Connection reset by peer - -It means that the client is resetting the HTTP connection instead of -closing it. This message also indicates that you may have not consumed -the complete payload (the connection was cut before you were able to). - -# Host name resolution - -Vert.x uses an an address resolver for resolving host name into IP -addresses instead of the JVM built-in blocking resolver. - -An host name resolves to an IP address using: - - - the *hosts* file of the operating system - - - otherwise DNS queries against a list of servers - -By default it will use the list of the system DNS server addresses from -the environment, if that list cannot be retrieved it will use Google’s -public DNS servers `"8.8.8.8"` and `"8.8.4.4"`. - -DNS servers can be also configured when creating a {@link -io.vertx.core.Vertx} instance: - -``` $lang -{@link examples.CoreExamples#configureDNSServers} -``` - -The default port of a DNS server is `53`, when a server uses a different -port, this port can be set using a colon delimiter: `192.168.0.2:40000`. - -> **Note** -> -> sometimes it can be desirable to use the JVM built-in resolver, the -> JVM system property *-Dvertx.disableDnsResolver=true* activates this -> behavior - -## Failover - -When a server does not reply in a timely manner, the resolver will try -the next one from the list, the search is limited by {@link -io.vertx.core.dns.AddressResolverOptions\#setMaxQueries(int)} (the -default value is `4` queries). - -A DNS query is considered as failed when the resolver has not received a -correct answer within {@link -io.vertx.core.dns.AddressResolverOptions\#getQueryTimeout()} -milliseconds (the default value is `5` seconds). - -## Server list rotation - -By default the dns server selection uses the first one, the remaining -servers are used for failover. - -You can configure {@link -io.vertx.core.dns.AddressResolverOptions\#setRotateServers(boolean)} to -`true` to let the resolver perform a round-robin selection instead. It -spreads the query load among the servers and avoids all lookup to hit -the first server of the list. - -Failover still applies and will use the next server in the list. - -## Hosts mapping - -The *hosts* file of the operating system is used to perform an hostname -lookup for an ipaddress. - -An alternative *hosts* file can be used instead: - -``` $lang -{@link examples.CoreExamples#configureHosts} -``` - -## Search domains - -By default the resolver will use the system DNS search domains from the -environment. Alternatively an explicit search domain list can be -provided: - -``` $lang -{@link examples.CoreExamples#configureSearchDomains()} -``` - -When a search domain list is used, the threshold for the number of dots -is `1` or loaded from `/etc/resolv.conf` on Linux, it can be configured -to a specific value with {@link -io.vertx.core.dns.AddressResolverOptions\#setNdots(int)}. - -# High Availability and Fail-Over - -Vert.x allows you to run your verticles with high availability (HA) -support. In that case, when a vert.x instance running a verticle dies -abruptly, the verticle is migrated to another vertx instance. The vert.x -instances must be in the same cluster. - -## Automatic failover - -When vert.x runs with *HA* enabled, if a vert.x instance where a -verticle runs fails or dies, the verticle is redeployed automatically on -another vert.x instance of the cluster. We call this *verticle -fail-over*. - -To run vert.x with the *HA* enabled, just add the `-ha` flag to the -command line: - - vertx run my-verticle.js -ha - -Now for HA to work, you need more than one Vert.x instances in the -cluster, so let’s say you have another Vert.x instance that you have -already started, for example: - - vertx run my-other-verticle.js -ha - -If the Vert.x instance that is running `my-verticle.js` now dies (you -can test this by killing the process with `kill -9`), the Vert.x -instance that is running `my-other-verticle.js` will automatic deploy -`my-verticle -.js` so now that Vert.x instance is running both verticles. - -> **Note** -> -> the migration is only possible if the second vert.x instance has -> access to the verticle file (here `my-verticle.js`). - -> **Important** -> -> Please note that cleanly closing a Vert.x instance will not cause -> failover to occur, e.g. `CTRL-C` or `kill -SIGINT` - -You can also start *bare* Vert.x instances - i.e. instances that are not -initially running any verticles, they will also failover for nodes in -the cluster. To start a bare instance you simply do: - - vertx run -ha - -When using the `-ha` switch you do not need to provide the `-cluster` -switch, as a cluster is assumed if you want HA. - -> **Note** -> -> depending on your cluster configuration, you may need to customize the -> cluster manager configuration (Hazelcast by default), and/or add the -> `cluster-host` and `cluster-port` parameters. - -## HA groups - -When running a Vert.x instance with HA you can also optional specify a -*HA group*. A HA group denotes a logical group of nodes in the cluster. -Only nodes with the same HA group will failover onto one another. If you -don’t specify a HA group the default group `__DEFAULT__` is used. - -To specify an HA group you use the `-hagroup` switch when running the -verticle, e.g. - - vertx run my-verticle.js -ha -hagroup my-group - -Let’s look at an example: - -In a first terminal: - - vertx run my-verticle.js -ha -hagroup g1 - -In a second terminal, let’s run another verticle using the same group: - - vertx run my-other-verticle.js -ha -hagroup g1 - -Finally, in a third terminal, launch another verticle using a different -group: - - vertx run yet-another-verticle.js -ha -hagroup g2 - -If we kill the instance in terminal 1, it will fail over to the instance -in terminal 2, not the instance in terminal 3 as that has a different -group. - -If we kill the instance in terminal 3, it won’t get failed over as there -is no other vert.x instance in that group. - -## Dealing with network partitions - Quora - -The HA implementation also supports quora. A quorum is the minimum -number of votes that a distributed transaction has to obtain in order to -be allowed to perform an operation in a distributed system. - -When starting a Vert.x instance you can instruct it that it requires a -`quorum` before any HA deployments will be deployed. In this context, a -quorum is a minimum number of nodes for a particular group in the -cluster. Typically you chose your quorum size to `Q = 1 + N/2` where `N` -is the number of nodes in the group. If there are less than `Q` nodes in -the cluster the HA deployments will undeploy. They will redeploy again -if/when a quorum is re-attained. By doing this you can prevent against -network partitions, a.k.a. *split brain*. - -There is more information on quora -[here](http://en.wikipedia.org/wiki/Quorum_\(distributed_computing\)). - -To run vert.x instances with a quorum you specify `-quorum` on the -command line, e.g. - -In a first terminal: - - vertx run my-verticle.js -ha -quorum 3 - -At this point the Vert.x instance will start but not deploy the module -(yet) because there is only one node in the cluster, not 3. - -In a second terminal: - - vertx run my-other-verticle.js -ha -quorum 3 - -At this point the Vert.x instance will start but not deploy the module -(yet) because there are only two nodes in the cluster, not 3. - -In a third console, you can start another instance of vert.x: - - vertx run yet-another-verticle.js -ha -quorum 3 - -Yay\! - we have three nodes, that’s a quorum. At this point the modules -will automatically deploy on all instances. - -If we now close or kill one of the nodes the modules will automatically -undeploy on the other nodes, as there is no longer a quorum. - -Quora can also be used in conjunction with ha groups. In that case, -quora are resolved for each particular group. - -# Native transports - -Vert.x can run with [native -transports](http://netty.io/wiki/native-transports.html) (when -available) on BSD (OSX) and Linux: - -``` $lang -{@link examples.CoreExamples#configureNative()} -``` - -> **Note** -> -> preferring native transport will not prevent the application to -> execute (for example if a JAR is missing). If your application -> requires native transport, you need to check {@link -> io.vertx.core.Vertx\#isNativeTransportEnabled()}. - -## Native Linux Transport - -You need to add the following dependency in your classpath: - -``` xml - - io.netty - netty-transport-native-epoll - 4.1.15.Final - linux-x86_64 - -``` - -Native on Linux gives you extra networking options: - - - `SO_REUSEPORT` - - - `TCP_QUICKACK` - - - `TCP_CORK` - - - `TCP_FASTOPEN` - - - -``` js -// Available on Linux -vertx.createHttpServer(new HttpServerOptions() - .setTcpFastOpen(fastOpen) - .setTcpCork(cork) - .setTcpQuickAck(quickAck) - .setReusePort(reusePort)); -``` - -## Native BSD Transport - -You need to add the following dependency in your classpath: - -``` xml - - io.netty - netty-transport-native-kqueue - 4.1.15.Final - osx-x86_64 - -``` - -MacOS Sierra and above are supported. - -Native on BSD gives you extra networking options: - - - `SO_REUSEPORT` - - - -``` js -// Available on BSD -vertx.createHttpServer(new HttpServerOptions() - .setReusePort(reusePort)); -``` - -## Domain sockets - -Natives provide domain sockets support for servers: - -``` js -import { SocketAddress } from "@vertx/core" -// Only available on BSD and Linux -vertx.createNetServer().connectHandler((so) => { - // Handle application -}).listen(SocketAddress.domainSocketAddress("/var/tmp/myservice.sock")); -``` - -or for http: - -``` js -import { SocketAddress } from "@vertx/core" -vertx.createHttpServer().requestHandler((req) => { - // Handle application -}).listen(SocketAddress.domainSocketAddress("/var/tmp/myservice.sock"), (ar) => { - if (ar.succeeded()) { - // Bound to socket - } else { - ar.cause().printStackTrace(); - } -}); -``` - -As well as clients: - -``` js -import { SocketAddress } from "@vertx/core" -let netClient = vertx.createNetClient(); - -// Only available on BSD and Linux -let addr = SocketAddress.domainSocketAddress("/var/tmp/myservice.sock"); - -// Connect to the server -netClient.connect(addr, (ar) => { - if (ar.succeeded()) { - // Connected - } else { - ar.cause().printStackTrace(); - } -}); -``` - -or for http: - -``` js -import { SocketAddress } from "@vertx/core" -let httpClient = vertx.createHttpClient(); - -// Only available on BSD and Linux -let addr = SocketAddress.domainSocketAddress("/var/tmp/myservice.sock"); - -// Send request to the server -httpClient.request(HttpMethod.GET, addr, 8080, "localhost", "/", (resp) => { - // Process response -}).end(); -``` - -# Security notes - -Vert.x is a toolkit, not an opinionated framework where we force you to -do things in a certain way. This gives you great power as a developer -but with that comes great responsibility. - -As with any toolkit, it’s possible to write insecure applications, so -you should always be careful when developing your application especially -if it’s exposed to the public (e.g. over the internet). - -## Web applications - -If writing a web application it’s highly recommended that you use -Vert.x-Web instead of Vert.x core directly for serving resources and -handling file uploads. - -Vert.x-Web normalises the path in requests to prevent malicious clients -from crafting URLs to access resources outside of the web root. - -Similarly for file uploads Vert.x-Web provides functionality for -uploading to a known place on disk and does not rely on the filename -provided by the client in the upload which could be crafted to upload to -a different place on disk. - -Vert.x core itself does not provide such checks so it would be up to you -as a developer to implement them yourself. - -## Clustered event bus traffic - -When clustering the event bus between different Vert.x nodes on a -network, the traffic is sent un-encrypted across the wire, so do not use -this if you have confidential data to send and your Vert.x nodes are not -on a trusted network. - -## Standard security best practices - -Any service can have potentially vulnerabilities whether it’s written -using Vert.x or any other toolkit so always follow security best -practice, especially if your service is public facing. - -For example you should always run them in a DMZ and with an user account -that has limited rights in order to limit the extent of damage in case -the service was compromised. - -# Vert.x Command Line Interface API - -Vert.x Core provides an API for parsing command line arguments passed to -programs. It’s also able to print help messages detailing the options -available for a command line tool. Even if such features are far from -the Vert.x core topics, this API is used in the `Launcher` class that -you can use in *fat-jar* and in the `vertx` command line tools. In -addition, it’s polyglot (can be used from any supported language) and is -used in Vert.x Shell. - -Vert.x CLI provides a model to describe your command line interface, but -also a parser. This parser supports different types of syntax: - - - POSIX like options (ie. `tar -zxvf foo.tar.gz`) - - - GNU like long options (ie. `du --human-readable --max-depth=1`) - - - Java like properties (ie. `java -Djava.awt.headless=true - -Djava.net.useSystemProxies=true Foo`) - - - Short options with value attached (ie. `gcc -O2 foo.c`) - - - Long options with single hyphen (ie. `ant -projecthelp`) - -Using the CLI api is a 3-steps process: - -1. The definition of the command line interface - -2. The parsing of the user command line - -3. The query / interrogation - -## Definition Stage - -Each command line interface must define the set of options and arguments -that will be used. It also requires a name. The CLI API uses the -`Option` and `Argument` classes to describe options and arguments: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("copy").setSummary("A command line interface to copy files.").addOption(new Option() - .setLongName("directory") - .setShortName("R") - .setDescription("enables directory support") - .setFlag(true)).addArgument(new Argument() - .setIndex(0) - .setDescription("The source") - .setArgName("source")).addArgument(new Argument() - .setIndex(1) - .setDescription("The destination") - .setArgName("target")); -``` - -As you can see, you can create a new `CLI` using `CLI.create`. The -passed string is the name of the CLI. Once created you can set the -summary and description. The summary is intended to be short (one line), -while the description can contain more details. Each option and argument -are also added on the `CLI` object using the `addArgument` and -`addOption` methods. - -### Options - -An `Option` is a command line parameter identified by a *key* present in -the user command line. Options must have at least a long name or a short -name. Long name are generally used using a `--` prefix, while short -names are used with a single `-`. Options can get a description -displayed in the usage (see below). Options can receive 0, 1 or several -values. An option receiving 0 values is a `flag`, and must be declared -using `setFlag`. By default, options receive a single value, however, -you can configure the option to receive several values using -`setMultiValued`: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").setSummary("A command line interface illustrating the options valuation.").addOption(new Option() - .setLongName("flag") - .setShortName("f") - .setFlag(true) - .setDescription("a flag")).addOption(new Option() - .setLongName("single") - .setShortName("s") - .setDescription("a single-valued option")).addOption(new Option() - .setLongName("multiple") - .setShortName("m") - .setMultiValued(true) - .setDescription("a multi-valued option")); -``` - -Options can be marked as mandatory. A mandatory option not set in the -user command line throws an exception during the parsing: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addOption(new Option() - .setLongName("mandatory") - .setRequired(true) - .setDescription("a mandatory option")); -``` - -Non-mandatory options can have a *default value*. This value would be -used if the user does not set the option in the command line: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addOption(new Option() - .setLongName("optional") - .setDefaultValue("hello") - .setDescription("an optional option with a default value")); -``` - -An option can be *hidden* using the `setHidden` method. Hidden option -are not listed in the usage, but can still be used in the user command -line (for power-users). - -If the option value is contrained to a fixed set, you can set the -different acceptable choices: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addOption(new Option() - .setLongName("color") - .setDefaultValue("green") - .setChoices(["blue", "red", "green"]) - .setDescription("a color")); -``` - -Options can also be instantiated from their JSON form. - -### Arguments - -Unlike options, arguments do not have a *key* and are identified by -their *index*. For example, in `java com.acme.Foo`, `com.acme.Foo` is an -argument. - -Arguments do not have a name, there are identified using a 0-based -index. The first parameter has the index `0`: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addArgument(new Argument() - .setIndex(0) - .setDescription("the first argument") - .setArgName("arg1")).addArgument(new Argument() - .setIndex(1) - .setDescription("the second argument") - .setArgName("arg2")); -``` - -If you don’t set the argument indexes, it computes it automatically by -using the declaration order. - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("some-name").addArgument(new Argument() - .setDescription("the first argument") - .setArgName("arg1")).addArgument(new Argument() - .setDescription("the second argument") - .setArgName("arg2")); -``` - -The `argName` is optional and used in the usage message. - -As options, `Argument` can: - - - be hidden using `setHidden` - - - be mandatory using `setRequired` - - - have a default value using `setDefaultValue` - - - receive several values using `setMultiValued` - only the last - argument can be multi-valued. - -Arguments can also be instantiated from their JSON form. - -### Usage generation - -Once your `CLI` instance is configured, you can generate the *usage* -message: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("copy").setSummary("A command line interface to copy files.").addOption(new Option() - .setLongName("directory") - .setShortName("R") - .setDescription("enables directory support") - .setFlag(true)).addArgument(new Argument() - .setIndex(0) - .setDescription("The source") - .setArgName("source")).addArgument(new Argument() - .setIndex(0) - .setDescription("The destination") - .setArgName("target")); - -let builder = new (Java.type("java.lang.StringBuilder"))(); -cli.usage(builder); -``` - -It generates an usage message like this one: - - Usage: copy [-R] source target - - A command line interface to copy files. - - -R,--directory enables directory support - -If you need to tune the usage message, check the `UsageMessageFormatter` -class. - -## Parsing Stage - -Once your `CLI` instance is configured, you can parse the user command -line to evaluate each option and argument: - -``` js -let commandLine = cli.parse(userCommandLineArguments); -``` - -The `parse` method returns a `CommandLine` object containing the values. -By default, it validates the user command line and checks that each -mandatory options and arguments have been set as well as the number of -values received by each option. You can disable the validation by -passing `false` as second parameter of `parse`. This is useful if you -want to check an argument or option is present even if the parsed -command line is invalid. - -You can check whether or not the `CommandLine` is valid using `isValid`. - -## Query / Interrogation Stage - -Once parsed, you can retrieve the values of the options and arguments -from the `CommandLine` object returned by the `parse` method: - -``` js -let commandLine = cli.parse(userCommandLineArguments); -let opt = commandLine.getOptionValue("my-option"); -let flag = commandLine.isFlagEnabled("my-flag"); -let arg0 = commandLine.getArgumentValue(0); -``` - -One of your option can have been marked as "help". If a user command -line enabled a "help" option, the validation won’t failed, but give you -the opportunity to check if the user asks for help: - -``` js -import { CLI } from "@vertx/core" -let cli = CLI.create("test").addOption(new Option() - .setLongName("help") - .setShortName("h") - .setFlag(true) - .setHelp(true)).addOption(new Option() - .setLongName("mandatory") - .setRequired(true)); - -let line = cli.parse(Java.type("java.util.Collections").singletonList("-h")); - -// The parsing does not fail and let you do: -if (!line.isValid() && line.isAskingForHelp()) { - let builder = new (Java.type("java.lang.StringBuilder"))(); - cli.usage(builder); - stream.print(builder.toString()); -} -``` - -# The vert.x Launcher - -The vert.x `Launcher` is used in *fat jar* as main class, and by the -`vertx` command line utility. It executes a set of *commands* such as -*run*, *bare*, *start*…​ - -## Extending the vert.x Launcher - -You can extend the set of command by implementing your own `Command` (in -Java only): - -``` java -@Name("my-command") -@Summary("A simple hello command.") -public class MyCommand extends DefaultCommand { - - private String name; - - @Option(longName = "name", required = true) - public void setName(String n) { - this.name = n; - } - - @Override - public void run() throws CLIException { - System.out.println("Hello " + name); - } -} -``` - -You also need an implementation of `CommandFactory`: - -``` java -public class HelloCommandFactory extends DefaultCommandFactory { - public HelloCommandFactory() { - super(HelloCommand.class); - } -} -``` - -Then, create the -`src/main/resources/META-INF/services/io.vertx.core.spi.launcher.CommandFactory` -and add a line indicating the fully qualified name of the factory: - - io.vertx.core.launcher.example.HelloCommandFactory - -Builds the jar containing the command. Be sure to includes the SPI file -(`META-INF/services/io.vertx.core.spi.launcher.CommandFactory`). - -Then, place the jar containing the command into the classpath of your -fat-jar (or include it inside) or in the `lib` directory of your vert.x -distribution, and you would be able to execute: - - vertx hello vert.x - java -jar my-fat-jar.jar hello vert.x - -## Using the Launcher in fat jars - -To use the `Launcher` class in a *fat-jar* just set the `Main-Class` of -the *MANIFEST* to `io.vertx.core.Launcher`. In addition, set the -`Main-Verticle` *MANIFEST* entry to the name of your main verticle. - -By default, it executed the `run` command. However, you can configure -the default command by setting the `Main-Command` *MANIFEST* entry. The -default command is used if the *fat jar* is launched without a command. - -## Sub-classing the Launcher - -You can also create a sub-class of `Launcher` to start your application. -The class has been designed to be easily extensible. - -A `Launcher` sub-class can: - - - customize the vert.x configuration in `beforeStartingVertx` - - - retrieve the vert.x instance created by the "run" or "bare" command - by overriding `afterStartingVertx` - - - configure the default verticle and command with `getMainVerticle` - and `getDefaultCommand` - - - add / remove commands using `register` and `unregister` - -## Launcher and exit code - -When you use the `Launcher` class as main class, it uses the following -exit code: - - - `0` if the process ends smoothly, or if an uncaught error is thrown - - - `1` for general purpose error - - - `11` if Vert.x cannot be initialized - - - `12` if a spawn process cannot be started, found or stopped. This - error code is used by the `start` and `stop` command - - - `14` if the system configuration is not meeting the system - requirement (shc as java not found) - - - `15` if the main verticle cannot be deployed - -# Configuring Vert.x cache - -When Vert.x needs to read a file from the classpath (embedded in a fat -jar, in a jar form the classpath or a file that is on the classpath), it -copies it to a cache directory. The reason behind this is simple: -reading a file from a jar or from an input stream is blocking. So to -avoid to pay the price every time, Vert.x copies the file to its cache -directory and reads it from there every subsequent read. This behavior -can be configured. - -First, by default, Vert.x uses `$CWD/.vertx` as cache directory. It -creates a unique directory inside this one to avoid conflicts. This -location can be configured by using the `vertx.cacheDirBase` system -property. For instance if the current working directory is not writable -(such as in an immutable container context), launch your application -with: - - vertx run my.Verticle -Dvertx.cacheDirBase=/tmp/vertx-cache - # or - java -jar my-fat.jar vertx.cacheDirBase=/tmp/vertx-cache - -> **Important** -> -> the directory must be **writable**. - -When you are editing resources such as HTML, CSS or JavaScript, this -cache mechanism can be annoying as it serves only the first version of -the file (and so you won’t see your edits if you reload your page). To -avoid this behavior, launch your application with -`-Dvertx.disableFileCaching=true`. With this setting, Vert.x still uses -the cache, but always refresh the version stored in the cache with the -original source. So if you edit a file served from the classpath and -refresh your browser, Vert.x reads it from the classpath, copies it to -the cache directory and serves it from there. Do not use this setting in -production, it can kill your performances. - -Finally, you can disable completely the cache by using -`-Dvertx.disableFileCPResolving=true`. This setting is not without -consequences. Vert.x would be unable to read any files from the -classpath (only from the file system). Be very careful when using this -settings. diff --git a/docs/manual/@vertx/core/json-pointers.md b/docs/manual/@vertx/core/json-pointers.md deleted file mode 100644 index f124d0d75..000000000 --- a/docs/manual/@vertx/core/json-pointers.md +++ /dev/null @@ -1,31 +0,0 @@ -# Json Pointers - -Vert.x provides an implementation of [Json Pointers from -RFC6901](https://tools.ietf.org/html/rfc6901). You can use pointers both -for querying and for writing. You can build your `JsonPointer` using a -string, a URI or manually appending paths: - -``` java -import { JsonPointer } from "@vertx/core" -// Build a pointer from a string -let pointer1 = JsonPointer.from("/hello/world"); -// Build a pointer manually -let pointer2 = JsonPointer.create().append("hello").append("world"); -``` - -After instantiating your pointer, use `queryJson` to query a JSON value. -You can update a Json Value using `writeJson`: - -``` java -// Query a JsonObject -let result1 = objectPointer.queryJson(jsonObject); -// Query a JsonArray -let result2 = arrayPointer.queryJson(jsonArray); -// Write starting from a JsonObject -objectPointer.writeJson(jsonObject, "new element"); -// Write starting from a JsonObject -arrayPointer.writeJson(jsonArray, "new element"); -``` - -You can use Vert.x Json Pointer with any object model by providing a -custom implementation of `JsonPointerIterator` diff --git a/docs/manual/@vertx/core/net.md b/docs/manual/@vertx/core/net.md deleted file mode 100644 index 3850aa8b5..000000000 --- a/docs/manual/@vertx/core/net.md +++ /dev/null @@ -1,1142 +0,0 @@ -# Writing TCP servers and clients - -Vert.x allows you to easily write non blocking TCP clients and servers. - -## Creating a TCP server - -The simplest way to create a TCP server, using all default options is as -follows: - -``` js -let server = vertx.createNetServer(); -``` - -## Configuring a TCP server - -If you don’t want the default, a server can be configured by passing in -a `NetServerOptions` instance when creating it: - -``` js -let options = new NetServerOptions() - .setPort(4321); -let server = vertx.createNetServer(options); -``` - -## Start the Server Listening - -To tell the server to listen for incoming requests you use one of the -`listen` alternatives. - -To tell the server to listen at the host and port as specified in the -options: - -``` js -let server = vertx.createNetServer(); -server.listen(); -``` - -Or to specify the host and port in the call to listen, ignoring what is -configured in the options: - -``` js -let server = vertx.createNetServer(); -server.listen(1234, "localhost"); -``` - -The default host is `0.0.0.0` which means 'listen on all available -addresses' and the default port is `0`, which is a special value that -instructs the server to find a random unused local port and use that. - -The actual bind is asynchronous so the server might not actually be -listening until some time **after** the call to listen has returned. - -If you want to be notified when the server is actually listening you can -provide a handler to the `listen` call. For example: - -``` js -let server = vertx.createNetServer(); -server.listen(1234, "localhost", (res) => { - if (res.succeeded()) { - console.log("Server is now listening!"); - } else { - console.log("Failed to bind!"); - } -}); -``` - -## Listening on a random port - -If `0` is used as the listening port, the server will find an unused -random port to listen on. - -To find out the real port the server is listening on you can call -`actualPort`. - -``` js -let server = vertx.createNetServer(); -server.listen(0, "localhost", (res) => { - if (res.succeeded()) { - console.log("Server is now listening on actual port: " + server.actualPort()); - } else { - console.log("Failed to bind!"); - } -}); -``` - -## Getting notified of incoming connections - -To be notified when a connection is made you need to set a -`connectHandler`: - -``` js -let server = vertx.createNetServer(); -server.connectHandler((socket) => { - // Handle the connection in here -}); -``` - -When a connection is made the handler will be called with an instance of -`NetSocket`. - -This is a socket-like interface to the actual connection, and allows you -to read and write data as well as do various other things like close the -socket. - -## Reading data from the socket - -To read data from the socket you set the `handler` on the socket. - -This handler will be called with an instance of `Buffer` every time data -is received on the socket. - -``` js -let server = vertx.createNetServer(); -server.connectHandler((socket) => { - socket.handler((buffer) => { - console.log("I received some bytes: " + buffer.length()); - }); -}); -``` - -## Writing data to a socket - -You write to a socket using one of `write`. - -``` js -import { Buffer } from "@vertx/core" - -// Write a buffer -let buffer = Buffer.buffer().appendFloat(12.34).appendInt(123); -socket.write(buffer); - -// Write a string in UTF-8 encoding -socket.write("some data"); - -// Write a string using the specified encoding -socket.write("some data", "UTF-16"); -``` - -Write operations are asynchronous and may not occur until some time -after the call to write has returned. - -## Closed handler - -If you want to be notified when a socket is closed, you can set a -`closeHandler` on it: - -``` js -socket.closeHandler((v) => { - console.log("The socket has been closed"); -}); -``` - -## Handling exceptions - -You can set an `exceptionHandler` to receive any exceptions that happen -on the socket. - -You can set an `exceptionHandler` to receive any exceptions that happens -before the connection is passed to the `connectHandler` , e.g during the -TLS handshake. - -## Event bus write handler - -Every socket automatically registers a handler on the event bus, and -when any buffers are received in this handler, it writes them to itself. -Those are local subscriptions not routed on the cluster. - -This enables you to write data to a socket which is potentially in a -completely different verticle by sending the buffer to the address of -that handler. - -The address of the handler is given by `writeHandlerID` - -## Local and remote addresses - -The local address of a `NetSocket` can be retrieved using -`localAddress`. - -The remote address, (i.e. the address of the other end of the -connection) of a `NetSocket` can be retrieved using `remoteAddress`. - -## Sending files or resources from the classpath - -Files and classpath resources can be written to the socket directly -using `sendFile`. This can be a very efficient way to send files, as it -can be handled by the OS kernel directly where supported by the -operating system. - -Please see the chapter about [serving files from the -classpath](#classpath) for restrictions of the classpath resolution or -disabling it. - -``` js -socket.sendFile("myfile.dat"); -``` - -## Streaming sockets - -Instances of `NetSocket` are also `ReadStream` and `WriteStream` -instances so they can be used to pipe data to or from other read and -write streams. - -See the chapter on [streams](#streams) for more information. - -## Upgrading connections to SSL/TLS - -A non SSL/TLS connection can be upgraded to SSL/TLS using -`upgradeToSsl`. - -The server or client must be configured for SSL/TLS for this to work -correctly. Please see the [chapter on SSL/TLS](#ssl) for more -information. - -## Closing a TCP Server - -Call `close` to close the server. Closing the server closes any open -connections and releases all server resources. - -The close is actually asynchronous and might not complete until some -time after the call has returned. If you want to be notified when the -actual close has completed then you can pass in a handler. - -This handler will then be called when the close has fully completed. - -``` js -server.close((res) => { - if (res.succeeded()) { - console.log("Server is now closed"); - } else { - console.log("close failed"); - } -}); -``` - -## Automatic clean-up in verticles - -If you’re creating TCP servers and clients from inside verticles, those -servers and clients will be automatically closed when the verticle is -undeployed. - -## Scaling - sharing TCP servers - -The handlers of any TCP server are always executed on the same event -loop thread. - -This means that if you are running on a server with a lot of cores, and -you only have this one instance deployed then you will have at most one -core utilised on your server. - -In order to utilise more cores of your server you will need to deploy -more instances of the server. - -You can instantiate more instances programmatically in your code: - -``` js -// Create a few instances so we can utilise cores - -for (let i = 0;i < 10;i++) { - let server = vertx.createNetServer(); - server.connectHandler((socket) => { - socket.handler((buffer) => { - // Just echo back the data - socket.write(buffer); - }); - }); - server.listen(1234, "localhost"); -} -``` - -or, if you are using verticles you can simply deploy more instances of -your server verticle by using the `-instances` option on the command -line: - -vertx run com.mycompany.MyVerticle -instances 10 - -or when programmatically deploying your verticle - -``` js -let options = new DeploymentOptions() - .setInstances(10); -vertx.deployVerticle("com.mycompany.MyVerticle", options); -``` - -Once you do this you will find the echo server works functionally -identically to before, but all your cores on your server can be utilised -and more work can be handled. - -At this point you might be asking yourself **'How can you have more than -one server listening on the same host and port? Surely you will get port -conflicts as soon as you try and deploy more than one instance?'** - -*Vert.x does a little magic here.\** - -When you deploy another server on the same host and port as an existing -server it doesn’t actually try and create a new server listening on the -same host/port. - -Instead it internally maintains just a single server, and, as incoming -connections arrive it distributes them in a round-robin fashion to any -of the connect handlers. - -Consequently Vert.x TCP servers can scale over available cores while -each instance remains single threaded. - -## Creating a TCP client - -The simplest way to create a TCP client, using all default options is as -follows: - -``` js -let client = vertx.createNetClient(); -``` - -## Configuring a TCP client - -If you don’t want the default, a client can be configured by passing in -a `NetClientOptions` instance when creating it: - -``` js -let options = new NetClientOptions() - .setConnectTimeout(10000); -let client = vertx.createNetClient(options); -``` - -## Making connections - -To make a connection to a server you use `connect`, specifying the port -and host of the server and a handler that will be called with a result -containing the `NetSocket` when connection is successful or with a -failure if connection failed. - -``` js -let options = new NetClientOptions() - .setConnectTimeout(10000); -let client = vertx.createNetClient(options); -client.connect(4321, "localhost", (res) => { - if (res.succeeded()) { - console.log("Connected!"); - let socket = res.result(); - } else { - console.log("Failed to connect: " + res.cause().getMessage()); - } -}); -``` - -## Configuring connection attempts - -A client can be configured to automatically retry connecting to the -server in the event that it cannot connect. This is configured with -`setReconnectInterval` and `setReconnectAttempts`. - -> **Note** -> -> Currently Vert.x will not attempt to reconnect if a connection fails, -> reconnect attempts and interval only apply to creating initial -> connections. - -``` js -let options = new NetClientOptions() - .setReconnectAttempts(10) - .setReconnectInterval(500); - -let client = vertx.createNetClient(options); -``` - -By default, multiple connection attempts are disabled. - -## Logging network activity - -For debugging purposes, network activity can be logged: - -``` js -let options = new NetServerOptions() - .setLogActivity(true); - -let server = vertx.createNetServer(options); -``` - -for the client - -``` js -let options = new NetClientOptions() - .setLogActivity(true); - -let client = vertx.createNetClient(options); -``` - -Network activity is logged by Netty with the `DEBUG` level and with the -`io.netty.handler.logging.LoggingHandler` name. When using network -activity logging there are a few things to keep in mind: - - - logging is not performed by Vert.x logging but by Netty - - - this is **not** a production feature - -You should read the [???](#netty-logging) section. - -## Configuring servers and clients to work with SSL/TLS - -TCP clients and servers can be configured to use [Transport Layer -Security](http://en.wikipedia.org/wiki/Transport_Layer_Security) - -earlier versions of TLS were known as SSL. - -The APIs of the servers and clients are identical whether or not SSL/TLS -is used, and it’s enabled by configuring the `NetClientOptions` or -`NetServerOptions` instances used to create the servers or clients. - -### Enabling SSL/TLS on the server - -SSL/TLS is enabled with `ssl`. - -By default it is disabled. - -### Specifying key/certificate for the server - -SSL/TLS servers usually provide certificates to clients in order verify -their identity to clients. - -Certificates/keys can be configured for servers in several ways: - -The first method is by specifying the location of a Java key-store which -contains the certificate and private key. - -Java key stores can be managed with the -[keytool](http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html) -utility which ships with the JDK. - -The password for the key store should also be provided: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(new JksOptions() - .setPath("/path/to/your/server-keystore.jks") - .setPassword("password-of-your-keystore")); -let server = vertx.createNetServer(options); -``` - -Alternatively you can read the key store yourself as a buffer and -provide that directly: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-keystore.jks"); -let jksOptions = new JksOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(jksOptions); -let server = vertx.createNetServer(options); -``` - -Key/certificate in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS key -stores: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setPfxKeyCertOptions(new PfxOptions() - .setPath("/path/to/your/server-keystore.pfx") - .setPassword("password-of-your-keystore")); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-keystore.pfx"); -let pfxOptions = new PfxOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetServerOptions() - .setSsl(true) - .setPfxKeyCertOptions(pfxOptions); -let server = vertx.createNetServer(options); -``` - -Another way of providing server private key and certificate separately -using `.pem` files. - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setPemKeyCertOptions(new PemKeyCertOptions() - .setKeyPath("/path/to/your/server-key.pem") - .setCertPath("/path/to/your/server-cert.pem")); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-key.pem"); -let myCertAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-cert.pem"); -let pemOptions = new PemKeyCertOptions() - .setKeyValue(myKeyAsABuffer) - .setCertValue(myCertAsABuffer); -let options = new NetServerOptions() - .setSsl(true) - .setPemKeyCertOptions(pemOptions); -let server = vertx.createNetServer(options); -``` - -Vert.x supports reading of unencrypted RSA and/or ECC based private keys -from PKCS8 PEM files. RSA based private keys can also be read from PKCS1 -PEM files. X.509 certificates can be read from PEM files containing a -textual encoding of the certificate as defined by [RFC 7468, -Section 5](https://tools.ietf.org/html/rfc7468#section-5). - -> **Warning** -> -> Keep in mind that the keys contained in an unencrypted PKCS8 or a -> PKCS1 PEM file can be extracted by anybody who can read the file. -> Thus, make sure to put proper access restrictions on such PEM files in -> order to prevent misuse. - -### Specifying trust for the server - -SSL/TLS servers can use a certificate authority in order to verify the -identity of the clients. - -Certificate authorities can be configured for servers in several ways: - -Java trust stores can be managed with the -[keytool](http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html) -utility which ships with the JDK. - -The password for the trust store should also be provided: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setTrustStoreOptions(new JksOptions() - .setPath("/path/to/your/truststore.jks") - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Alternatively you can read the trust store yourself as a buffer and -provide that directly: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.jks"); -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setTrustStoreOptions(new JksOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Certificate authority in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS trust -stores: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPfxTrustOptions(new PfxOptions() - .setPath("/path/to/your/truststore.pfx") - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.pfx"); -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPfxTrustOptions(new PfxOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let server = vertx.createNetServer(options); -``` - -Another way of providing server certificate authority using a list -`.pem` files. - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPemTrustOptions(new PemTrustOptions() - .setCertPaths(["/path/to/your/server-ca.pem"])); -let server = vertx.createNetServer(options); -``` - -Buffer configuration is also supported: - -``` js -let myCaAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/server-ca.pfx"); -let options = new NetServerOptions() - .setSsl(true) - .setClientAuth("REQUIRED") - .setPemTrustOptions(new PemTrustOptions() - .setCertValues([myCaAsABuffer])); -let server = vertx.createNetServer(options); -``` - -### Enabling SSL/TLS on the client - -Net Clients can also be easily configured to use SSL. They have the -exact same API when using SSL as when using standard sockets. - -To enable SSL on a NetClient the function setSSL(true) is called. - -### Client trust configuration - -If the `trustALl` is set to true on the client, then the client will -trust all server certificates. The connection will still be encrypted -but this mode is vulnerable to 'man in the middle' attacks. I.e. you -can’t be sure who you are connecting to. Use this with caution. -Default value is false. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setTrustAll(true); -let client = vertx.createNetClient(options); -``` - -If `trustAll` is not set then a client trust store must be configured -and should contain the certificates of the servers that the client -trusts. - -By default, host verification is disabled on the client. To enable host -verification, set the algorithm to use on your client (only HTTPS and -LDAPS is currently supported): - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setHostnameVerificationAlgorithm("HTTPS"); -let client = vertx.createNetClient(options); -``` - -Likewise server configuration, the client trust can be configured in -several ways: - -The first method is by specifying the location of a Java trust-store -which contains the certificate authority. - -It is just a standard Java key store, the same as the key stores on the -server side. The client trust store location is set by using the -function `path` on the `jks options`. If a server presents a certificate -during connection which is not in the client trust store, the connection -attempt will not succeed. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(new JksOptions() - .setPath("/path/to/your/truststore.jks") - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.jks"); -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(new JksOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Certificate authority in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS trust -stores: - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPfxTrustOptions(new PfxOptions() - .setPath("/path/to/your/truststore.pfx") - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/truststore.pfx"); -let options = new NetClientOptions() - .setSsl(true) - .setPfxTrustOptions(new PfxOptions() - .setValue(myTrustStoreAsABuffer) - .setPassword("password-of-your-truststore")); -let client = vertx.createNetClient(options); -``` - -Another way of providing server certificate authority using a list -`.pem` files. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPemTrustOptions(new PemTrustOptions() - .setCertPaths(["/path/to/your/ca-cert.pem"])); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myTrustStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/ca-cert.pem"); -let options = new NetClientOptions() - .setSsl(true) - .setPemTrustOptions(new PemTrustOptions() - .setCertValues([myTrustStoreAsABuffer])); -let client = vertx.createNetClient(options); -``` - -### Specifying key/certificate for the client - -If the server requires client authentication then the client must -present its own certificate to the server when connecting. The client -can be configured in several ways: - -The first method is by specifying the location of a Java key-store which -contains the key and certificate. Again it’s just a regular Java key -store. The client keystore location is set by using the function `path` -on the `jks options`. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setKeyStoreOptions(new JksOptions() - .setPath("/path/to/your/client-keystore.jks") - .setPassword("password-of-your-keystore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-keystore.jks"); -let jksOptions = new JksOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetClientOptions() - .setSsl(true) - .setKeyStoreOptions(jksOptions); -let client = vertx.createNetClient(options); -``` - -Key/certificate in PKCS\#12 format -(), usually with the `.pfx` or the -`.p12` extension can also be loaded in a similar fashion than JKS key -stores: - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPfxKeyCertOptions(new PfxOptions() - .setPath("/path/to/your/client-keystore.pfx") - .setPassword("password-of-your-keystore")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyStoreAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-keystore.pfx"); -let pfxOptions = new PfxOptions() - .setValue(myKeyStoreAsABuffer) - .setPassword("password-of-your-keystore"); -let options = new NetClientOptions() - .setSsl(true) - .setPfxKeyCertOptions(pfxOptions); -let client = vertx.createNetClient(options); -``` - -Another way of providing server private key and certificate separately -using `.pem` files. - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setPemKeyCertOptions(new PemKeyCertOptions() - .setKeyPath("/path/to/your/client-key.pem") - .setCertPath("/path/to/your/client-cert.pem")); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myKeyAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-key.pem"); -let myCertAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/client-cert.pem"); -let pemOptions = new PemKeyCertOptions() - .setKeyValue(myKeyAsABuffer) - .setCertValue(myCertAsABuffer); -let options = new NetClientOptions() - .setSsl(true) - .setPemKeyCertOptions(pemOptions); -let client = vertx.createNetClient(options); -``` - -Keep in mind that pem configuration, the private key is not crypted. - -### Self-signed certificates for testing and development purposes - -> **Caution** -> -> Do not use this in production settings, and note that the generated -> keys are very insecure. - -It is very often the case that self-signed certificates are required, be -it for unit / integration tests or for running a development version of -an application. - -`SelfSignedCertificate` can be used to provide self-signed PEM -certificate helpers and give `KeyCertOptions` and `TrustOptions` -configurations: - -``` js -import { SelfSignedCertificate } from "@vertx/core" -let certificate = SelfSignedCertificate.create(); - -let serverOptions = new NetServerOptions() - .setSsl(true) - .setKeyCertOptions(certificate.keyCertOptions()) - .setTrustOptions(certificate.trustOptions()); - -let server = vertx.createNetServer(serverOptions).connectHandler((socket) => { - socket.write("Hello!").end(); -}).listen(1234, "localhost"); - -let clientOptions = new NetClientOptions() - .setSsl(true) - .setKeyCertOptions(certificate.keyCertOptions()) - .setTrustOptions(certificate.trustOptions()); - -let client = vertx.createNetClient(clientOptions); -client.connect(1234, "localhost", (ar) => { - if (ar.succeeded()) { - ar.result().handler((buffer) => { - console.log(buffer); - }); - } else { - console.error("Woops: " + ar.cause().getMessage()); - } -}); -``` - -The client can also be configured to trust all certificates: - -``` js -let clientOptions = new NetClientOptions() - .setSsl(true) - .setTrustAll(true); -``` - -Note that self-signed certificates also work for other TCP protocols -like HTTPS: - -``` js -import { SelfSignedCertificate } from "@vertx/core" -let certificate = SelfSignedCertificate.create(); - -vertx.createHttpServer(new HttpServerOptions() - .setSsl(true) - .setKeyCertOptions(certificate.keyCertOptions()) - .setTrustOptions(certificate.trustOptions())).requestHandler((req) => { - req.response().end("Hello!"); -}).listen(8080); -``` - -### Revoking certificate authorities - -Trust can be configured to use a certificate revocation list (CRL) for -revoked certificates that should no longer be trusted. The `crlPath` -configures the crl list to use: - -``` js -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(trustOptions) - .setCrlPaths(["/path/to/your/crl.pem"]); -let client = vertx.createNetClient(options); -``` - -Buffer configuration is also supported: - -``` js -let myCrlAsABuffer = vertx.fileSystem().readFileBlocking("/path/to/your/crl.pem"); -let options = new NetClientOptions() - .setSsl(true) - .setTrustStoreOptions(trustOptions) - .setCrlValues([myCrlAsABuffer]); -let client = vertx.createNetClient(options); -``` - -### Configuring the Cipher suite - -By default, the TLS configuration will use the Cipher suite of the JVM -running Vert.x. This Cipher suite can be configured with a suite of -enabled ciphers: - -``` js -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions) - .setEnabledCipherSuites(["ECDHE-RSA-AES128-GCM-SHA256", "ECDHE-ECDSA-AES128-GCM-SHA256", "ECDHE-RSA-AES256-GCM-SHA384", "CDHE-ECDSA-AES256-GCM-SHA384"]); -let server = vertx.createNetServer(options); -``` - -Cipher suite can be specified on the `NetServerOptions` or -`NetClientOptions` configuration. - -### Configuring TLS protocol versions - -By default, the TLS configuration will use the following protocol -versions: SSLv2Hello, TLSv1, TLSv1.1 and TLSv1.2. Protocol versions can -be configured by explicitly adding enabled protocols: - -``` js -Code not translatable -``` - -Protocol versions can be specified on the `NetServerOptions` or -`NetClientOptions` configuration. - -### SSL engine - -The engine implementation can be configured to use -[OpenSSL](https://www.openssl.org) instead of the JDK implementation. -OpenSSL provides better performances and CPU usage than the JDK engine, -as well as JDK version independence. - -The engine options to use is - - - the `getSslEngineOptions` options when it is set - - - otherwise `JdkSSLEngineOptions` - - - -``` js -// Use JDK SSL engine -let options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions); - -// Use JDK SSL engine explicitly -options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions) - .setJdkSslEngineOptions(new JdkSSLEngineOptions()); - -// Use OpenSSL engine -options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions(keyStoreOptions) - .setOpenSslEngineOptions(new OpenSSLEngineOptions()); -``` - -### Server Name Indication (SNI) - -Server Name Indication (SNI) is a TLS extension by which a client -specifies a hostname attempting to connect: during the TLS handshake the -client gives a server name and the server can use it to respond with a -specific certificate for this server name instead of the default -deployed certificate. If the server requires client authentication the -server can use a specific trusted CA certificate depending on the -indicated server name. - -When SNI is active the server uses - - - the certificate CN or SAN DNS (Subject Alternative Name with DNS) to - do an exact match, e.g `www.example.com` - - - the certificate CN or SAN DNS certificate to match a wildcard name, - e.g `*.example.com` - - - otherwise the first certificate when the client does not present a - server name or the presented server name cannot be matched - -When the server additionally requires client authentication: - - - if `JksOptions` were used to set the trust options (`options`) then - an exact match with the trust store alias is done - - - otherwise the available CA certificates are used in the same way as - if no SNI is in place - -You can enable SNI on the server by setting `setSni` to `true` and -configured the server with multiple key/certificate pairs. - -Java KeyStore files or PKCS12 files can store multiple key/cert pairs -out of the box. - -``` js -let keyCertOptions = new JksOptions() - .setPath("keystore.jks") - .setPassword("wibble"); - -let netServer = vertx.createNetServer(new NetServerOptions() - .setKeyStoreOptions(keyCertOptions) - .setSsl(true) - .setSni(true)); -``` - -`PemKeyCertOptions` can be configured to hold multiple entries: - -``` js -let keyCertOptions = new PemKeyCertOptions() - .setKeyPaths(["default-key.pem", "host1-key.pem", "etc..."]) - .setCertPaths(["default-cert.pem", "host2-key.pem", "etc..."]); - -let netServer = vertx.createNetServer(new NetServerOptions() - .setPemKeyCertOptions(keyCertOptions) - .setSsl(true) - .setSni(true)); -``` - -The client implicitly sends the connecting host as an SNI server name -for Fully Qualified Domain Name (FQDN). - -You can provide an explicit server name when connecting a socket - -``` js -let client = vertx.createNetClient(new NetClientOptions() - .setTrustStoreOptions(trustOptions) - .setSsl(true)); - -// Connect to 'localhost' and present 'server.name' server name -client.connect(1234, "localhost", "server.name", (res) => { - if (res.succeeded()) { - console.log("Connected!"); - let socket = res.result(); - } else { - console.log("Failed to connect: " + res.cause().getMessage()); - } -}); -``` - -It can be used for different purposes: - - - present a server name different than the server host - - - present a server name while connecting to an IP - - - force to present a server name when using shortname - -### Application-Layer Protocol Negotiation (ALPN) - -Application-Layer Protocol Negotiation (ALPN) is a TLS extension for -application layer protocol negotiation. It is used by HTTP/2: during the -TLS handshake the client gives the list of application protocols it -accepts and the server responds with a protocol it supports. - -If you are using Java 9, you are fine and you can use HTTP/2 out of the -box without extra steps. - -Java 8 does not supports ALPN out of the box, so ALPN should be enabled -by other means: - - - *OpenSSL* support - - - *Jetty-ALPN* support - -The engine options to use is - - - the `getSslEngineOptions` options when it is set - - - `JdkSSLEngineOptions` when ALPN is available for JDK - - - `OpenSSLEngineOptions` when ALPN is available for OpenSSL - - - otherwise it fails - -#### OpenSSL ALPN support - -OpenSSL provides native ALPN support. - -OpenSSL requires to configure `setOpenSslEngineOptions` and use -[netty-tcnative](http://netty.io/wiki/forked-tomcat-native.html) jar on -the classpath. Using tcnative may require OpenSSL to be installed on -your OS depending on the tcnative implementation. - -#### Jetty-ALPN support - -Jetty-ALPN is a small jar that overrides a few classes of Java 8 -distribution to support ALPN. - -The JVM must be started with the *alpn-boot-${version}.jar* in its -`bootclasspath`: - - -Xbootclasspath/p:/path/to/alpn-boot${version}.jar - -where ${version} depends on the JVM version, e.g. *8.1.7.v20160121* for -*OpenJDK 1.8.0u74* . The complete list is available on the [Jetty-ALPN -page](http://www.eclipse.org/jetty/documentation/current/alpn-chapter.html). - -The main drawback is that the version depends on the JVM. - -To solve this problem the *[Jetty ALPN -agent](https://github.com/jetty-project/jetty-alpn-agent)* can be use -instead. The agent is a JVM agent that will chose the correct ALPN -version for the JVM running it: - - -javaagent:/path/to/alpn/agent - -## Using a proxy for client connections - -The `NetClient` supports either a HTTP/1.x *CONNECT*, *SOCKS4a* or -*SOCKS5* proxy. - -The proxy can be configured in the `NetClientOptions` by setting a -`ProxyOptions` object containing proxy type, hostname, port and -optionally username and password. - -Here’s an example: - -``` js -let options = new NetClientOptions() - .setProxyOptions(new ProxyOptions() - .setType("SOCKS5") - .setHost("localhost") - .setPort(1080) - .setUsername("username") - .setPassword("secret")); -let client = vertx.createNetClient(options); -``` - -The DNS resolution is always done on the proxy server, to achieve the -functionality of a SOCKS4 client, it is necessary to resolve the DNS -address locally. diff --git a/docs/manual/@vertx/core/parsetools.md b/docs/manual/@vertx/core/parsetools.md deleted file mode 100644 index 7bf605c5a..000000000 --- a/docs/manual/@vertx/core/parsetools.md +++ /dev/null @@ -1,147 +0,0 @@ -# Record Parser - -The record parser allows you to easily parse protocols which are -delimited by a sequence of bytes, or fixed size records. It transforms a -sequence of input buffer to a sequence of buffer structured as -configured (either fixed size or separated records). - -For example, if you have a simple ASCII text protocol delimited by '\\n' -and the input is the following: - - buffer1:HELLO\nHOW ARE Y - buffer2:OU?\nI AM - buffer3: DOING OK - buffer4:\n - -The record parser would produce - - buffer1:HELLO - buffer2:HOW ARE YOU? - buffer3:I AM DOING OK - -Let’s see the associated code: - -``` js -import { RecordParser } from "@vertx/core" -import { Buffer } from "@vertx/core" -let parser = RecordParser.newDelimited("\n", (h) => { - console.log(h.toString()); -}); - -parser.handle(Buffer.buffer("HELLO\nHOW ARE Y")); -parser.handle(Buffer.buffer("OU?\nI AM")); -parser.handle(Buffer.buffer("DOING OK")); -parser.handle(Buffer.buffer("\n")); -``` - -You can also produce fixed sized chunks as follows: - -``` js -import { RecordParser } from "@vertx/core" -RecordParser.newFixed(4, (h) => { - console.log(h.toString()); -}); -``` - -For more details, check out the `RecordParser` class. - -# Json Parser - -You can easily parse JSON structures but that requires to provide the -JSON content at once, but it may not be convenient when you need to -parse very large structures. - -The non-blocking JSON parser is an event driven parser able to deal with -very large structures. It transforms a sequence of input buffer to a -sequence of JSON parse events. - -``` js -Code not translatable -``` - -The parser is non-blocking and emitted events are driven by the input -buffers. - -``` js -import { JsonParser } from "@vertx/core" -import { Buffer } from "@vertx/core" - -let parser = JsonParser.newParser(); - -// start array event -// start object event -// "firstName":"Bob" event -parser.handle(Buffer.buffer("[{\"firstName\":\"Bob\",")); - -// "lastName":"Morane" event -// end object event -parser.handle(Buffer.buffer("\"lastName\":\"Morane\"},")); - -// start object event -// "firstName":"Luke" event -// "lastName":"Lucky" event -// end object event -parser.handle(Buffer.buffer("{\"firstName\":\"Luke\",\"lastName\":\"Lucky\"}")); - -// end array event -parser.handle(Buffer.buffer("]")); - -// Always call end -parser.end(); -``` - -Event driven parsing provides more control but comes at the price of -dealing with fine grained events, which can be inconvenient sometimes. -The JSON parser allows you to handle JSON structures as values when it -is desired: - -``` js -Code not translatable -``` - -The value mode can be set and unset during the parsing allowing you to -switch between fine grained events or JSON object value events. - -``` js -Code not translatable -``` - -You can do the same with arrays as well - -``` js -Code not translatable -``` - -You can also decode POJOs - -``` js -parser.handler((event) => { - // Handle each object - // Get the field in which this object was parsed - let id = event.fieldName(); - let user = event.mapTo(Java.type("examples.ParseToolsExamples.User").class); - console.log("User with id " + id + " : " + user.firstName + " " + user.lastName); -}); -``` - -Whenever the parser fails to process a buffer, an exception will be -thrown unless you set an exception handler: - -``` js -import { JsonParser } from "@vertx/core" - -let parser = JsonParser.newParser(); - -parser.exceptionHandler((err) => { - // Catch any parsing or decoding error -}); -``` - -The parser also parses json streams: - - - concatenated json streams: `{"temperature":30}{"temperature":50}` - - - line delimited json streams: `{"an":"object"}\r\n3\r\n"a - string"\r\nnull` - -For more details, check out the `JsonParser` class. diff --git a/docs/manual/@vertx/core/shareddata.md b/docs/manual/@vertx/core/shareddata.md deleted file mode 100644 index 5d1304b1f..000000000 --- a/docs/manual/@vertx/core/shareddata.md +++ /dev/null @@ -1,300 +0,0 @@ -# Using the SharedData API - -As its name suggests, the `SharedData` API allows you to safely share -data between: - - - different parts of your application, or - - - different applications in the same Vert.x instance, or - - - different applications across a cluster of Vert.x instances. - -In practice, it provides: - - - synchronous maps (local-only) - - - asynchronous maps - - - asynchronous locks - - - asynchronous counters - -> **Important** -> -> The behavior of the distributed data structure depends on the cluster -> manager you use. Backup (replication) and behavior when a network -> partition is faced are defined by the cluster manager and its -> configuration. Please refer to the cluster manager documentation as -> well as to the underlying framework manual. - -## Local maps - -`Local maps` allow you to share data safely between different event -loops (e.g. different verticles) in the same Vert.x instance. - -They only allow certain data types to be used as keys and values: - - - immutable types (e.g. strings, booleans, …​ etc), or - - - types implementing the `Shareable` interface (buffers, JSON arrays, - JSON objects, or your own shareable objects). - -In the latter case the key/value will be copied before putting it into -the map. - -This way we can ensure there is no *shared access to mutable state* -between different threads in your Vert.x application. And you won’t have -to worry about protecting that state by synchronising access to it. - -Here’s an example of using a shared local map: - -``` js -import { Buffer } from "@vertx/core" -let sharedData = vertx.sharedData(); - -let map1 = sharedData.getLocalMap("mymap1"); - -map1.put("foo", "bar"); - -let map2 = sharedData.getLocalMap("mymap2"); - -map2.put("eek", Buffer.buffer().appendInt(123)); - -// Then... in another part of your application: - -map1 = sharedData.getLocalMap("mymap1"); - -let val = map1.get("foo"); - -map2 = sharedData.getLocalMap("mymap2"); - -let buff = map2.get("eek"); -``` - -## Asynchronous shared maps - -`Asynchronous shared maps` allow data to be put in the map and retrieved -locally or from any other node. - -This makes them really useful for things like storing session state in a -farm of servers hosting a Vert.x Web application. - -Getting the map is asynchronous and the result is returned to you in the -handler that you specify. Here’s an example: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getAsyncMap("mymap", (res) => { - if (res.succeeded()) { - let map = res.result(); - } else { - // Something went wrong! - } -}); -``` - -When Vert.x is clustered, data that you put into the map is accessible -locally as well as on any of the other cluster members. - -> **Important** -> -> In clustered mode, asynchronous shared maps rely on distributed data -> structures provided by the cluster manager. Beware that the latency -> relative to asynchronous shared map operations can be much higher in -> clustered than in local mode. - -If your application doesn’t need data to be shared with every other -node, you can retrieve a local-only map: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLocalAsyncMap("mymap", (res) => { - if (res.succeeded()) { - // Local-only async map - let map = res.result(); - } else { - // Something went wrong! - } -}); -``` - -### Putting data in a map - -You put data in a map with `put`. - -The actual put is asynchronous and the handler is notified once it is -complete: - -``` js -map.put("foo", "bar", (resPut) => { - if (resPut.succeeded()) { - // Successfully put the value - } else { - // Something went wrong! - } -}); -``` - -### Getting data from a map - -You get data from a map with `get`. - -The actual get is asynchronous and the handler is notified with the -result some time later: - -``` js -map.get("foo", (resGet) => { - if (resGet.succeeded()) { - // Successfully got the value - let val = resGet.result(); - } else { - // Something went wrong! - } -}); -``` - -#### Other map operations - -You can also remove entries from an asynchronous map, clear them and get -the size. - -See the `API docs` for a detailed list of map operations. - -## Asynchronous locks - -`Asynchronous locks` allow you to obtain exclusive locks locally or -across the cluster. This is useful when you want to do something or -access a resource on only one node of a cluster at any one time. - -Asynchronous locks have an asynchronous API unlike most lock APIs which -block the calling thread until the lock is obtained. - -To obtain a lock use `getLock`. This won’t block, but when the lock is -available, the handler will be called with an instance of `Lock`, -signalling that you now own the lock. - -While you own the lock, no other caller, locally or on the cluster, will -be able to obtain the lock. - -When you’ve finished with the lock, you call `release` to release it, so -another caller can obtain it: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLock("mylock", (res) => { - if (res.succeeded()) { - // Got the lock! - let lock = res.result(); - - // 5 seconds later we release the lock so someone else can get it - - vertx.setTimer(5000, (tid) => { - lock.release(); - }); - - } else { - // Something went wrong - } -}); -``` - -You can also get a lock with a timeout. If it fails to obtain the lock -within the timeout the handler will be called with a failure: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLockWithTimeout("mylock", 10000, (res) => { - if (res.succeeded()) { - // Got the lock! - let lock = res.result(); - - } else { - // Failed to get lock - } -}); -``` - -See the `API docs` for a detailed list of lock operations. - -> **Important** -> -> In clustered mode, asynchronous locks rely on distributed data -> structures provided by the cluster manager. Beware that the latency -> relative to asynchronous shared lock operations can be much higher in -> clustered than in local mode. - -If your application doesn’t need the lock to be shared with every other -node, you can retrieve a local-only lock: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLocalLock("mylock", (res) => { - if (res.succeeded()) { - // Local-only lock - let lock = res.result(); - - // 5 seconds later we release the lock so someone else can get it - - vertx.setTimer(5000, (tid) => { - lock.release(); - }); - - } else { - // Something went wrong - } -}); -``` - -## Asynchronous counters - -It’s often useful to maintain an atomic counter locally or across the -different nodes of your application. - -You can do this with `Counter`. - -You obtain an instance with `getCounter`: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getCounter("mycounter", (res) => { - if (res.succeeded()) { - let counter = res.result(); - } else { - // Something went wrong! - } -}); -``` - -Once you have an instance you can retrieve the current count, atomically -increment it, decrement and add a value to it using the various methods. - -See the `API docs` for a detailed list of counter operations. - -> **Important** -> -> In clustered mode, asynchronous counters rely on distributed data -> structures provided by the cluster manager. Beware that the latency -> relative to asynchronous shared counter operations can be much higher -> in clustered than in local mode. - -If your application doesn’t need the counter to be shared with every -other node, you can retrieve a local-only counter: - -``` js -let sharedData = vertx.sharedData(); - -sharedData.getLocalCounter("mycounter", (res) => { - if (res.succeeded()) { - // Local-only counter - let counter = res.result(); - } else { - // Something went wrong! - } -}); -``` diff --git a/docs/manual/@vertx/core/streams.md b/docs/manual/@vertx/core/streams.md deleted file mode 100644 index 6c2e98739..000000000 --- a/docs/manual/@vertx/core/streams.md +++ /dev/null @@ -1,312 +0,0 @@ -# Streams - -There are several objects in Vert.x that allow items to be read from and -written. - -In previous versions the `io.vertx.core.streams` package was -manipulating `Buffer` objects exclusively. From now, streams are not -coupled to buffers anymore and they work with any kind of objects. - -In Vert.x, write calls return immediately, and writes are queued -internally. - -It’s not hard to see that if you write to an object faster than it can -actually write the data to its underlying resource, then the write queue -can grow unbounded - eventually resulting in memory exhaustion. - -To solve this problem a simple flow control (*back-pressure*) capability -is provided by some objects in the Vert.x API. - -Any flow control aware object that can be *written-to* implements -`WriteStream`, while any flow control object that can be *read-from* is -said to implement `ReadStream`. - -Let’s take an example where we want to read from a `ReadStream` then -write the data to a `WriteStream`. - -A very simple example would be reading from a `NetSocket` then writing -back to the same `NetSocket` - since `NetSocket` implements both -`ReadStream` and `WriteStream`. Note that this works between any -`ReadStream` and `WriteStream` compliant object, including HTTP -requests, HTTP responses, async files I/O, WebSockets, etc. - -A naive way to do this would be to directly take the data that has been -read and immediately write it to the `NetSocket`: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - // Write the data straight back - sock.write(buffer); - }); -}).listen(); -``` - -There is a problem with the example above: if data is read from the -socket faster than it can be written back to the socket, it will build -up in the write queue of the `NetSocket`, eventually running out of RAM. -This might happen, for example if the client at the other end of the -socket wasn’t reading fast enough, effectively putting back-pressure on -the connection. - -Since `NetSocket` implements `WriteStream`, we can check if the -`WriteStream` is full before writing to it: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - if (!sock.writeQueueFull()) { - sock.write(buffer); - } - }); - -}).listen(); -``` - -This example won’t run out of RAM but we’ll end up losing data if the -write queue gets full. What we really want to do is pause the -`NetSocket` when the write queue is full: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - sock.write(buffer); - if (sock.writeQueueFull()) { - sock.pause(); - } - }); -}).listen(); -``` - -We’re almost there, but not quite. The `NetSocket` now gets paused when -the file is full, but we also need to unpause it when the write queue -has processed its backlog: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.handler((buffer) => { - sock.write(buffer); - if (sock.writeQueueFull()) { - sock.pause(); - sock.drainHandler((done) => { - sock.resume(); - }); - } - }); -}).listen(); -``` - -And there we have it. The `drainHandler` event handler will get called -when the write queue is ready to accept more data, this resumes the -`NetSocket` that allows more data to be read. - -Wanting to do this is quite common while writing Vert.x applications, so -we added the `pipeTo` method that does all of this hard work for you. -You just feed it the `WriteStream` and use it: - -``` js -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - sock.pipeTo(sock); -}).listen(); -``` - -This does exactly the same thing as the more verbose example, plus it -handles stream failures and termination: the destination `WriteStream` -is ended when the pipe completes with success or a failure. - -You can be notified when the operation completes: - -``` js -server.connectHandler((sock) => { - - // Pipe the socket providing an handler to be notified of the result - sock.pipeTo(sock, (ar) => { - if (ar.succeeded()) { - console.log("Pipe succeeded"); - } else { - console.log("Pipe failed"); - } - }); -}).listen(); -``` - -When you deal with an asynchronous destination, you can create a `Pipe` -instance that pauses the source and resumes it when the source is piped -to the destination: - -``` js -server.connectHandler((sock) => { - - // Create a pipe to use asynchronously - let pipe = sock.pipe(); - - // Open a destination file - fs.open("/path/to/file", new OpenOptions(), (ar) => { - if (ar.succeeded()) { - let file = ar.result(); - - // Pipe the socket to the file and close the file at the end - pipe.to(file); - } else { - sock.close(); - } - }); -}).listen(); -``` - -When you need to abort the transfer, you need to close it: - -``` js -vertx.createHttpServer().requestHandler((request) => { - - // Create a pipe that to use asynchronously - let pipe = request.pipe(); - - // Open a destination file - fs.open("/path/to/file", new OpenOptions(), (ar) => { - if (ar.succeeded()) { - let file = ar.result(); - - // Pipe the socket to the file and close the file at the end - pipe.to(file); - } else { - // Close the pipe and resume the request, the body buffers will be discarded - pipe.close(); - - // Send an error response - request.response().setStatusCode(500).end(); - } - }); -}).listen(8080); -``` - -When the pipe is closed, the streams handlers are unset and the -`ReadStream` resumed. - -As seen above, by default the destination is always ended when the -stream completes, you can control this behavior on the pipe object: - - - `endOnFailure` controls the behavior when a failure happens - - - `endOnSuccess` controls the behavior when the read stream ends - - - `endOnComplete` controls the behavior in all cases - -Here is a short example: - -``` js -import { Buffer } from "@vertx/core" -src.pipe().endOnSuccess(false).to(dst, (rs) => { - // Append some text and close the file - dst.end(Buffer.buffer("done")); -}); -``` - -Let’s now look at the methods on `ReadStream` and `WriteStream` in more -detail: - -## ReadStream - -`ReadStream` is implemented by `HttpClientResponse`, `DatagramSocket`, -`HttpClientRequest`, `HttpServerFileUpload`, `HttpServerRequest`, -`MessageConsumer`, `NetSocket`, `WebSocket`, `TimeoutStream`, -`AsyncFile`. - -Functions: - - - `handler`: set a handler which will receive items from the - ReadStream. - - - `pause`: pause the handler. When paused no items will be received in - the handler. - - - `resume`: resume the handler. The handler will be called if any item - arrives. - - - `exceptionHandler`: Will be called if an exception occurs on the - ReadStream. - - - `endHandler`: Will be called when end of stream is reached. This - might be when EOF is reached if the ReadStream represents a file, or - when end of request is reached if it’s an HTTP request, or when the - connection is closed if it’s a TCP socket. - -## WriteStream - -`WriteStream` is implemented by `HttpClientRequest`, -`HttpServerResponse` `WebSocket`, `NetSocket`, `AsyncFile`, and -`MessageProducer` - -Functions: - - - `write`: write an object to the WriteStream. This method will never - block. Writes are queued internally and asynchronously written to - the underlying resource. - - - `setWriteQueueMaxSize`: set the number of object at which the write - queue is considered *full*, and the method `writeQueueFull` returns - `true`. Note that, when the write queue is considered full, if write - is called the data will still be accepted and queued. The actual - number depends on the stream implementation, for `Buffer` the size - represents the actual number of bytes written and not the number of - buffers. - - - `writeQueueFull`: returns `true` if the write queue is considered - full. - - - `exceptionHandler`: Will be called if an exception occurs on the - `WriteStream`. - - - `drainHandler`: The handler will be called if the `WriteStream` is - considered no longer full. - -## Pump - -The pump exposes a subset of the pipe API and only transfers the items -between streams, it does not handle the completion or failure of the -transfer operation. - -``` js -import { Pump } from "@vertx/core" -let server = vertx.createNetServer(new NetServerOptions() - .setPort(1234) - .setHost("localhost")); -server.connectHandler((sock) => { - Pump.pump(sock, sock).start(); -}).listen(); -``` - -> **Important** -> -> Before Vert.x 3.7 the `Pump` was the advocated API for transferring a -> read stream to a write stream. Since 3.7 the pipe API supersedes the -> pump API. - -Instances of Pump have the following methods: - - - `start`: Start the pump. - - - `stop`: Stops the pump. When the pump starts it is in stopped mode. - - - `setWriteQueueMaxSize`: This has the same meaning as - `setWriteQueueMaxSize` on the `WriteStream`. - -A pump can be started and stopped multiple times. - -When a pump is first created it is *not* started. You need to call the -`start()` method to start it. diff --git a/docs/manual/@vertx/dropwizard-metrics/dataobjects.md b/docs/manual/@vertx/dropwizard-metrics/dataobjects.md deleted file mode 100644 index e2b6df6a1..000000000 --- a/docs/manual/@vertx/dropwizard-metrics/dataobjects.md +++ /dev/null @@ -1,29 +0,0 @@ -# DropwizardMetricsOptions - -Vert.x Dropwizard metrics configuration. - -| | | | -| ------------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@baseName` | `String` | Set a custom baseName for metrics. | -| `@configPath` | `String` | Set the path for a config file that contains options in JSON format, to be used to create a new options object. The file will be looked for on the file system first and then on the classpath if it's not found. | -| `@enabled` | `Boolean` | \- | -| `@jmxDomain` | `String` | Set the JMX domain to use when JMX metrics are enabled. | -| `@jmxEnabled` | `Boolean` | Set whether JMX will be enabled on the Vert.x instance. | -| `@monitoredEventBusHandlers` | `Array of Match` | Add a monitored event bus handler. | -| `@monitoredHttpClientEndpoint` | `Array of Match` | | -| `@monitoredHttpClientEndpoints` | `Array of Match` | Add an monitored http client endpoint. | -| `@monitoredHttpClientUris` | `Array of Match` | Add an monitored http client uri. | -| `@monitoredHttpServerUris` | `Array of Match` | Add an monitored http server uri. | -| `@registryName` | `String` | Set the name used for registering the metrics in the Dropwizard shared registry. | - -# Match - -A match for a value. - -| | | | -| -------- | ----------- | ---------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@alias` | `String` | Set the alias the human readable name that will be used as a part of registry entry name when the value matches. | -| `@type` | `MatchType` | Set the type of matching to apply. | -| `@value` | `String` | Set the matched value. | diff --git a/docs/manual/@vertx/dropwizard-metrics/hawtio-connect.png b/docs/manual/@vertx/dropwizard-metrics/hawtio-connect.png deleted file mode 100644 index 78e6c3d1470c07979967d12be3aa6e813e0660f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35910 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

-

-

-

-

- [snip] - -Please consult the [Thymeleaf documentation](http://www.thymeleaf.org/) -for how to write Thymeleaf templates. - -## Apache FreeMarker template engine - -To use Apache FreeMarker, you need to add the following *dependency* to -your project: -`${maven.groupId}:vertx-web-templ-freemarker:${maven.version}`. Create -an instance of the Apache FreeMarker template engine using: -`io.vertx.ext.web.templ.Engine#create()`. - -When using the Apache FreeMarker template engine, it will by default -look for templates with the `.ftl` extension if no extension is -specified in the file name. - -The routing context `RoutingContext` is available in the Apache -FreeMarker template as the `context` variable, this means you can render -the template based on anything in the context including the request, -response, session or context data. - -Here are some examples: - -```html -

-

-

-

-

-``` - -Please consult the [Apache FreeMarker -documentation](http://www.freemarker.org/) for how to write Apache -FreeMarker templates. - -## Pebble template engine - -To use Pebble, you need to add the following *dependency* to your -project: `io.vertx:vertx-web-templ-pebble:${maven.version}`. Create an -instance of the Pebble template engine using: -`io.vertx.ext.web.templ.PebbleTemplateEngine#create(vertx)`. - -When using the Pebble template engine, it will by default look for -templates with the `.peb` extension if no extension is specified in the -file name. - -The routing context `RoutingContext` is available in the Pebble template -as the `context` variable, this means you can render the template based -on anything in the context including the request, response, session or -context data. - -Here are some examples: - -``` html -

-

-

-

-

-``` - -Please consult the [Pebble -documentation](http://www.mitchellbosecke.com/pebble/home/) for how to -write Pebble templates. - -## Rocker template engine - -To use Rocker, then add -`io.vertx:vertx-web-templ-rocker:${maven.version}` as a dependency to -your project. You can then create a Rocker template engine instance with -`io.vertx.ext.web.templ.rocker#create()`. - -The values of the JSON context object passed to the `render` method are -then exposed as template parameters. Given: - -``` java - final JsonObject context = new JsonObject() - .put("foo", "badger") - .put("bar", "fox") - .put("context", new JsonObject().put("path", "/foo/bar")); - - engine.render(context, "somedir/TestRockerTemplate2", render -> { - // (...) - }); -``` - -then the template can be as the following -`somedir/TestRockerTemplate2.rocker.html` resource file: - - @import io.vertx.core.json.JsonObject - @args (JsonObject context, String foo, String bar) - Hello @foo and @bar - Request path is @context.getString("path") - -## Disabling caching - -During development you might want to disable template caching so that -the template gets reevaluated on each request. In order to do this you -need to set the system property: -`io.vertx.ext.web.TemplateEngine.disableCache` to `true`. - -By default it will be false. So caching is always enabled. - -# Error handler - -You can render your own errors using a template handler or otherwise but -Vert.x-Web also includes an out of the boxy "pretty" error handler that -can render error pages for you. - -The handler is `ErrorHandler`. To use the error handler just set it as a -failure handler for any paths that you want covered. - -# Request logger - -Vert.x-Web includes a handler `LoggerHandler` that you can use to log -HTTP requests. You should mount this handler before any handler that -could fail the `RoutingContext` - -By default requests are logged to the Vert.x logger which can be -configured to use JUL logging, log4j or SLF4J. - -See `LoggerFormat`. - -# Serving favicons - -Vert.x-Web includes the handler `FaviconHandler` especially for serving -favicons. - -Favicons can be specified using a path to the filesystem, or by default -Vert.x-Web will look for a file on the classpath with the name -`favicon.ico`. This means you bundle the favicon in the jar of your -application. - -# Timeout handler - -Vert.x-Web includes a timeout handler that you can use to timeout -requests if they take too long to process. - -This is configured using an instance of `TimeoutHandler`. - -If a request times out before the response is written a `503` response -will be returned to the client. - -Here’s an example of using a timeout handler which will timeout all -requests to paths starting with `/foo` after 5 seconds: - -``` js -import { TimeoutHandler } from "@vertx/web" - -router.route("/foo/").handler(TimeoutHandler.create(5000)); -``` - -# Response time handler - -This handler sets the header `x-response-time` response header -containing the time from when the request was received to when the -response headers were written, in ms., e.g.: - -x-response-time: 1456ms - -# Content type handler - -The `ResponseContentTypeHandler` can set the `Content-Type` header -automatically. Suppose we are building a RESTful web application. We -need to set the content type in all our handlers: - -``` js -router.get("/api/books").produces("application/json").handler((rc) => { - findBooks((ar) => { - if (ar.succeeded()) { - rc.response().putHeader("Content-Type", "application/json").end(toJson(ar.result())); - } else { - rc.fail(ar.cause()); - } - }); -}); -``` - -If the API surface becomes pretty large, setting the content type can -become cumbersome. To avoid this situation, add the -`ResponseContentTypeHandler` to the corresponding routes: - -``` js -import { ResponseContentTypeHandler } from "@vertx/web" -router.route("/api/*").handler(ResponseContentTypeHandler.create()); -router.get("/api/books").produces("application/json").handler((rc) => { - findBooks((ar) => { - if (ar.succeeded()) { - rc.response().end(toJson(ar.result())); - } else { - rc.fail(ar.cause()); - } - }); -}); -``` - -The handler gets the approriate content type from -`getAcceptableContentType`. As a consequence, you can easily share the -same handler to produce data of different types: - -``` js -import { ResponseContentTypeHandler } from "@vertx/web" -router.route("/api/*").handler(ResponseContentTypeHandler.create()); -router.get("/api/books").produces("text/xml").produces("application/json").handler((rc) => { - findBooks((ar) => { - if (ar.succeeded()) { - if (rc.getAcceptableContentType() == "text/xml") { - rc.response().end(toXML(ar.result())); - } else { - rc.response().end(toJson(ar.result())); - } - } else { - rc.fail(ar.cause()); - } - }); -}); -``` - -# SockJS - -SockJS is a client side JavaScript library and protocol which provides a -simple WebSocket-like interface allowing you to make connections to -SockJS servers irrespective of whether the actual browser or network -will allow real WebSockets. - -It does this by supporting various different transports between browser -and server, and choosing one at run-time according to browser and -network capabilities. - -All this is transparent to you - you are simply presented with the -WebSocket-like interface which *just works*. - -Please see the [SockJS website](https://github.com/sockjs/sockjs-client) -for more information on SockJS. - -## SockJS handler - -Vert.x provides an out of the box handler called `SockJSHandler` for -using SockJS in your Vert.x-Web applications. - -You should create one handler per SockJS application using -`SockJSHandler.create`. You can also specify configuration options when -creating the instance. The configuration options are described with an -instance of `SockJSHandlerOptions`. - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" - -let router = Router.router(vertx); - -let options = new SockJSHandlerOptions() - .setHeartbeatInterval(2000); - -let sockJSHandler = SockJSHandler.create(vertx, options); - -router.route("/myapp/*").handler(sockJSHandler); -``` - -## Handling SockJS sockets - -On the server-side you set a handler on the SockJS handler, and this -will be called every time a SockJS connection is made from a client: - -The object passed into the handler is a `SockJSSocket`. This has a -familiar socket-like interface which you can read and write to similarly -to a `NetSocket` or a `WebSocket`. It also implements `ReadStream` and -`WriteStream` so you can pump it to and from other read and write -streams. - -Here’s an example of a simple SockJS handler that simply echoes back any -back any data that it reads: - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" - -let router = Router.router(vertx); - -let options = new SockJSHandlerOptions() - .setHeartbeatInterval(2000); - -let sockJSHandler = SockJSHandler.create(vertx, options); - -sockJSHandler.socketHandler((sockJSSocket) => { - - // Just echo the data back - sockJSSocket.handler(sockJSSocket.write); -}); - -router.route("/myapp/*").handler(sockJSHandler); -``` - -## The client side - -In client side JavaScript you use the SockJS client side library to make -connections. - -You can find that -[here](http://cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js). - -Full details for using the SockJS JavaScript client are on the [SockJS -website](https://github.com/sockjs/sockjs-client), but in summary you -use it something like this: - - var sock = new SockJS('http://mydomain.com/myapp'); - - sock.onopen = function() { - console.log('open'); - }; - - sock.onmessage = function(e) { - console.log('message', e.data); - }; - - sock.onclose = function() { - console.log('close'); - }; - - sock.send('test'); - - sock.close(); - -## Configuring the SockJS handler - -The handler can be configured with various options using -`SockJSHandlerOptions`. - - - `insertJSESSIONID` - Insert a JSESSIONID cookie so load-balancers ensure requests for a - specific SockJS session are always routed to the correct server. - Default is `true`. - - - `sessionTimeout` - The server sends a `close` event when a client receiving connection - have not been seen for a while. This delay is configured by this - setting. By default the `close` event will be emitted when a - receiving connection wasn’t seen for 5 seconds. - - - `heartbeatInterval` - In order to keep proxies and load balancers from closing long - running http requests we need to pretend that the connection is - active and send a heartbeat packet once in a while. This setting - controls how often this is done. By default a heartbeat packet is - sent every 25 seconds. - - - `maxBytesStreaming` - Most streaming transports save responses on the client side and - don’t free memory used by delivered messages. Such transports need - to be garbage-collected once in a while. `max_bytes_streaming` sets - a minimum number of bytes that can be send over a single http - streaming request before it will be closed. After that client needs - to open new request. Setting this value to one effectively disables - streaming and will make streaming transports to behave like polling - transports. The default value is 128K. - - - `libraryURL` - Transports which don’t support cross-domain communication natively - ('eventsource' to name one) use an iframe trick. A simple page is - served from the SockJS server (using its foreign domain) and is - placed in an invisible iframe. Code run from this iframe doesn’t - need to worry about cross-domain issues, as it’s being run from - domain local to the SockJS server. This iframe also does need to - load SockJS javascript client library, and this option lets you - specify its url (if you’re unsure, point it to the latest minified - SockJS client release, this is the default). The default value is - `http://cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js` - - - `disabledTransports` - This is a list of transports that you want to disable. Possible - values are WEBSOCKET, EVENT\_SOURCE, HTML\_FILE, JSON\_P, XHR. - -# SockJS event bus bridge - -Vert.x-Web comes with a built-in SockJS socket handler called the event -bus bridge which effectively extends the server-side Vert.x event bus -into client side JavaScript. - -This creates a distributed event bus which not only spans multiple -Vert.x instances on the server side, but includes client side JavaScript -running in browsers. - -We can therefore create a huge distributed bus encompassing many -browsers and servers. The browsers don’t have to be connected to the -same server as long as the servers are connected. - -This is done by providing a simple client side JavaScript library called -`vertx-eventbus.js` which provides an API very similar to the -server-side Vert.x event-bus API, which allows you to send and publish -messages to the event bus and register handlers to receive messages. - -This JavaScript library uses the JavaScript SockJS client to tunnel the -event bus traffic over SockJS connections terminating at at a -`SockJSHandler` on the server-side. - -A special SockJS socket handler is then installed on the `SockJSHandler` -which handles the SockJS data and bridges it to and from the server side -event bus. - -To activate the bridge you simply call `bridge` on the SockJS handler. - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" - -let router = Router.router(vertx); - -let sockJSHandler = SockJSHandler.create(vertx); -let options = new SockJSBridgeOptions(); -// mount the bridge on the router -router.mountSubRouter("/eventbus", sockJSHandler.bridge(options)); -``` - -In client side JavaScript you use the 'vertx-eventbus.js\` library to -create connections to the event bus and to send and receive messages: - -``` html - - - - -``` - -The first thing the example does is to create a instance of the event -bus - -``` javascript -var eb = new EventBus('http://localhost:8080/eventbus'); -``` - -The parameter to the constructor is the URI where to connect to the -event bus. Since we create our bridge with the prefix `eventbus` we will -connect there. - -You can’t actually do anything with the connection until it is opened. -When it is open the `onopen` handler will be called. - -The bridge supports automatic reconnection, with configurable delay and -backoff options. - -``` javascript -var eb = new EventBus('http://localhost:8080/eventbus'); -eb.enableReconnect(true); -eb.onopen = function() {}; // Set up handlers here, will be called on initial connection and all reconnections -eb.onreconnect = function() {}; // Optional, will only be called on reconnections - -// Alternatively, pass in an options object -var options = { - vertxbus_reconnect_attempts_max: Infinity, // Max reconnect attempts - vertxbus_reconnect_delay_min: 1000, // Initial delay (in ms) before first reconnect attempt - vertxbus_reconnect_delay_max: 5000, // Max delay (in ms) between reconnect attempts - vertxbus_reconnect_exponent: 2, // Exponential backoff factor - vertxbus_randomization_factor: 0.5 // Randomization factor between 0 and 1 -}; - -var eb2 = new EventBus('http://localhost:8080/eventbus', options); -eb2.enableReconnect(true); -// Set up handlers... -``` - -You can retrieve the client library using a dependency manager: - - - Maven (in your `pom.xml`): - - - -``` xml - - ${maven.groupId} - ${maven.artifactId} - ${maven.version} - client - js - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile '${maven.groupId}:${maven.artifactId}:${maven.version}:client' -``` - -The library is also available on: - - - [NPM](https://www.npmjs.com/package/vertx3-eventbus-client) - - - [Bower](https://github.com/vert-x3/vertx-bus-bower) - - - [cdnjs](https://cdnjs.com/libraries/vertx) - -Notice that the API has changed between the 3.0.0 and 3.1.0 version. -Please check the changelog. The previous client is still compatible and -can still be used, but the new client offers more feature and is closer -to the vert.x event bus API. - -## Securing the Bridge - -If you started a bridge like in the above example without securing it, -and attempted to send messages through it you’d find that the messages -mysteriously disappeared. What happened to them? - -For most applications you probably don’t want client side JavaScript -being able to send just any message to any handlers on the server side -or to all other browsers. - -For example, you may have a service on the event bus which allows data -to be accessed or deleted. We don’t want badly behaved or malicious -clients being able to delete all the data in your database\! - -Also, we don’t necessarily want any client to be able to listen in on -any event bus address. - -To deal with this, a SockJS bridge will by default refuse to let through -any messages. It’s up to you to tell the bridge what messages are ok for -it to pass through. (There is an exception for reply messages which are -always allowed through). - -In other words the bridge acts like a kind of firewall which has a -default *deny-all* policy. - -Configuring the bridge to tell it what messages it should pass through -is easy. - -You can specify which *matches* you want to allow for inbound and -outbound traffic using the `SockJSBridgeOptions` that you pass in when -calling bridge. - -Each match is a `PermittedOptions` object: - - - `setAddress` - This represents the exact address the message is being sent to. If - you want to allow messages based on an exact address you use this - field. - - - `setAddressRegex` - This is a regular expression that will be matched against the - address. If you want to allow messages based on a regular expression - you use this field. If the `address` field is specified this field - will be ignored. - - - `setMatch` - This allows you to allow messages based on their structure. Any - fields in the match must exist in the message with the same values - for them to be allowed. This currently only works with JSON - messages. - -If a message is *in-bound* (i.e. being sent from client side JavaScript -to the server) when it is received Vert.x-Web will look through any -inbound permitted matches. If any match, it will be allowed through. - -If a message is *out-bound* (i.e. being sent from the server to client -side JavaScript) before it is sent to the client Vert.x-Web will look -through any outbound permitted matches. If any match, it will be allowed -through. - -The actual matching works as follows: - -If an `address` field has been specified then the `address` must match -*exactly* with the address of the message for it to be considered -matched. - -If an `address` field has not been specified and an `addressRegex` field -has been specified then the regular expression in `address_re` must -match with the address of the message for it to be considered matched. - -If a `match` field has been specified, then also the structure of the -message must match. Structuring matching works by looking at all the -fields and values in the match object and checking they all exist in the -actual message body. - -Here’s an example: - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" - -let router = Router.router(vertx); - -let sockJSHandler = SockJSHandler.create(vertx); - - -// Let through any messages sent to 'demo.orderMgr' from the client -let inboundPermitted1 = new PermittedOptions() - .setAddress("demo.orderMgr"); - -// Allow calls to the address 'demo.persistor' from the client as long as the messages -// have an action field with value 'find' and a collection field with value -// 'albums' -let inboundPermitted2 = new PermittedOptions() - .setAddress("demo.persistor") - .setMatch({ - "action" : "find", - "collection" : "albums" - }); - -// Allow through any message with a field `wibble` with value `foo`. -let inboundPermitted3 = new PermittedOptions() - .setMatch({ - "wibble" : "foo" - }); - -// First let's define what we're going to allow from server -> client - -// Let through any messages coming from address 'ticker.mystock' -let outboundPermitted1 = new PermittedOptions() - .setAddress("ticker.mystock"); - -// Let through any messages from addresses starting with "news." (e.g. news.europe, news.usa, etc) -let outboundPermitted2 = new PermittedOptions() - .setAddressRegex("news\\..+"); - -// Let's define what we're going to allow from client -> server -let options = new SockJSBridgeOptions() - .setInboundPermitteds([inboundPermitted1, inboundPermitted1, inboundPermitted3]) - .setOutboundPermitteds([outboundPermitted1, outboundPermitted2]); - -// mount the bridge on the router -router.mountSubRouter("/eventbus", sockJSHandler.bridge(options)); -``` - -## Requiring authorisation for messages - -The event bus bridge can also be configured to use the Vert.x-Web -authorisation functionality to require authorisation for messages, -either in-bound or out-bound on the bridge. - -To do this, you can add extra fields to the match described in the -previous section that determine what authority is required for the -match. - -To declare that a specific authority for the logged-in user is required -in order to access allow the messages you use the `setRequiredAuthority` -field. - -Here’s an example: - -``` js -// Let through any messages sent to 'demo.orderService' from the client -let inboundPermitted = new PermittedOptions() - .setAddress("demo.orderService"); - -// But only if the user is logged in and has the authority "place_orders" -inboundPermitted.requiredAuthority = "place_orders"; - -let options = new SockJSBridgeOptions() - .setInboundPermitteds([inboundPermitted]); -``` - -For the user to be authorised they must be first logged in and secondly -have the required authority. - -To handle the login and actually auth you can configure the normal -Vert.x auth handlers. For example: - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" -import { LocalSessionStore } from "@vertx/web" -import { SessionHandler } from "@vertx/web" -import { BasicAuthHandler } from "@vertx/web" - -let router = Router.router(vertx); - -// Let through any messages sent to 'demo.orderService' from the client -let inboundPermitted = new PermittedOptions() - .setAddress("demo.orderService"); - -// But only if the user is logged in and has the authority "place_orders" -inboundPermitted.requiredAuthority = "place_orders"; - -let sockJSHandler = SockJSHandler.create(vertx); - -// Now set up some basic auth handling: - -router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx))); - -let basicAuthHandler = BasicAuthHandler.create(authProvider); - -router.route("/eventbus/*").handler(basicAuthHandler); - -// mount the bridge on the router -router.mountSubRouter("/eventbus", sockJSHandler.bridge(new SockJSBridgeOptions() - .setInboundPermitteds([inboundPermitted]))); -``` - -## Handling event bus bridge events - -If you want to be notified when an event occurs on the bridge you can -provide a handler when calling `bridge`. - -Whenever an event occurs on the bridge it will be passed to the handler. -The event is described by an instance of `BridgeEvent`. - -The event can be one of the following types: - - - SOCKET\_CREATED - This event will occur when a new SockJS socket is created. - - - SOCKET\_IDLE - This event will occur when SockJS socket is on idle for longer - period of time than initially configured. - - - SOCKET\_PING - This event will occur when the last ping timestamp is updated for - the SockJS socket. - - - SOCKET\_CLOSED - This event will occur when a SockJS socket is closed. - - - SEND - This event will occur when a message is attempted to be sent from - the client to the server. - - - PUBLISH - This event will occur when a message is attempted to be published - from the client to the server. - - - RECEIVE - This event will occur when a message is attempted to be delivered - from the server to the client. - - - REGISTER - This event will occur when a client attempts to register a handler. - - - UNREGISTER - This event will occur when a client attempts to unregister a - handler. - -The event enables you to retrieve the type using `type` and inspect the -raw message of the event using `getRawMessage`. - -The raw message is a JSON object with the following structure: - - { - "type": "send"|"publish"|"receive"|"register"|"unregister", - "address": the event bus address being sent/published/registered/unregistered - "body": the body of the message - } - -The event is also an instance of `Future`. When you are finished -handling the event you can complete the future with `true` to enable -further processing. - -If you don’t want the event to be processed you can complete the future -with `false`. This is a useful feature that enables you to do your own -filtering on messages passing through the bridge, or perhaps apply some -fine grained authorisation or metrics. - -Here’s an example where we reject all messages flowing through the -bridge if they contain the word "Armadillos". - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" - -let router = Router.router(vertx); - -// Let through any messages sent to 'demo.orderMgr' from the client -let inboundPermitted = new PermittedOptions() - .setAddress("demo.someService"); - -let sockJSHandler = SockJSHandler.create(vertx); -let options = new SockJSBridgeOptions() - .setInboundPermitteds([inboundPermitted]); - -// mount the bridge on the router -router.mountSubRouter("/eventbus", sockJSHandler.bridge(options, (be) => { - if (be.type() === BridgeEventType.PUBLISH || be.type() === BridgeEventType.RECEIVE) { - if (be.getRawMessage().body == "armadillos") { - // Reject it - be.complete(false); - return - } - } - be.complete(true); -})); -``` - -Here’s an example how to configure and handle SOCKET\_IDLE bridge event -type. Notice `setPingTimeout(5000)` which says that if ping message -doesn’t arrive from client within 5 seconds then the SOCKET\_IDLE bridge -event would be triggered. - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" -let router = Router.router(vertx); - -// Initialize SockJS handler -let sockJSHandler = SockJSHandler.create(vertx); -let options = new SockJSBridgeOptions() - .setInboundPermitteds([inboundPermitted]) - .setPingTimeout(5000); - -// mount the bridge on the router -router.mountSubRouter("/eventbus", sockJSHandler.bridge(options, (be) => { - if (be.type() === BridgeEventType.SOCKET_IDLE) { - // Do some custom handling... - } - - be.complete(true); -})); -``` - -In client side JavaScript you use the 'vertx-eventbus.js\` library to -create connections to the event bus and to send and receive messages: - -``` html - - - - -``` - -The first thing the example does is to create a instance of the event -bus - -``` javascript -var eb = new EventBus('http://localhost:8080/eventbus', {"vertxbus_ping_interval": 300000}); -``` - -The 2nd parameter to the constructor tells the sockjs library to send -ping message every 5 minutes. since the server was configured to expect -ping every 5 seconds → `SOCKET_IDLE` would be triggered on the server. - -You can also amend the raw message, e.g. change the body. For messages -that are flowing in from the client you can also add headers to the -message, here’s an example: - -``` js -import { Router } from "@vertx/web" -import { SockJSHandler } from "@vertx/web" - -let router = Router.router(vertx); - -// Let through any messages sent to 'demo.orderService' from the client -let inboundPermitted = new PermittedOptions() - .setAddress("demo.orderService"); - -let sockJSHandler = SockJSHandler.create(vertx); -let options = new SockJSBridgeOptions() - .setInboundPermitteds([inboundPermitted]); - -// mount the bridge on the router -router.mountSubRouter("/eventbus", sockJSHandler.bridge(options, (be) => { - if (be.type() === BridgeEventType.PUBLISH || be.type() === BridgeEventType.SEND) { - // Add some headers - let headers = { - "header1" : "val", - "header2" : "val2" - }; - let rawMessage = be.getRawMessage(); - rawMessage.headers = headers; - be.setRawMessage(rawMessage); - } - be.complete(true); -})); -``` - -# CSRF Cross Site Request Forgery - -CSRF or sometimes also known as XSRF is a technique by which an -unauthorized site can gain your user’s private data. Vert.x-Web includes -a handler `CSRFHandler` that you can use to prevent cross site request -forgery requests. - -On each get request under this handler a cookie is added to the response -with a unique token. Clients are then expected to return this token back -in a header. Since cookies are sent it is required that the cookie -handler is also present on the router. - -When developing non single page applications that rely on the User-Agent -to perform the `POST` action, Headers cannot be specified on HTML Forms. -In order to solve this problem the header value will also be checked if -and only if no header was present in the Form attributes under the same -name as the header, e.g.: - -``` html ---- -
- -
---- -``` - -It is the responsibility of the user to fill in the right value for the -form field. Users who prefer to use an HTML only solution can fill this -value by fetching the the token value from the routing context under the -key `X-XSRF-TOKEN` or the header name they have chosen during the -instantiation of the `CSRFHandler` object. - -``` js -import { CSRFHandler } from "@vertx/web" - -router.route().handler(CSRFHandler.create("abracadabra")); -router.route().handler((rc) => { - -}); -``` - -## Using AJAX - -When accessing protected routes via ajax both the csrf token will need -to be passed in the request. Typically this is done using a request -header, as adding a request header can typically be done at a central -location easily without payload modification. - -The CSRF token is obtained from the server side context under the key -`X-XSRF-TOKEN` (unless you specified a different name). This token needs -to be exposed to the client-side, typically by including it in the -initial page content. One possibility is to store it in an HTML \ -tag, where value can then be retrieved at the time of the request by -JavaScript. - -The following can be included in your view (handlebar example below): - -``` html - -``` - -The following is an example of using the Fetch API to post to the -/process route with the CSRF token from the \ tag on the page: - -``` js -// Read the CSRF token from the tag -var token = document.querySelector('meta[name="csrf-token"]').getAttribute('content') - -// Make a request using the Fetch API -fetch('/process', { - credentials: 'same-origin', // <-- includes cookies in the request - headers: { - 'X-XSRF-TOKEN': token // <-- is the csrf token as a header - }, - method: 'POST', - body: { - key: 'value' - } -}) -``` - -# VirtualHost Handler - -The Virtual Host Handler will verify the request hostname and if it -matches it will send the request to the registered handler, otherwise -will continue inside the normal handlers chain. - -Request are checked against the `Host` header to a match and patterns -allow the usage of ` ` wildcards, as for example `.vertx.io` -or fully domain names as `www.vertx.io`. - -``` js -import { VirtualHostHandler } from "@vertx/web" -router.route().handler(VirtualHostHandler.create("*.vertx.io", (routingContext) => { - // do something if the request is for *.vertx.io -})); -``` - -# OAuth2AuthHandler Handler - -The `OAuth2AuthHandler` allows quick setup of secure routes using the -OAuth2 protocol. This handler simplifies the authCode flow. An example -of using it to protect some resource and authenticate with GitHub can be -implemented as: - -``` js -import { GithubAuth } from "@vertx/auth-oauth2" -import { OAuth2AuthHandler } from "@vertx/web" - -// create an OAuth2 provider, clientID and clientSecret should be requested to github -let authProvider = GithubAuth.create(vertx, "CLIENT_ID", "CLIENT_SECRET"); - -// create a oauth2 handler on our running server -// the second argument is the full url to the callback as you entered in your provider management console. -let oauth2 = OAuth2AuthHandler.create(authProvider, "https://myserver.com/callback"); - -// setup the callback handler for receiving the GitHub callback -oauth2.setupCallback(router.route()); - -// protect everything under /protected -router.route("/protected/*").handler(oauth2); -// mount some handler under the protected zone -router.route("/protected/somepage").handler((rc) => { - rc.response().end("Welcome to the protected resource!"); -}); - -// welcome page -router.get("/").handler((ctx) => { - ctx.response().putHeader("content-type", "text/html").end("Hello
Protected by Github"); -}); -``` - -The OAuth2AuthHandler will setup a proper callback OAuth2 handler so the -user does not need to deal with validation of the authority server -response. It is quite important to know that authority server responses -are only valid once, this means that if a client issues a reload of the -callback URL it will be asserted as a invalid request since the -validation will fail. - -A rule of thumb is once a valid callback is executed issue a client side -redirect to a protected resource. This redirect should also create a -session cookie (or other session mechanism) so the user is not required -to authenticate for every request. - -Due to the nature of OAuth2 spec there are slight changes required in -order to use other OAuth2 providers but vertx-auth provides you with -many out of the box implementations: - - - Azure Active Directory `AzureADAuth` - - - Box.com `BoxAuth` - - - Dropbox `DropboxAuth` - - - Facebook `FacebookAuth` - - - Foursquare `FoursquareAuth` - - - Github `GithubAuth` - - - Google `GoogleAuth` - - - Instagram `InstagramAuth` - - - Keycloak `KeycloakAuth` - - - LinkedIn `LinkedInAuth` - - - Mailchimp `MailchimpAuth` - - - Salesforce `SalesforceAuth` - - - Shopify `ShopifyAuth` - - - Soundcloud `SoundcloudAuth` - - - Stripe `StripeAuth` - - - Twitter `TwitterAuth` - -However if you’re using an unlisted provider you can still do it using -the base API like this: - -``` js -import { OAuth2Auth } from "@vertx/auth-oauth2" -import { OAuth2AuthHandler } from "@vertx/web" - -// create an OAuth2 provider, clientID and clientSecret should be requested to Google -let authProvider = OAuth2Auth.create(vertx, OAuth2FlowType.AUTH_CODE, new OAuth2ClientOptions() - .setClientID("CLIENT_ID") - .setClientSecret("CLIENT_SECRET") - .setSite("https://accounts.google.com") - .setTokenPath("https://www.googleapis.com/oauth2/v3/token") - .setAuthorizationPath("/o/oauth2/auth")); - -// create a oauth2 handler on our domain: "http://localhost:8080" -let oauth2 = OAuth2AuthHandler.create(authProvider, "http://localhost:8080"); - -// these are the scopes -oauth2.addAuthority("profile"); - -// setup the callback handler for receiving the Google callback -oauth2.setupCallback(router.get("/callback")); - -// protect everything under /protected -router.route("/protected/*").handler(oauth2); -// mount some handler under the protected zone -router.route("/protected/somepage").handler((rc) => { - rc.response().end("Welcome to the protected resource!"); -}); - -// welcome page -router.get("/").handler((ctx) => { - ctx.response().putHeader("content-type", "text/html").end("Hello
Protected by Google"); -}); -``` - -You will need to provide all the details of your provider manually but -the end result is the same. - -The handler will pin your application the the configured callback url. -The usage is simple as providing the handler a route instance and all -setup will be done for you. In a typical use case your provider will ask -you what is the callback url to your application, your then enter a url -like: `https://myserver.com/callback`. This is the second argument to -the handler now you just need to set it up. To make it easier to the end -user all you need to do is call the setupCallback method. - -This is how you pin your handler to the server -`https://myserver.com:8447/callback`. Note that the port number is not -mandatory for the default values, 80 for http, 443 for https. - -``` js -import { OAuth2AuthHandler } from "@vertx/web" -// create a oauth2 handler pinned to myserver.com: "https://myserver.com:8447/callback" -let oauth2 = OAuth2AuthHandler.create(provider, "https://myserver.com:8447/callback"); -// now allow the handler to setup the callback url for you -oauth2.setupCallback(router.route()); -``` - -In the example the route object is created inline by `Router.route()` -however if you want to have full control of the order the handler is -called (for example you want it to be called as soon as possible in the -chain) you can always create the route object before and pass it as a -reference to this method. - -## A real world example - -Up to now you have learned how to use the Oauth2 Handler however you -will notice that for each request you will need to authenticate. This is -because the handler has no state and there was no state management -applied in the examples. - -Although having no state is recommended for API facing endpoints, for -example, using JWT (we will cover those later) for user facing endpoinst -we can keep the authentication result stored in the session. For this to -work we would need an application like the following snippet: - -``` js -import { GithubAuth } from "@vertx/auth-oauth2" -import { LocalSessionStore } from "@vertx/web" -import { SessionHandler } from "@vertx/web" -import { OAuth2AuthHandler } from "@vertx/web" -// To simplify the development of the web components -// we use a Router to route all HTTP requests -// to organize our code in a reusable way. - -// Simple auth service which uses a GitHub to -// authenticate the user -let authProvider = GithubAuth.create(vertx, "YOUR PROVIDER CLIENTID", "YOUR PROVIDER CLIENT SECRET"); -// We need a user session handler too to make sure -// the user is stored in the session between requests -router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)).setAuthProvider(authProvider)); -// we now protect the resource under the path "/protected" -router.route("/protected").handler(OAuth2AuthHandler.create(authProvider).setupCallback(router.route("/callback")).addAuthority("user:email")); -// Entry point to the application, this will render -// a custom template. -router.get("/").handler((ctx) => { - ctx.response().putHeader("Content-Type", "text/html").end("\n \n

\n Well, hello there!\n

\n

\n We're going to the protected resource, if there is no\n user in the session we will talk to the GitHub API. Ready?\n Click here to begin!\n

\n

\n If that link doesn't work, remember to provide\n your own \n Client ID!\n

\n \n"); -}); -// The protected resource -router.get("/protected").handler((ctx) => { - // at this moment your user object should contain the info - // from the Oauth2 response, since this is a protected resource - // as specified above in the handler config the user object is never null - let user = ctx.user(); - // just dump it to the client for demo purposes - ctx.response().end(user.toString()); -}); -``` - -## Mixing OAuth2 and JWT - -Some providers use JWT tokens as access tokens, this is a feature of -[RFC6750](https://tools.ietf.org/html/rfc6750) and can be quite useful -when one wants to mix client based authentication and API authorization. -For example say that you have a application that provides some protected -HTML documents but you also want it to be available for API’s to -consume. In this case an API cannot easily perform the redirect -handshake required by OAuth2 but can use a Token provided before hand. - -This is handled automatically by the handler as long as the provider is -configured to support JWTs. - -In real life this means that your API’s can access your protected -resources using the header `Authorization` with the value `Bearer -BASE64_ACCESS_TOKEN`. diff --git a/docs/manual/README.md b/docs/manual/README.md deleted file mode 100644 index ff26e83ac..000000000 --- a/docs/manual/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# API Reference Manuals - -## Vertx - -* [core](./@vertx/core/index.html) -* [amqp-bridge](./@vertx/amqp-bridge/index.html) -* [auth-common](./@vertx/auth-common/index.html) -* [auth-digest](./@vertx/auth-digest/index.html) -* [auth-jdbc](./@vertx/auth-jdbc/index.html) -* [auth-jwt](./@vertx/auth-jwt/index.html) -* [auth-mongo](./@vertx/auth-mongo/index.html) -* [auth-oauth2](./@vertx/auth-oauth2/index.html) -* [auth-shiro](./@vertx/auth-shiro/index.html) -* [bridge-common](./@vertx/bridge-common/index.html) -* [camel-bridge](./@vertx/camel-bridge/index.html) -* [circuit-breaker](./@vertx/circuit-breaker/index.html) -* [cofig-redis](./@vertx/cofig-redis/index.html) -* [config](./@vertx/config/index.html) -* [config-consul](./@vertx/config-consul/index.html) -* [config-git](./@vertx/config-git/index.html) -* [config-hocon](./@vertx/config-hocon/index.html) -* [config-kubernetes-configmap](./@vertx/config-kubernetes-configmap/index.html) -* [config-spring-config-server](./@vertx/config-spring-config-server/index.html) -* [config-vault](./@vertx/config-vault/index.html) -* [config-yaml](./@vertx/config-yaml/index.html) -* [config-zookeeper](./@vertx/config-zookeeper/index.html) -* [consul-client](./@vertx/consul-client/index.html) -* [dropwizard-metrics](./@vertx/dropwizard-metrics/index.html) -* [hawkular-metrics](./@vertx/hawkular-metrics/index.html) -* [health-check](./@vertx/health-check/index.html) -* [jdbc-client](./@vertx/jdbc-client/index.html) -* [kafka-client](./@vertx/kafka-client/index.html) -* [mail-client](./@vertx/mail-client/index.html) -* [mongo-client](./@vertx/mongo-client/index.html) -* [mysql-postgresql-client](./@vertx/mysql-postgresql-client/index.html) -* [rabbitmq-client](./@vertx/rabbitmq-client/index.html) -* [redis-client](./@vertx/redis-client/index.html) -* [service-discovery](./@vertx/service-discovery/index.html) -* [service-discovery-backend-consul](./@vertx/service-discovery-backend-consul/index.html) -* [service-discovery-backend-redis](./@vertx/service-discovery-backend-redis/index.html) -* [service-discovery-backend-zookeeper](./@vertx/service-discovery-backend-zookeeper/index.html) -* [service-discovery-bridge-consul](./@vertx/service-discovery-bridge-consul/index.html) -* [service-discovery-bridge-docker](./@vertx/service-discovery-bridge-docker/index.html) -* [service-discovery-bridge-docker-links](./@vertx/service-discovery-bridge-docker-links/index.html) -* [service-discovery-bridge-kubernetes](./@vertx/service-discovery-bridge-kubernetes/index.html) -* [service-discovery-bridge-zookeeper](./@vertx/service-discovery-bridge-zookeeper/index.html) -* [shell](./@vertx/shell/index.html) -* [sql-common](./@vertx/sql-common/index.html) -* [stomp](./@vertx/stomp/index.html) -* [tcp-eventbus-bridge](./@vertx/tcp-eventbus-bridge/index.html) -* [unit](./@vertx/unit/index.html) -* [vertx-mqtt](./@vertx/vertx-mqtt/index.html) -* [web](./@vertx/web/index.html) -* [web-api-contract](./@vertx/web-api-contract/index.html) -* [web-client](./@vertx/web-client/index.html) -* [web-common](./@vertx/web-common/index.html) - -## Reactiverse - -* [reactive-pg-client](./@reactiverse/reactive-pg-client/index.html) -* [elasticsearch-client](./@reactiverse/elasticsearch-client/index.html) diff --git a/docs/quick-guide/README.md b/docs/quick-guide/README.md new file mode 100644 index 000000000..a2fde9ed3 --- /dev/null +++ b/docs/quick-guide/README.md @@ -0,0 +1,221 @@ +# Quick Guides + +In this area you will find some _byte_ size examples that can help you get quickly started with **ES4X**. + +## Core + +### Vert.x Core + +The Vert.x core APIs contain the backbone for writing Vert.x applications and low-level support for HTTP, TCP, UDP, file system, asynchronous streams and many other building blocks. It is also used by many other components of Vert.x. + +[Core Examples](./core) + +## Web + +### Vert.x Web + +A tool-kit for writing sophisticated modern web applications and HTTP microservices. + +### Web Client + +An easy-to-use client for HTTP and HTTP/2 with many advanced features. + +### Web Validation + +A library to declaratively parse and validate incoming Vert.x Web HTTP requests. + +### Web OpenAPI + +Extends Vert.x Web to support OpenAPI 3, bringing a simple interface for building web routers that conform to OpenAPI contracts. + +### Web API Service (Technical Preview) + +Directly connect your OpenAPI 3 web routers to event-bus services. + +### GraphQL (Technical Preview) + +Implement GraphQL servers with Vert.x web. + +## Clustering + +### Hazelcast Clustering + +Cluster manager implementation that uses Hazelcast. + +### Infinispan Clustering + +Cluster manager implementation that uses Infinispan. + +### Apache Ignite Clustering + +Cluster manager implementation that uses Apache Ignite. + +## Testing +### Vert.x JUnit 5 + +Asynchronous testing with Vert.x and JUnit 5. + +### Vert.x Unit + +A unit testing tool-kit designed to work with asynchronous code. Includes JUnit 4 support. + +## Standards +### JSON Schema + +An extensible implementation of the Json Schema specification to validate every JSON data structure, asynchronously. + +## Authentication and authorization +### Auth common + +Common APIs for authentication and authorization for your Vert.x applications, backed by several providers. + +### Oauth2 Auth + +OAuth2 (and to some extent OpenID Connect) implementation. + +### JWT Auth + +JSON web tokens (JWT) implementation. + +### Webauthn Auth (Technical Preview) + +FIDO2 WebAuthn (password-less) implementation. + +### SQL Client Auth + +Authentication and authorization support based on the Vert.x SQL client and a relational database. + +### MongoDB Auth + +Authentication and authorization support based on MongoDB. + +### Properties Auth + +Authentication and authorization support based on Java properties files. + +### LDAP Auth + +Implementation using JDK built-in LDAP capabilities. + +### .htpasswd Auth + +Authentication and authorization support based on .htpasswd files. + +### .htdigest Auth + +Authentication and authorization support based on .htdigest files. + +## Databases +### PostgreSQL Client (Technical Preview) + +A PostgreSQL client focusing on scalability and low overhead. + +### MySQL Client (Technical Preview) + +A lightweight, event-driven client for MySQL. + +### SQL Client Templates + +A small library designed to facilitate the execution and data manipulation of SQL queries. + +### MongoDB Client + +MongoDB client. + +### Redis Client + +Redis client. + +### Cassandra Client + +Apache Cassandra client. + +### JDBC client + +JDBC support for Vert.x. + +## Messaging +### Kafka client + +A client for Apache Kafka. + +### AMQP Client (Technical Preview) + +A client for AMQP 1.0 brokers and routers. + +### RabbitMQ Client + +A client for RabbitMQ brokers. + +### MQTT + +A client and server for MQTT, compliant with MQTT 3.1.1. + +## Integration +### Mail Client + +A SMTP client to send emails from your applications. + +### STOMP + +A client and server implementation of the STOMP protocol. + +### Consul client + +A client for Consul. + +## Event bus bridges +### TCP Eventbus Bridge + +An event-bus bridge that lets you interact with Vert.x from any application over a simple TCP-based protocol. + +### Camel Bridge + +An event-bus bridge that lets you interact with Apache Camel endpoints and routes. + +## Monitoring +### Zipkin + +Distributed tracing with Zipkin. + +### OpenTracing + +Distributed tracing with OpenTracing. + +### Metrics using Dropwizard + +Captures metrics from Vert.x core components and exposes them using Dropwizard. + +### Metrics using Micrometer + +Captures metrics from Vert.x core components and exposes them using Micrometer. + +### Health Check + +A simple API to expose health checks over HTTP. + +## Services +### gRPC + +Implement gRPC clients and servers with Vert.x. + +### Service Proxies + +Proxies allow remote event bus services to be called as if they were local. + +### SockJS Service Proxies + +Allow event bus services to be called from JavaScript (web browser or Node.js). + +## Microservices +### Service Discovery + +Publish, lookup and bind any type of service. + +### Config + +An extensible way to configure Vert.x applications. + +### Circuit Breaker + +Implementation of the circuit-breaker pattern to mitigate failures. diff --git a/docs/quick-guide/core/README.md b/docs/quick-guide/core/README.md new file mode 100644 index 000000000..4d446f88c --- /dev/null +++ b/docs/quick-guide/core/README.md @@ -0,0 +1,423 @@ +--- +prev: ../ +next: false +sidebarDepth: 2 +--- + +# Vert.x core examples + +Here you will find examples demonstrating Vert.x core in action. + +Vert.x core provides fairly low level functionality for a diverse range of functions including HTTP, TCP, UDP, +WebSockets, file system access, timers, verticles and more. For detailed documentation, consult the +Vert.x [core manual](https://vertx.io/docs). + + +## Project setup + +To use es4x your own project use the following project as a template: + +<<< @/docs/quick-guide/core/package.json + +## Net examples + +These examples demonstrate usage of Vert.x net servers and clients - these are used for TCP (and SSL) servers and clients. + +### Echo + +This example consists of an echo server verticle which serves TCP connections, and simply echoes back on the connection +whatever it receives. + +You can run the echo server then run `telnet localhost 1234` from a console to connect to it. Type some stuff and see it +echoed back to you. + +<<< @/docs/quick-guide/core/net/echo/server.js + +It also contains an echo client, which creates a connection to the server, sends some data and logs out what it receives +back. You can use that as an alternative to connecting via telnet. + +<<< @/docs/quick-guide/core/net/echo/client.js + + +### Echo SSL + +This is the same as the [Echo](#echo) example but using SSL to encrypt connections. + +The server: + +<<< @/docs/quick-guide/core/net/echossl/server.js + +The client: + +<<< @/docs/quick-guide/core/net/echossl/client.js + +## HTTP examples + +These examples demonstrate usage of HTTP with Vert.x. + +### Simple + +A very simple HTTP server which always responds with the same response: + +<<< @/docs/quick-guide/core/http/simple/server.js + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080) + +And a simple HTTP client which makes a request to the server. + +<<< @/docs/quick-guide/core/http/simple/client.js + +### HTTPS + +Like the [simple](#simple) example, but using HTTPS instead of HTTP + +<<< @/docs/quick-guide/core/http/https/server.js + +You can run the server then open a browser and point it at [http://localhost:4443](http://localhost:4443) + +And a simple HTTPS client which makes a request to the server. + +<<< @/docs/quick-guide/core/http/https/client.js + +### Proxy connect + +Connecting to a web server using a proxy. + +<<< @/docs/quick-guide/core/http/proxyconnect/client.js + +The proxy receives requests and connects to the endpoint server using a socket, then pass +all the events between the client and the proxied server. + +<<< @/docs/quick-guide/core/http/proxyconnect/proxy.js + +### Proxy + +A simple toy HTTP proxy. The proxy receives requests and forwards them to the endpoint server, it also takes responses +from the other server and passes them back to the client. + +<<< @/docs/quick-guide/core/http/proxy/proxy.js + +### Sendfile + +This example demonstrates how you can serve static files from disk using a Vert.x http server. + +<<< @/docs/quick-guide/core/http/sendfile/send_file.js + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). + +::: tip +In practice you would probably actually use Vert.x-Web for this rather than writing a web server at this low level. Serving +files manually like this can leave you open to security exploits, e.g. by clients crafting URI paths which try to access +resources outside of the permitted area. Vert.x-Web provides URI path normalisation to avoid these kinds of exploits and comes +with a static file handler which also handles caching headers and other features that you would probably want when serving +static files in a web application. +::: + +### Simple form + +This example demonstrates how you can handle an HTML form on the server. + +<<< @/docs/quick-guide/core/http/simpleform/simple_form_server.js + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). + +::: tip +In practice you would probably also use Vert.x-Web for this rather than writing a server at this low level. Vert.x-Web +provides built in support for HTML forms, and avoids some of the security issues due to maliciously crafted URI paths. +::: + +### Simple form file upload + +This example demonstrates how you can handle file uploads from an HTML form submission. + +<<< @/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). + +::: tip +In practice you would probably also use Vert.x-Web for this rather than writing a server at this low level. Vert.x-Web +provides built in support for HTML forms, and avoids some of the security issues due to maliciously crafted URI paths. +::: + +### Http request body upload + +This example demonstrates an HTTP server receiving a request and pumping the request body to a file on disk without +ever storing the entire request body fully in memory. + +<<< @/docs/quick-guide/core/http/upload/server.js + +There's also a client which sends a request to the server and pumps a file from disk to the HTTP request body. The file +is uploaded successfully even if the file is very large (GigaBytes). + +<<< @/docs/quick-guide/core/http/upload/client.js + +### HTTP Server Sharing + +A server that illustrates the round robin orchestrated by vert.x when several verticles are opening HTTP servers on the same port: + +<<< @/docs/quick-guide/core/http/sharing/server.js + +The `Server` deploys two instances of the `HttpServerVerticle` verticle. + +<<< @/docs/quick-guide/core/http/sharing/http_server_verticle.js + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). Requests will be handled by an instance after the other. + +The `Client` illustrates the round robin by periodically requesting the server and displays the response content. + +<<< @/docs/quick-guide/core/http/sharing/client.js + +You can directly launch the `HTTPServerVerticle` using the `es4x run` command. Then you can set the number of instance you want: + +``` +es4x run http_server_verticle.js -instances 4 +``` + +### WebSockets echo example + +This example shows a Vert.x HTTP server which handles websockets connections. This example simply echoes back to the client +whatever it receives on the websocket. + +<<< @/docs/quick-guide/core/http/websockets/server.js + +There's also a client which connects to the server, sends some data and logs out what it receives. + +<<< @/docs/quick-guide/core/http/websockets/client.js + +Javascript WebSockets client example: + +<<< @/docs/quick-guide/core/http/websockets/ws.html + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). + +::: tip +In practice you would probably use Vert.x-Web to build a web application that uses WebSockets +::: + +## HTTP/2 examples + +These examples demonstrate usage of HTTP/2 with Vert.x. + +### Simple + +A very simple HTTP/2 server which always responds with the same response: + +<<< @/docs/quick-guide/core/http2/simple/server.js + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). + +And a simple HTTP/2 client which makes a request to the server. + +<<< @/docs/quick-guide/core/http2/simple/client.js + + +### Push + +This example shows HTTP/2 push. + +The server pushes `script.js` along with `index.html`: + +<<< @/docs/quick-guide/core/http2/push/server.js + +You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). + +And a client sets a push handler to be notified of the incoming server side pushes: + +<<< @/docs/quick-guide/core/http2/push/client.js + +### H2C + +Like the simple server but using clear text, also known as _h2c_, without TLS: + +<<< @/docs/quick-guide/core/http2/h2c/server.js + +::: warning +This example won't work with browsers are they don't support h2c +::: + +And a client to connect to the server: + +<<< @/docs/quick-guide/core/http2/h2c/client.js + +### Custom frames + +HTTP/2 can be extended with custom frames, this example shows how to write custom frames: + +<<< @/docs/quick-guide/core/http2/customframes/server.js + +This examples shows how to receive custom frames: + +<<< @/docs/quick-guide/core/http2/customframes/client.js + +## Event bus examples + +These examples demonstrate usage of the event bus in Vert.x + +### Point to point + +This example demonstrates point to point messaging between a receiver and a sender. + +The receiver listens on an address on the event bus for incoming messages. When it receives a message it replies to it. + +<<< @/docs/quick-guide/core/eventbus/pointtopoint/receiver.js + +The sender sends a message to that address every second, when it receives a reply it logs it. + +<<< @/docs/quick-guide/core/eventbus/pointtopoint/sender.js + +You can run the sender and receiver at the command line. + +At the command line you should run Sender and Receiver in different consoles using the `-cluster` flag: + +```sh +es4x run eventbus/pointtopoint/receiver.js -cluster + +es4x run eventbus/pointtopoint/sender.js -cluster +``` + +The `-cluster` flag allows different Vert.x instances on the network to cluster the event bus together into a single +event bus. + +### Publish / Subscribe + +This example demonstrates publish / subscribe messaging between a receivers and a sender. With pub/sub messaging +you can have multiple subscribers who all receive messages from publishers. + +A receiver listens on an address on the event bus for incoming messages. When it receives a message it logs it. + +<<< @/docs/quick-guide/core/eventbus/pubsub/receiver.js + +The sender sends a message to that address every second, when it receives a reply it logs it. + +<<< @/docs/quick-guide/core/eventbus/pubsub/sender.js + + +You can start as many senders or receivers as you like at the command line. + +At the command line you should run Sender and Receiver in different consoles using the `-cluster` flag: + +```sh +es4x run eventbus/pubsub/receiver.js -cluster + +es4x run eventbus/pubsub/sender.js -cluster +``` + +The `-cluster` flag allows different Vert.x instances on the network to cluster the event bus together into a single +event bus. + +### SSL + +This example demonstrates point to point messaging between a receiver and a sender with a transport level encryption. + +The receiver listens on an address on the event bus for incoming messages. When it receives a message it replies to it. + +<<< @/docs/quick-guide/core/eventbus/ssl/receiver.js + +The sender sends a message to that address every second, when it receives a reply it logs it. + +<<< @/docs/quick-guide/core/eventbus/ssl/sender.js + +You can run the Java sender and receiver in the command line. + +At the command line you should run Sender and Receiver in different consoles using the `-cluster` flag: + +```sh +es4x run eventbus/ssl/receiver.js -cluster + +es4x run eventbus/ssl/sender.js -cluster +``` + +The `-cluster` flag allows different Vert.x instances on the network to cluster the event bus together into a single +event bus. + +## Future + +es4x handler [Vert.x Future](https://vertx-web-site.github.io/docs/vertx-core/java/#_async_coordination)'s in a special +way. Behind the scenes, Vert.x Future's are enhanced to be a `Thenable` js object which means you can `await` on then +just like a js [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). + +You can still use the use the Vert.x API, for example, composition can be done as: + +<<< @/docs/quick-guide/core/future/compose_example.js + +## Verticle examples + +These examples show verticles being deployed and undeployed. + +### Deploy example + +This example shows a verticle deploying another verticle in several different ways including: + +* Deploying without waiting for it to deploy +* Deploying and waiting for it to deploy +* Passing configuration to another verticle during deploy +* Deploying more than one instance +* Deploying as a worker verticle +* Undeploying a verticle deployment explicitly + +<<< @/docs/quick-guide/core/verticle/deploy/deploy_example.js + +### Asynchronous deployment example + +This is similar to the deployment example, but it shows how the start and stop of a verticle can be asynchronous. This +is useful if the verticle has some startup or cleanup to do that takes some time, and we wish to avoid blocking the +an event loop. + +<<< @/docs/quick-guide/core/verticle/asyncstart/deploy_example.js + +### Worker Verticle example + +A simple example illustrating how worker verticle can be created and the thread switches when interacting with them. The worker verticle is not System.out.println(Thread.currentThread()); +ed in the event loop and so can do blocking operations. + +<<< @/docs/quick-guide/core/verticle/worker/main_verticle.js +<<< @/docs/quick-guide/core/verticle/worker/worker_verticle.js + +## High Availability + +This example demonstrates the high availability feature of vert.x. When enabled, vert.x redeploys verticles to another + node when the original node dies abruptly. + +<<< @/docs/quick-guide/core/ha/server.js + +To run this example, you need to have a working cluster. Configure Hazelcast and append the required `cluster-host` +to the commands if needed. + +To see the HA (high-availability) behavior you need three terminals. + +In the first terminal, go the the _core-examples` directory and launch: + +```sh +es4x run io.vertx.example.core.ha.Server -ha +``` + +Open a browser to [http://localhost:8080](http://localhost:8080). You should see something like: + +``` +Happily served by 97284 +``` + +Be displayed id is OS and JVM specific, so you may have something completely different. + +In the second terminal, launch: + +``` +es4x bare +``` + +In the third terminal, display the list of the Java process and kill the first one (smaller pid): + +``` +> jps | grep Launcher +97297 Launcher +97284 Launcher +> kill -9 97284 +``` + +In your browser, refresh the page, you should see a different id such as: + +``` +Happily served by 97297 +``` + +The verticle has been migrated. diff --git a/docs/quick-guide/core/eventbus/pointtopoint/receiver.js b/docs/quick-guide/core/eventbus/pointtopoint/receiver.js new file mode 100644 index 000000000..745c39bde --- /dev/null +++ b/docs/quick-guide/core/eventbus/pointtopoint/receiver.js @@ -0,0 +1,13 @@ +/// +// @ts-check + +var eb = vertx.eventBus(); + +eb.consumer("ping-address", function (message) { + + console.log("Received message: " + message.body()); + // Now send back reply + message.reply("pong!"); +}); + +console.log("Receiver ready!"); diff --git a/docs/quick-guide/core/eventbus/pointtopoint/sender.js b/docs/quick-guide/core/eventbus/pointtopoint/sender.js new file mode 100644 index 000000000..9d87716bf --- /dev/null +++ b/docs/quick-guide/core/eventbus/pointtopoint/sender.js @@ -0,0 +1,18 @@ +/// +// @ts-check + +var eb = vertx.eventBus(); + +// Send a message every second + +vertx.setPeriodic(1000, function (v) { + + eb.send("ping-address", "ping!", onSend => { + if (onSend.succeeded()) { + console.log("Received reply " + onSend.result().body()); + } else { + console.log("No reply"); + } + }); + +}); diff --git a/docs/quick-guide/core/eventbus/pubsub/receiver.js b/docs/quick-guide/core/eventbus/pubsub/receiver.js new file mode 100644 index 000000000..38bf87910 --- /dev/null +++ b/docs/quick-guide/core/eventbus/pubsub/receiver.js @@ -0,0 +1,18 @@ +/// +// @ts-check + +var eb = vertx.eventBus(); + +eb.consumer("news-feed", function (message) { + console.log("Received news on consumer 1: " + message.body()); +}); + +eb.consumer("news-feed", function (message) { + console.log("Received news on consumer 2: " + message.body()); +}); + +eb.consumer("news-feed", function (message) { + console.log("Received news on consumer 3: " + message.body()); +}); + +console.log("Ready!"); diff --git a/docs/quick-guide/core/eventbus/pubsub/sender.js b/docs/quick-guide/core/eventbus/pubsub/sender.js new file mode 100644 index 000000000..826317207 --- /dev/null +++ b/docs/quick-guide/core/eventbus/pubsub/sender.js @@ -0,0 +1,10 @@ +/// +// @ts-check + +var eb = vertx.eventBus(); + +// Send a message every second + +vertx.setPeriodic(1000, function (v) { + eb.publish("news-feed", "Some news!"); +}); diff --git a/docs/quick-guide/core/eventbus/ssl/keystore.jks b/docs/quick-guide/core/eventbus/ssl/keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..3322b4548c06c7e7890460d70ebb97fe9fd22799 GIT binary patch literal 2252 zcmchYc{J1u8^>oe*#;RgmJx;s!*3`w2;nV6mI$G1i)0_JeQC0fecwU~BTHG^xR$bB zBui3c35{j4jmDDky7#>2eeXH_|Nim(@%{YqoacO>=X@Uql|co8K#=1C|6Qzp&ICU! z!OzRr`558uiLm*AKui#T2x9;oa8?;O7zUPxoCJfJKrkX~rS$4D`H5yR+5tshyxfBk z<+B`l$ex-iZx5xt@^%{Xt?O)cNr?Mo&939!S^ddG!l3TZ=TKtN<;{~_ct8+q&`E9a z{r=p7IQilh`nhcE%4quix8I))Re7{R=*WVE{AdjCh__Wg z>n5dbFVWjH5RZ-!`f2cK?NR)f+N=?O@$@iyKXZ=Ax!k?wAoMoGp{HNo`*2!X_b}xr=Kfk$QnMrZH_ksx$yd~% z2=gw_0eDMbgvyxr#L{BXQrOagu#nK9ds|;FRx@~XcObD?x@fSE{1Gb=@a!TsskO9h zZyF~X{LbI7@{M7Ovi;YkSRE~ngn9Q66f@13JpuHC34?*Q^jpk5+GWhr#v%z5WZnY= zs+$8JUhujWWXQFNli4M&g!goD6(GC_XZHkWl1?hW^oQw0SaGJOEI;8iU=mjSslQ=H z8fz<#@)oQw$>G7R&Vb7OJn(Ngnk4BlMhhv`jl9&S4s+Y7FY;?S`+r9o33`@)Q0dIl zExVPVq_LFvj8M5vQYv^?P3BF~WhC@Y8qKODOKoNPE7N8SZ9O9?&!0*TT7T5{L7MJ+ z+6C)stI(@w3l-&W%6Zc_`dcJN-^ioTlLk>tXr4=yG=1MtPUZ}c$Lf3@HIh?9-#n1E zMl7$}CRg5JM($4Vs2cFLc4=9!tYF=2`3a$6vbSG3KL)~XPu9)ZjqfjS3nk{1)Ny?P z=Wr$f`V!5)qo&+pG*&U(`V_ZtYE1Ql9=>})Lf*6nr5hC89d|j$6q1#O#I!(=4d4gtXRK*fS>d`btFi}+a6}w)&8__&oqUvbVERx|Mv7B z?9>gNsQYi%@F9Mk7l(h)Nwjsn6VB=jK8v7V(z0q3SKEz&pj|@mQnmFcZnBK2?7| zXO*j(fJn%hTpzsny0FN#f!sdE1ICe-Y+G?*vMq@tkG`zyYmxZ|xvd}~kFPhf6RI+@ zj#EI3sDjZ60P3C!ayJl3}6U>*{KJr=ljb z0v-QS?cCHgC}+iphuD^0Bbqj%ZI!+kJ=wV$reAT;SwX)o;`m6?G+Fslq~`*5VB(A2 zg9g{G#B#169_83fL>xYrLRv`BN|}x4_WBkd*mzS%Z8lT<>hH)7ksij9=ilkbWGQzZ zxBvn{BLE^a1Rz2jOP~-i1OjuK*O&$na2Dy9D=~Bg7|g~50z7eC$B_v&hry92%suaV zdIkKKF#keM{6biNA#DF6+yK{KouNn;cP~eKcULchA0W(!z~KO8MI27)ypn>F^y5J9{f2W@GkZlA!Fe zm=p+b8yjj4;$Vu!PAyR-K?^4J4UlWu6_!s0QU{~r1F!U>8j9q!@7$DWxMv*t=jZl!_J8`It-0|NqB$GgG|!|GAIQOHvc??a`}~C5^L81Q4<%NN zkAzR>;*ngUMd{@UNf-IRS_dKbTrMSf2P%6<5 zga`Yzt%caw(gGdD`KT9{Na^Wb-xiNlR81p1n!{P7l^PTrhQ*V^u$oku8Af-UGo#H#rHTVgr-vp{ l5A>{Z(Gm=Y#}?(?;;?o^BHJ(oEjYg+DYPl=JUMN!^>0E&< +// @ts-check + +var eb = vertx.eventBus(); + +eb.consumer("ping-address", function (message) { + + console.log("Received message: " + message.body()); + // Now send back reply + message.reply("pong!"); +}); + +console.log("Receiver ready!"); diff --git a/docs/quick-guide/core/eventbus/ssl/sender.js b/docs/quick-guide/core/eventbus/ssl/sender.js new file mode 100644 index 000000000..0f1c7a132 --- /dev/null +++ b/docs/quick-guide/core/eventbus/ssl/sender.js @@ -0,0 +1,18 @@ +/// +// @ts-check + +var eb = vertx.eventBus(); + +// Send a message every second + +vertx.setPeriodic(1000, function (v) { + + eb.send("ping-address", "ping!", function (reply, reply_err) { + if (reply_err == null) { + console.log("Received reply " + reply.body()); + } else { + console.log("No reply"); + } + }); + +}); diff --git a/docs/quick-guide/core/future/compose_example.js b/docs/quick-guide/core/future/compose_example.js new file mode 100644 index 000000000..352373924 --- /dev/null +++ b/docs/quick-guide/core/future/compose_example.js @@ -0,0 +1,30 @@ +/// +// @ts-check + +import { Promise } from '@vertx/core' + +var anotherAsyncAction = function (name) { + var promise = Promise.promise(); + // mimic something that take times + vertx.setTimer(100, function (l) { + promise.complete("hello " + name); + }); + return promise.future() +}; +var anAsyncAction = function () { + var promise = Promise.promise(); + // mimic something that take times + vertx.setTimer(100, function (l) { + promise.complete("world"); + }); + return promise.future() +}; +var future = anAsyncAction(); +future.compose(anotherAsyncAction).onComplete(onComplete => { + if (onComplete.failed()) { + console.log("Something bad happened"); + console.trace(onComplete.cause()); + } else { + console.log("Result: " + onComplete.result()); + } +}); diff --git a/docs/quick-guide/core/ha/server.js b/docs/quick-guide/core/ha/server.js new file mode 100644 index 000000000..d17ca6e1e --- /dev/null +++ b/docs/quick-guide/core/ha/server.js @@ -0,0 +1,8 @@ +/// +// @ts-check + +vertx.createHttpServer() + .requestHandler(function (req) { + var name = process.pid; + req.response().end("Happily served by " + name); + }).listen(8080); diff --git a/docs/quick-guide/core/http/https/client.js b/docs/quick-guide/core/http/https/client.js new file mode 100644 index 000000000..1f69cbead --- /dev/null +++ b/docs/quick-guide/core/http/https/client.js @@ -0,0 +1,20 @@ +/// +// @ts-check + +import { HttpClientOptions } from "@vertx/core/options"; + +// Note! in real-life you wouldn't often set trust all +// to true as it could leave you open to man in the +// middle attacks. + +vertx.createHttpClient( + new HttpClientOptions() + .setSsl(true) + .setTrustAll(true)) + + .getNow(4443, "localhost", "/", resp => { + console.log("Got response " + resp.statusCode()); + resp.bodyHandler(function (body) { + console.log("Got data " + body.toString("ISO-8859-1")); + }); + }); diff --git a/docs/quick-guide/core/http/https/server-keystore.jks b/docs/quick-guide/core/http/https/server-keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..3322b4548c06c7e7890460d70ebb97fe9fd22799 GIT binary patch literal 2252 zcmchYc{J1u8^>oe*#;RgmJx;s!*3`w2;nV6mI$G1i)0_JeQC0fecwU~BTHG^xR$bB zBui3c35{j4jmDDky7#>2eeXH_|Nim(@%{YqoacO>=X@Uql|co8K#=1C|6Qzp&ICU! z!OzRr`558uiLm*AKui#T2x9;oa8?;O7zUPxoCJfJKrkX~rS$4D`H5yR+5tshyxfBk z<+B`l$ex-iZx5xt@^%{Xt?O)cNr?Mo&939!S^ddG!l3TZ=TKtN<;{~_ct8+q&`E9a z{r=p7IQilh`nhcE%4quix8I))Re7{R=*WVE{AdjCh__Wg z>n5dbFVWjH5RZ-!`f2cK?NR)f+N=?O@$@iyKXZ=Ax!k?wAoMoGp{HNo`*2!X_b}xr=Kfk$QnMrZH_ksx$yd~% z2=gw_0eDMbgvyxr#L{BXQrOagu#nK9ds|;FRx@~XcObD?x@fSE{1Gb=@a!TsskO9h zZyF~X{LbI7@{M7Ovi;YkSRE~ngn9Q66f@13JpuHC34?*Q^jpk5+GWhr#v%z5WZnY= zs+$8JUhujWWXQFNli4M&g!goD6(GC_XZHkWl1?hW^oQw0SaGJOEI;8iU=mjSslQ=H z8fz<#@)oQw$>G7R&Vb7OJn(Ngnk4BlMhhv`jl9&S4s+Y7FY;?S`+r9o33`@)Q0dIl zExVPVq_LFvj8M5vQYv^?P3BF~WhC@Y8qKODOKoNPE7N8SZ9O9?&!0*TT7T5{L7MJ+ z+6C)stI(@w3l-&W%6Zc_`dcJN-^ioTlLk>tXr4=yG=1MtPUZ}c$Lf3@HIh?9-#n1E zMl7$}CRg5JM($4Vs2cFLc4=9!tYF=2`3a$6vbSG3KL)~XPu9)ZjqfjS3nk{1)Ny?P z=Wr$f`V!5)qo&+pG*&U(`V_ZtYE1Ql9=>})Lf*6nr5hC89d|j$6q1#O#I!(=4d4gtXRK*fS>d`btFi}+a6}w)&8__&oqUvbVERx|Mv7B z?9>gNsQYi%@F9Mk7l(h)Nwjsn6VB=jK8v7V(z0q3SKEz&pj|@mQnmFcZnBK2?7| zXO*j(fJn%hTpzsny0FN#f!sdE1ICe-Y+G?*vMq@tkG`zyYmxZ|xvd}~kFPhf6RI+@ zj#EI3sDjZ60P3C!ayJl3}6U>*{KJr=ljb z0v-QS?cCHgC}+iphuD^0Bbqj%ZI!+kJ=wV$reAT;SwX)o;`m6?G+Fslq~`*5VB(A2 zg9g{G#B#169_83fL>xYrLRv`BN|}x4_WBkd*mzS%Z8lT<>hH)7ksij9=ilkbWGQzZ zxBvn{BLE^a1Rz2jOP~-i1OjuK*O&$na2Dy9D=~Bg7|g~50z7eC$B_v&hry92%suaV zdIkKKF#keM{6biNA#DF6+yK{KouNn;cP~eKcULchA0W(!z~KO8MI27)ypn>F^y5J9{f2W@GkZlA!Fe zm=p+b8yjj4;$Vu!PAyR-K?^4J4UlWu6_!s0QU{~r1F!U>8j9q!@7$DWxMv*t=jZl!_J8`It-0|NqB$GgG|!|GAIQOHvc??a`}~C5^L81Q4<%NN zkAzR>;*ngUMd{@UNf-IRS_dKbTrMSf2P%6<5 zga`Yzt%caw(gGdD`KT9{Na^Wb-xiNlR81p1n!{P7l^PTrhQ*V^u$oku8Af-UGo#H#rHTVgr-vp{ l5A>{Z(Gm=Y#}?(?;;?o^BHJ(oEjYg+DYPl=JUMN!^>0E&< +// @ts-check + +import { HttpServerOptions, JksOptions } from '@vertx/core/options'; + + +const server = vertx.createHttpServer( + new HttpServerOptions() + .setSsl(true) + .setKeyStoreOptions( + new JksOptions() + .setPath('server-keystore.jks') + .setPassword('wibble'))); + +server.requestHandler(req => { + req.response() + .putHeader("content-type", "text/html") + .end("

Hello from vert.x!

"); +}).listen(4443); diff --git a/docs/quick-guide/core/http/proxy/client.js b/docs/quick-guide/core/http/proxy/client.js new file mode 100644 index 000000000..8d013547d --- /dev/null +++ b/docs/quick-guide/core/http/proxy/client.js @@ -0,0 +1,15 @@ +var request = vertx.createHttpClient({ +}).put(8080, "localhost", "/", function (resp) { + console.log("Got response " + resp.statusCode()); + resp.bodyHandler(function (body) { + console.log("Got data " + body.toString("ISO-8859-1")); + }); +}); + +request.setChunked(true); + +for (var i = 0;i < 10;i++) { + request.write("client-chunk-" + i); +} + +request.end(); diff --git a/docs/quick-guide/core/http/proxy/proxy.js b/docs/quick-guide/core/http/proxy/proxy.js new file mode 100644 index 000000000..53e67bfbf --- /dev/null +++ b/docs/quick-guide/core/http/proxy/proxy.js @@ -0,0 +1,41 @@ +/// +// @ts-check + +const client = vertx.createHttpClient(); + +vertx + .createHttpServer() + .requestHandler(req => { + console.log("Proxying request: " + req.uri()); + + let c_req = client.request(req.method(), 8282, "localhost", req.uri(), c_res => { + console.log("Proxying response: " + c_res.statusCode()); + req.response() + .setChunked(true) + .setStatusCode(c_res.statusCode()) + .headers() + .setAll(c_res.headers()); + + c_res.handler(data => { + console.log("Proxying response body: " + data.toString("ISO-8859-1")); + req.response().write(data); + }); + c_res.endHandler(v => { + req.response().end(); + }); + }); + + c_req + .setChunked(true) + .headers() + .setAll(req.headers()); + + req.handler(data => { + console.log("Proxying request body " + data.toString("ISO-8859-1")); + c_req.write(data); + }); + + req.endHandler(v => { + c_req.end(); + }); + }).listen(8080); diff --git a/docs/quick-guide/core/http/proxy/server.js b/docs/quick-guide/core/http/proxy/server.js new file mode 100644 index 000000000..91c608825 --- /dev/null +++ b/docs/quick-guide/core/http/proxy/server.js @@ -0,0 +1,25 @@ + +vertx.createHttpServer().requestHandler(function (req) { + + console.log("Got request " + req.uri()); + + Array.prototype.forEach.call(req.headers().names(), function(name) { + console.log(name + ": " + req.headers().get(name)); + }); + + req.handler(function (data) { + console.log("Got data " + data.toString("ISO-8859-1")); + }); + + req.endHandler(function (v) { + // Now send back a response + req.response().setChunked(true); + + for (var i = 0;i < 10;i++) { + req.response().write("server-data-chunk-" + i); + } + + req.response().end(); + }); +}).listen(8282); + diff --git a/docs/quick-guide/core/http/proxyconnect/client.js b/docs/quick-guide/core/http/proxyconnect/client.js new file mode 100644 index 000000000..bd6179074 --- /dev/null +++ b/docs/quick-guide/core/http/proxyconnect/client.js @@ -0,0 +1,31 @@ +/// +// @ts-check + +import { HttpClientOptions, ProxyOptions } from "@vertx/core/options"; +import { ProxyType } from "@vertx/core/enums"; + +let request = vertx.createHttpClient( + new HttpClientOptions() + .setSsl(true) + .setTrustAll(true) + .setVerifyHost(false) + .setProxyOptions( + new ProxyOptions() + .setType(ProxyType.HTTP) + .setHost("localhost") + .setPort(8080))) + + .put(8282, "localhost", "/", resp => { + console.log("Got response " + resp.statusCode()); + resp.bodyHandler(function (body) { + console.log("Got data " + body.toString("ISO-8859-1")); + }); + }); + +request.setChunked(true); + +for (var i = 0; i < 10; i++) { + request.write("client-chunk-" + i); +} + +request.end(); diff --git a/docs/quick-guide/core/http/proxyconnect/proxy.js b/docs/quick-guide/core/http/proxyconnect/proxy.js new file mode 100644 index 000000000..a63657322 --- /dev/null +++ b/docs/quick-guide/core/http/proxyconnect/proxy.js @@ -0,0 +1,52 @@ +/// +// @ts-check + +import { HttpMethod } from "@vertx/core/enums"; + +var client = vertx.createNetClient(); + +vertx.createHttpServer().requestHandler(req => { + if (req.method() === HttpMethod.CONNECT) { + + // Determine proxied server address + var proxyAddress = req.uri(); + var idx = proxyAddress.indexOf(':'); + var host = proxyAddress.substring(0, idx); + var port = parseInt(proxyAddress.substring(idx + 1), 10); + + console.log("Connecting to proxy " + proxyAddress); + + client.connect(port, host, onConnect => { + + if (onConnect.succeeded()) { + console.log("Connected to proxy"); + var clientSocket = req.netSocket(); + clientSocket.write("HTTP/1.0 200 Connection established\n\n"); + var serverSocket = onConnect.result(); + + serverSocket.handler(buff => { + console.log("Forwarding server packet to the client"); + clientSocket.write(buff); + }); + serverSocket.closeHandler(v => { + console.log("Server socket closed"); + clientSocket.close(); + }); + + clientSocket.handler(buff => { + console.log("Forwarding client packet to the server"); + serverSocket.write(buff); + }); + clientSocket.closeHandler(v => { + console.log("Client socket closed"); + serverSocket.close(); + }); + } else { + console.log("Fail proxy connection"); + req.response().setStatusCode(403).end(); + } + }); + } else { + req.response().setStatusCode(405).end(); + } +}).listen(8080); diff --git a/docs/quick-guide/core/http/sendfile/index.html b/docs/quick-guide/core/http/sendfile/index.html new file mode 100644 index 000000000..20c9198e1 --- /dev/null +++ b/docs/quick-guide/core/http/sendfile/index.html @@ -0,0 +1,14 @@ + + + vert.x static web server + + +

This is the vert.x static web server. Click on some links below

+ +
+
+Page 1 +Page 2 + + + \ No newline at end of file diff --git a/docs/quick-guide/core/http/sendfile/page1.html b/docs/quick-guide/core/http/sendfile/page1.html new file mode 100644 index 000000000..a09ac29ae --- /dev/null +++ b/docs/quick-guide/core/http/sendfile/page1.html @@ -0,0 +1,8 @@ + + + + + +

Welcome to page1!

+ + \ No newline at end of file diff --git a/docs/quick-guide/core/http/sendfile/page2.html b/docs/quick-guide/core/http/sendfile/page2.html new file mode 100644 index 000000000..373f24d52 --- /dev/null +++ b/docs/quick-guide/core/http/sendfile/page2.html @@ -0,0 +1,8 @@ + + + + + +

Welcome to page2!

+ + \ No newline at end of file diff --git a/docs/quick-guide/core/http/sendfile/send_file.js b/docs/quick-guide/core/http/sendfile/send_file.js new file mode 100644 index 000000000..ea88f1d4c --- /dev/null +++ b/docs/quick-guide/core/http/sendfile/send_file.js @@ -0,0 +1,22 @@ +/// +// @ts-check + +// In reality it's highly recommend you use Vert.x-Web for applications like this. + +vertx.createHttpServer().requestHandler(req => { + let filename; + + if (req.path() == "/") { + filename = "sendfile/index.html"; + } else if (req.path() == "/page1.html") { + filename = "sendfile/page1.html"; + } else if (req.path() == "/page2.html") { + filename = "sendfile/page2.html"; + } else { + req.response().setStatusCode(404).end(); + } + + if (filename) { + req.response().sendFile(filename); + } +}).listen(8080); diff --git a/docs/quick-guide/core/http/sharing/client.js b/docs/quick-guide/core/http/sharing/client.js new file mode 100644 index 000000000..565db1e96 --- /dev/null +++ b/docs/quick-guide/core/http/sharing/client.js @@ -0,0 +1,13 @@ +/// +// @ts-check + +vertx + .setPeriodic(1000, t => { + vertx + .createHttpClient() + .getNow(8080, "localhost", "/", resp => { + resp.bodyHandler(function (body) { + console.log(body.toString("ISO-8859-1")); + }); + }); + }); diff --git a/docs/quick-guide/core/http/sharing/http_server_verticle.js b/docs/quick-guide/core/http/sharing/http_server_verticle.js new file mode 100644 index 000000000..727a5c371 --- /dev/null +++ b/docs/quick-guide/core/http/sharing/http_server_verticle.js @@ -0,0 +1,10 @@ +/// +// @ts-check + +vertx + .createHttpServer() + .requestHandler(req => { + req.response() + .putHeader("content-type", "text/html") + .end("

Hello from " + this + "

"); + }).listen(8080); diff --git a/docs/quick-guide/core/http/sharing/server.js b/docs/quick-guide/core/http/sharing/server.js new file mode 100644 index 000000000..08fde01e2 --- /dev/null +++ b/docs/quick-guide/core/http/sharing/server.js @@ -0,0 +1,9 @@ +/// +// @ts-check + +import { DeploymentOptions } from "@vertx/core/options"; + +vertx + .deployVerticle( + "http_server_verticle.js", + new DeploymentOptions().setInstances(2)); diff --git a/docs/quick-guide/core/http/simple/client.js b/docs/quick-guide/core/http/simple/client.js new file mode 100644 index 000000000..dc23748ac --- /dev/null +++ b/docs/quick-guide/core/http/simple/client.js @@ -0,0 +1,11 @@ +/// +// @ts-check + +vertx + .createHttpClient() + .getNow(8080, "localhost", "/", resp => { + console.log("Got response " + resp.statusCode()); + resp.bodyHandler(body => { + console.log("Got data " + body.toString("ISO-8859-1")); + }); + }); diff --git a/docs/quick-guide/core/http/simple/server.js b/docs/quick-guide/core/http/simple/server.js new file mode 100644 index 000000000..ae43690f8 --- /dev/null +++ b/docs/quick-guide/core/http/simple/server.js @@ -0,0 +1,10 @@ +/// +// @ts-check + +vertx + .createHttpServer() + .requestHandler(req => { + req.response() + .putHeader("content-type", "text/html") + .end("

Hello from vert.x!

"); + }).listen(8080); diff --git a/docs/quick-guide/core/http/simpleform/index.html b/docs/quick-guide/core/http/simpleform/index.html new file mode 100644 index 000000000..2a96128a8 --- /dev/null +++ b/docs/quick-guide/core/http/simpleform/index.html @@ -0,0 +1,18 @@ + + + + + + + +
+ foo:
+ bar:
+ quux:
+ name:
+ +
+ + + \ No newline at end of file diff --git a/docs/quick-guide/core/http/simpleform/simple_form_server.js b/docs/quick-guide/core/http/simpleform/simple_form_server.js new file mode 100644 index 000000000..dd673b85b --- /dev/null +++ b/docs/quick-guide/core/http/simpleform/simple_form_server.js @@ -0,0 +1,21 @@ +/// +// @ts-check + +vertx.createHttpServer().requestHandler(req => { + if (req.uri() == "/") { + // Serve the index page + req.response().sendFile("index.html"); + } else if (req.uri().startsWith("/form")) { + req.response().setChunked(true); + req.setExpectMultipart(true); + req.endHandler(done => { + req.formAttributes().names().forEach(attr => { + req.response().write("Got attr " + attr + " : " + req.formAttributes().get(attr) + "\n"); + }) + + req.response().end(); + }); + } else { + req.response().setStatusCode(404).end(); + } +}).listen(8080); diff --git a/docs/quick-guide/core/http/simpleformupload/index.html b/docs/quick-guide/core/http/simpleformupload/index.html new file mode 100644 index 000000000..219c8f45a --- /dev/null +++ b/docs/quick-guide/core/http/simpleformupload/index.html @@ -0,0 +1,15 @@ + + + + + + + +
+ choose a file to upload:
+ +
+ + + \ No newline at end of file diff --git a/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js b/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js new file mode 100644 index 000000000..9a3136a34 --- /dev/null +++ b/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js @@ -0,0 +1,34 @@ +/// +// @ts-check + +vertx.createHttpServer().requestHandler(req => { + if (req.uri() == "/") { + // Serve the index page + req.response() + .sendFile("index.html"); + } else if (req.uri().startsWith("/form")) { + req.setExpectMultipart(true); + req.uploadHandler(upload => { + upload.exceptionHandler(err => { + req.response() + .setChunked(true) + .end("Upload failed"); + }); + + upload.endHandler(done => { + req.response() + .setChunked(true) + .end("Successfully uploaded to " + upload.filename()); + }); + // FIXME - Potential security exploit! In a real system you must check this filename + // to make sure you're not saving to a place where you don't want! + // Or better still, just use Vert.x-Web which controls the upload area. + upload.streamToFileSystem(upload.filename()); + }); + } else { + req.response() + .setStatusCode(404) + .end(); + } +}).listen(8080); + diff --git a/docs/quick-guide/core/http/upload/client.js b/docs/quick-guide/core/http/upload/client.js new file mode 100644 index 000000000..ea14512d0 --- /dev/null +++ b/docs/quick-guide/core/http/upload/client.js @@ -0,0 +1,29 @@ +/// +// @ts-check + +import { Pump } from '@vertx/core'; +import { OpenOptions } from '@vertx/core/options'; + +var req = vertx.createHttpClient() + .put(8080, "localhost", "/someurl", resp => { + console.log("Response " + resp.statusCode()); + }); +var filename = "upload.txt"; +var fs = vertx.fileSystem(); + +fs.props(filename, onProps => { + var props = onProps.result(); + console.log("props is " + props); + var size = props.size(); + req.headers().set("content-length", "" + size); + fs.open(filename, new OpenOptions(), onOpen => { + var file = onOpen.result(); + var pump = Pump.pump(file, req); + file.endHandler(v => { + req.end(); + }); + pump.start(); + }); +}); + + diff --git a/docs/quick-guide/core/http/upload/server.js b/docs/quick-guide/core/http/upload/server.js new file mode 100644 index 000000000..02632f38e --- /dev/null +++ b/docs/quick-guide/core/http/upload/server.js @@ -0,0 +1,25 @@ +/// +// @ts-check + +import { Pump } from '@vertx/core'; +import { OpenOptions } from '@vertx/core/options'; + +vertx.createHttpServer().requestHandler(req => { + req.pause(); + var filename = `temp-${Math.random().toString(36).substring(7)}.uploaded`; + vertx + .fileSystem() + .open(filename, new OpenOptions(), onOpen => { + var file = onOpen.result(); + var pump = Pump.pump(req, file); + req.endHandler(v => { + file.close(onClose => { + console.log("Uploaded to " + filename); + req.response() + .end(); + }); + }); + pump.start(); + req.resume(); + }); +}).listen(8080); diff --git a/docs/quick-guide/core/http/websockets/client.js b/docs/quick-guide/core/http/websockets/client.js new file mode 100644 index 000000000..90e2e7ac0 --- /dev/null +++ b/docs/quick-guide/core/http/websockets/client.js @@ -0,0 +1,13 @@ +/// +// @ts-check + +import { Buffer } from "@vertx/core"; +const client = vertx.createHttpClient(); + +client.websocket(8080, "localhost", "/some-uri", websocket => { + websocket.handler(data => { + console.log("Received data " + data.toString("ISO-8859-1")); + client.close(); + }); + websocket.writeBinaryMessage(Buffer.buffer("Hello world")); +}); diff --git a/docs/quick-guide/core/http/websockets/server.js b/docs/quick-guide/core/http/websockets/server.js new file mode 100644 index 000000000..5163860ee --- /dev/null +++ b/docs/quick-guide/core/http/websockets/server.js @@ -0,0 +1,12 @@ +/// +// @ts-check + +vertx.createHttpServer() + .webSocketHandler(ws => { + ws.handler(ws.writeBinaryMessage); + }) + .requestHandler(req => { + if (req.uri() == "/") { + req.response().sendFile("ws.html") + } + }).listen(8080); diff --git a/docs/quick-guide/core/http/websockets/ws.html b/docs/quick-guide/core/http/websockets/ws.html new file mode 100644 index 000000000..1ffaa2b13 --- /dev/null +++ b/docs/quick-guide/core/http/websockets/ws.html @@ -0,0 +1,37 @@ + +Web Socket Test + + +
+ + +
+ + diff --git a/docs/quick-guide/core/http2/customframes/client.js b/docs/quick-guide/core/http2/customframes/client.js new file mode 100644 index 000000000..46ccce0ac --- /dev/null +++ b/docs/quick-guide/core/http2/customframes/client.js @@ -0,0 +1,32 @@ +/// +// @ts-check + +import { HttpClientOptions } from "@vertx/core/options"; +import { HttpVersion } from "@vertx/core/enums"; +import { Buffer } from '@vertx/core'; + +// Note! in real-life you wouldn't often set trust all to true as +// it could leave you open to man in the middle attacks. + +const options = new HttpClientOptions() + .setSsl(true) + .setUseAlpn(true) + .setProtocolVersion(HttpVersion.HTTP_2) + .setTrustAll(true); + +var request = vertx.createHttpClient(options).get(8443, "localhost", "/"); + +request.handler(resp => { + // Print custom frames received from server + resp.customFrameHandler(frame => { + console.log("Got frame from server " + frame.payload().toString("UTF-8")); + }); +}); + +request.sendHead(version => { + // Once head has been sent we can send custom frames + vertx.setPeriodic(1000, t => { + console.log("Sending ping frame to server"); + request.writeCustomFrame(10, 0, Buffer.buffer("ping")); + }); +}); diff --git a/docs/quick-guide/core/http2/customframes/server-cert.pem b/docs/quick-guide/core/http2/customframes/server-cert.pem new file mode 100755 index 000000000..ed041435f --- /dev/null +++ b/docs/quick-guide/core/http2/customframes/server-cert.pem @@ -0,0 +1,22 @@ +Bag Attributes + friendlyName: test-store + localKeyID: 54 69 6D 65 20 31 34 33 36 32 37 36 31 36 38 39 30 30 +subject=/CN=localhost +issuer=/CN=localhost +-----BEGIN CERTIFICATE----- +MIICxzCCAa+gAwIBAgIEFC3x5TANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls +b2NhbGhvc3QwHhcNMTUwNzA3MTMzNTM4WhcNMTgwNzA2MTMzNTM4WjAUMRIwEAYD +VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCa +xywB+KQ9+HJAOe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GU +CScKVEYIgwNiHVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG +3ro26rM/QzRwLhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwps +brTiKtZg57kv0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+y +AitYncmwJ5Z3qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a +3MtavH1onQyTYrDlczHHAgMBAAGjITAfMB0GA1UdDgQWBBQxA6ZvimuLP/vf2oL6 +abg8a7XjCTANBgkqhkiG9w0BAQsFAAOCAQEAi+ZXuQCUibdZcGFNEB2aUGNv9Ggw +O75RQRnHBdNcc+DiGxkjUi4OgcMVmOWdSqa3xVyI7+VHiOsKmtIp/hk6SbubBGDq +kiLr8D8D9yK5R4KQhTlc+Y+DZpnbwlhInia0+96DwGu26QD1JlPn/6jFWHP6u3hB +H8Vc6uASoNP8f1nPR+SFnFRK73XgkVrfKQeKeAESP/7DLontUP+BLgdQuBbWC75t +FF5ns1nmn1T9HgnGYiu2yfpSOQB1YtpMRoG9F7q5ISUhBLhfLSlVCi/1WI2ADkfS +9/tDd4NhFYMNuCtO8gf1oskuzg7CNa/RQ23iGI1Lnbi64kdNKv/DRmSRAw== +-----END CERTIFICATE----- diff --git a/docs/quick-guide/core/http2/customframes/server-key.pem b/docs/quick-guide/core/http2/customframes/server-key.pem new file mode 100755 index 000000000..5217ef604 --- /dev/null +++ b/docs/quick-guide/core/http2/customframes/server-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaxywB+KQ9+HJA +Oe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GUCScKVEYIgwNi +HVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG3ro26rM/QzRw +LhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwpsbrTiKtZg57kv +0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+yAitYncmwJ5Z3 +qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a3MtavH1onQyT +YrDlczHHAgMBAAECgf8Ujl9J47vsfxKtdQQYs2G/itS/HqiUlYrhc1KI3NA7tW6n +x4OsCodZDfxabqev+u86ufx1YrvqZXwNi9d/pv+Plkv7NyWQ5C7N/n7T9shiQBdm ++s4LY9D5JJSEzmcK6pRGVU5l/MXRoRtVysjpTkzlCqzRtjMYVLP+2bFY2kWaWR8m +F1BYIPjhtDJto6dXP/yukRSoR9F/q5+c90U5AqokxxQksdMLP2vlmK1J8O3yRKGi +u5yphkQW+82ybOZnE99Mkp35qUpDleeFp04Itlg0drxdfA9QgR1ndeczq4agRn8X +O8n2u6LELOELs1m1eYeeFKDcaXTTHJN7IunvBWECgYEA0mwI/m932vaDDfpK6sOt +grL8mDg3XNc+2V+NEPSX5jp5JNtN/HZn+cP++Ooumyaaxs/AjR80r8ttPGXj+7E6 +Js10FU7AMCRRMMFYD3aEwvLVXcZJtr3waggyyC0C6kRjizk+0oG+xQ2Y3SxPlJYQ +KQL6cqs0M3a7QDcfBp/ZgC8CgYEAvE2o/uYhvmpKFYB61H0uHtNk1zZKPvbruAgP +vPInIp5mCbVqdvltZNIac72wQC/CzM/HS2yosHw5NNsETwXazZXpEemm5WcgbG5Z +Gvr/wAyYBJqaU0GDmH097VAuRBV503pp6yz+4Oozisr8PO8ws6YcuwINbc985gQT +hBjqKekCgYEA0IInY2C3Zq0xbi9f/0QJcmLENF44VfIgoCuz0GJfBs9YbfI2U/5M +x820oZkEt89IPctt5SlP/wbYZqocgLK8iei6p8aSYOIL5gEgrqnlonwYe8TaFJAg +ZCFdmMgphFRiQ3plSxkwHXl8yWV4MieFOe5umCQYJQr5QAee4eSSFRcCgYEAi6Xg +jeFn5wp2lMmqzklj2dKWd5C4sUd3+wxnd43yfhcQv2R+Z2uFuH6kxW9I9eE1y6TQ +PVyBIhmOZ2eCI4TJByyFJBavAnRftGqFxJ+e6fOtDcUGbHYqvP0s3wFWvoFazv56 +7MF66JxnyyfMtvgAm0q3Be14vhZhn0gonQ/JIXkCgYEAkt9QhudWlcrqnobW3Rf9 +/IVj7ZM5KpKmIRuZ+OlkCZfEbMuVToGWEeObMBYcfHpm8ELyCBVw0DZeYqZXXmYG +GdIS/1ojTDYeqriJIty8cMzBWMGcX+BcDb1XlguT4ze+yBKP3CQwm9OkKbncm8C4 +6oJwX+C7M0xdpD8e6gBXDPM= +-----END PRIVATE KEY----- diff --git a/docs/quick-guide/core/http2/customframes/server.js b/docs/quick-guide/core/http2/customframes/server.js new file mode 100644 index 000000000..37fa1865d --- /dev/null +++ b/docs/quick-guide/core/http2/customframes/server.js @@ -0,0 +1,25 @@ +/// +// @ts-check + +import { HttpServerOptions, PemKeyCertOptions } from "@vertx/core/options"; +import { Buffer } from '@vertx/core'; + +var server = vertx.createHttpServer( + new HttpServerOptions() + .setUseAlpn(true) + .setSsl(true) + .setPemKeyCertOptions( + new PemKeyCertOptions() + .setKeyPath("server-key.pem") + .setCertPath("server-cert.pem"))); + +server.requestHandler(function (req) { + var resp = req.response(); + + req.customFrameHandler(function (frame) { + console.log("Received client frame " + frame.payload().toString("UTF-8")); + + // Write the sam + resp.writeCustomFrame(10, 0, Buffer.buffer("pong")); + }); +}).listen(8443); diff --git a/docs/quick-guide/core/http2/h2c/client.js b/docs/quick-guide/core/http2/h2c/client.js new file mode 100644 index 000000000..9be35db01 --- /dev/null +++ b/docs/quick-guide/core/http2/h2c/client.js @@ -0,0 +1,20 @@ +/// +// @ts-check + +import { HttpClientOptions } from "@vertx/core/options"; +import { HttpVersion } from "@vertx/core/enums"; + + +// Note! in real-life you wouldn't often set trust all to true as +// it could leave you open to man in the middle attacks. + +const options = new HttpClientOptions() + .setProtocolVersion(HttpVersion.HTTP_2); + +vertx.createHttpClient(options) + .getNow(8080, "localhost", "/", resp => { + console.log("Got response " + resp.statusCode() + " with protocol " + resp.version()); + resp.bodyHandler(body => { + console.log("Got data " + body.toString("ISO-8859-1")); + }); + }); diff --git a/docs/quick-guide/core/http2/h2c/server.js b/docs/quick-guide/core/http2/h2c/server.js new file mode 100644 index 000000000..f3aca94cb --- /dev/null +++ b/docs/quick-guide/core/http2/h2c/server.js @@ -0,0 +1,10 @@ +/// +// @ts-check + +var server = vertx.createHttpServer(); + +server.requestHandler(req => { + req.response() + .putHeader("content-type", "text/html") + .end("

Hello from vert.x!

version = " + req.version() + "

"); +}).listen(8080); diff --git a/docs/quick-guide/core/http2/push/client.js b/docs/quick-guide/core/http2/push/client.js new file mode 100644 index 000000000..1eb457726 --- /dev/null +++ b/docs/quick-guide/core/http2/push/client.js @@ -0,0 +1,33 @@ +/// +// @ts-check + +import { HttpClientOptions } from "@vertx/core/options"; +import { HttpVersion } from "@vertx/core/enums"; + + +// Note! in real-life you wouldn't often set trust all to true as +// it could leave you open to man in the middle attacks. + +const options = new HttpClientOptions() + .setSsl(true) + .setUseAlpn(true) + .setProtocolVersion(HttpVersion.HTTP_2) + .setTrustAll(true); + +vertx.createHttpClient(options) + .get(8443, "localhost", "/", resp => { + console.log("Got response " + resp.statusCode() + " with protocol " + resp.version()); + resp.bodyHandler(body => { + console.log("Got data " + body.toString("ISO-8859-1")); + }); + }) + // Set handler for server side push + .pushHandler(pushedReq => { + console.log("Receiving pushed content"); + pushedReq.handler(pushedResp => { + pushedResp.bodyHandler(body => { + console.log("Got pushed data " + body.toString("ISO-8859-1")); + }); + }); + }) + .end(); diff --git a/docs/quick-guide/core/http2/push/index.html b/docs/quick-guide/core/http2/push/index.html new file mode 100755 index 000000000..710b816ea --- /dev/null +++ b/docs/quick-guide/core/http2/push/index.html @@ -0,0 +1,12 @@ + + + + + Hello world + + + +

Hello World

+ + + \ No newline at end of file diff --git a/docs/quick-guide/core/http2/push/script.js b/docs/quick-guide/core/http2/push/script.js new file mode 100755 index 000000000..5048b9e35 --- /dev/null +++ b/docs/quick-guide/core/http2/push/script.js @@ -0,0 +1 @@ +alert("hello world"); \ No newline at end of file diff --git a/docs/quick-guide/core/http2/push/server-cert.pem b/docs/quick-guide/core/http2/push/server-cert.pem new file mode 100755 index 000000000..ed041435f --- /dev/null +++ b/docs/quick-guide/core/http2/push/server-cert.pem @@ -0,0 +1,22 @@ +Bag Attributes + friendlyName: test-store + localKeyID: 54 69 6D 65 20 31 34 33 36 32 37 36 31 36 38 39 30 30 +subject=/CN=localhost +issuer=/CN=localhost +-----BEGIN CERTIFICATE----- +MIICxzCCAa+gAwIBAgIEFC3x5TANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls +b2NhbGhvc3QwHhcNMTUwNzA3MTMzNTM4WhcNMTgwNzA2MTMzNTM4WjAUMRIwEAYD +VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCa +xywB+KQ9+HJAOe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GU +CScKVEYIgwNiHVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG +3ro26rM/QzRwLhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwps +brTiKtZg57kv0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+y +AitYncmwJ5Z3qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a +3MtavH1onQyTYrDlczHHAgMBAAGjITAfMB0GA1UdDgQWBBQxA6ZvimuLP/vf2oL6 +abg8a7XjCTANBgkqhkiG9w0BAQsFAAOCAQEAi+ZXuQCUibdZcGFNEB2aUGNv9Ggw +O75RQRnHBdNcc+DiGxkjUi4OgcMVmOWdSqa3xVyI7+VHiOsKmtIp/hk6SbubBGDq +kiLr8D8D9yK5R4KQhTlc+Y+DZpnbwlhInia0+96DwGu26QD1JlPn/6jFWHP6u3hB +H8Vc6uASoNP8f1nPR+SFnFRK73XgkVrfKQeKeAESP/7DLontUP+BLgdQuBbWC75t +FF5ns1nmn1T9HgnGYiu2yfpSOQB1YtpMRoG9F7q5ISUhBLhfLSlVCi/1WI2ADkfS +9/tDd4NhFYMNuCtO8gf1oskuzg7CNa/RQ23iGI1Lnbi64kdNKv/DRmSRAw== +-----END CERTIFICATE----- diff --git a/docs/quick-guide/core/http2/push/server-key.pem b/docs/quick-guide/core/http2/push/server-key.pem new file mode 100755 index 000000000..5217ef604 --- /dev/null +++ b/docs/quick-guide/core/http2/push/server-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaxywB+KQ9+HJA +Oe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GUCScKVEYIgwNi +HVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG3ro26rM/QzRw +LhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwpsbrTiKtZg57kv +0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+yAitYncmwJ5Z3 +qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a3MtavH1onQyT +YrDlczHHAgMBAAECgf8Ujl9J47vsfxKtdQQYs2G/itS/HqiUlYrhc1KI3NA7tW6n +x4OsCodZDfxabqev+u86ufx1YrvqZXwNi9d/pv+Plkv7NyWQ5C7N/n7T9shiQBdm ++s4LY9D5JJSEzmcK6pRGVU5l/MXRoRtVysjpTkzlCqzRtjMYVLP+2bFY2kWaWR8m +F1BYIPjhtDJto6dXP/yukRSoR9F/q5+c90U5AqokxxQksdMLP2vlmK1J8O3yRKGi +u5yphkQW+82ybOZnE99Mkp35qUpDleeFp04Itlg0drxdfA9QgR1ndeczq4agRn8X +O8n2u6LELOELs1m1eYeeFKDcaXTTHJN7IunvBWECgYEA0mwI/m932vaDDfpK6sOt +grL8mDg3XNc+2V+NEPSX5jp5JNtN/HZn+cP++Ooumyaaxs/AjR80r8ttPGXj+7E6 +Js10FU7AMCRRMMFYD3aEwvLVXcZJtr3waggyyC0C6kRjizk+0oG+xQ2Y3SxPlJYQ +KQL6cqs0M3a7QDcfBp/ZgC8CgYEAvE2o/uYhvmpKFYB61H0uHtNk1zZKPvbruAgP +vPInIp5mCbVqdvltZNIac72wQC/CzM/HS2yosHw5NNsETwXazZXpEemm5WcgbG5Z +Gvr/wAyYBJqaU0GDmH097VAuRBV503pp6yz+4Oozisr8PO8ws6YcuwINbc985gQT +hBjqKekCgYEA0IInY2C3Zq0xbi9f/0QJcmLENF44VfIgoCuz0GJfBs9YbfI2U/5M +x820oZkEt89IPctt5SlP/wbYZqocgLK8iei6p8aSYOIL5gEgrqnlonwYe8TaFJAg +ZCFdmMgphFRiQ3plSxkwHXl8yWV4MieFOe5umCQYJQr5QAee4eSSFRcCgYEAi6Xg +jeFn5wp2lMmqzklj2dKWd5C4sUd3+wxnd43yfhcQv2R+Z2uFuH6kxW9I9eE1y6TQ +PVyBIhmOZ2eCI4TJByyFJBavAnRftGqFxJ+e6fOtDcUGbHYqvP0s3wFWvoFazv56 +7MF66JxnyyfMtvgAm0q3Be14vhZhn0gonQ/JIXkCgYEAkt9QhudWlcrqnobW3Rf9 +/IVj7ZM5KpKmIRuZ+OlkCZfEbMuVToGWEeObMBYcfHpm8ELyCBVw0DZeYqZXXmYG +GdIS/1ojTDYeqriJIty8cMzBWMGcX+BcDb1XlguT4ze+yBKP3CQwm9OkKbncm8C4 +6oJwX+C7M0xdpD8e6gBXDPM= +-----END PRIVATE KEY----- diff --git a/docs/quick-guide/core/http2/push/server.js b/docs/quick-guide/core/http2/push/server.js new file mode 100644 index 000000000..94ebf57bf --- /dev/null +++ b/docs/quick-guide/core/http2/push/server.js @@ -0,0 +1,38 @@ +/// +// @ts-check + +import { HttpServerOptions, PemKeyCertOptions } from "@vertx/core/options"; +import { HttpMethod } from "@vertx/core/enums"; + +var server = vertx.createHttpServer(new HttpServerOptions() + .setUseAlpn(true) + .setSsl(true) + .setPemKeyCertOptions( + new PemKeyCertOptions() + .setKeyPath("server-key.pem") + .setCertPath("server-cert.pem"))); + +server.requestHandler(function (req) { + var path = req.path(); + var resp = req.response(); + if ("/" == path) { + resp.push(HttpMethod.GET, "/script.js", onPush => { + if (onPush.succeeded()) { + console.log("sending push"); + var pushedResp = onPush.result(); + pushedResp.sendFile("script.js"); + } else { + // Sometimes Safari forbids push : "Server push not allowed to opposite endpoint." + } + }); + + resp.sendFile("index.html"); + } else if ("/script.js" == path) { + resp.sendFile("script.js"); + } else { + console.log("Not found " + path); + resp.setStatusCode(404).end(); + } +}); + +server.listen(8443); diff --git a/docs/quick-guide/core/http2/simple/client.js b/docs/quick-guide/core/http2/simple/client.js new file mode 100644 index 000000000..3b12b50e1 --- /dev/null +++ b/docs/quick-guide/core/http2/simple/client.js @@ -0,0 +1,22 @@ +/// +// @ts-check + +import { HttpClientOptions } from "@vertx/core/options"; +import { HttpVersion } from "@vertx/core/enums"; + + +// Note! in real-life you wouldn't often set trust all to true as +// it could leave you open to man in the middle attacks. + +const options = new HttpClientOptions() + .setSsl(true) + .setUseAlpn(true) + .setProtocolVersion(HttpVersion.HTTP_2) + .setTrustAll(true); + +vertx.createHttpClient(options).getNow(8443, "localhost", "/", resp => { + console.log("Got response " + resp.statusCode() + " with protocol " + resp.version()); + resp.bodyHandler(body => { + console.log("Got data " + body.toString("ISO-8859-1")); + }); +}); diff --git a/docs/quick-guide/core/http2/simple/server-cert.pem b/docs/quick-guide/core/http2/simple/server-cert.pem new file mode 100755 index 000000000..ed041435f --- /dev/null +++ b/docs/quick-guide/core/http2/simple/server-cert.pem @@ -0,0 +1,22 @@ +Bag Attributes + friendlyName: test-store + localKeyID: 54 69 6D 65 20 31 34 33 36 32 37 36 31 36 38 39 30 30 +subject=/CN=localhost +issuer=/CN=localhost +-----BEGIN CERTIFICATE----- +MIICxzCCAa+gAwIBAgIEFC3x5TANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls +b2NhbGhvc3QwHhcNMTUwNzA3MTMzNTM4WhcNMTgwNzA2MTMzNTM4WjAUMRIwEAYD +VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCa +xywB+KQ9+HJAOe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GU +CScKVEYIgwNiHVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG +3ro26rM/QzRwLhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwps +brTiKtZg57kv0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+y +AitYncmwJ5Z3qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a +3MtavH1onQyTYrDlczHHAgMBAAGjITAfMB0GA1UdDgQWBBQxA6ZvimuLP/vf2oL6 +abg8a7XjCTANBgkqhkiG9w0BAQsFAAOCAQEAi+ZXuQCUibdZcGFNEB2aUGNv9Ggw +O75RQRnHBdNcc+DiGxkjUi4OgcMVmOWdSqa3xVyI7+VHiOsKmtIp/hk6SbubBGDq +kiLr8D8D9yK5R4KQhTlc+Y+DZpnbwlhInia0+96DwGu26QD1JlPn/6jFWHP6u3hB +H8Vc6uASoNP8f1nPR+SFnFRK73XgkVrfKQeKeAESP/7DLontUP+BLgdQuBbWC75t +FF5ns1nmn1T9HgnGYiu2yfpSOQB1YtpMRoG9F7q5ISUhBLhfLSlVCi/1WI2ADkfS +9/tDd4NhFYMNuCtO8gf1oskuzg7CNa/RQ23iGI1Lnbi64kdNKv/DRmSRAw== +-----END CERTIFICATE----- diff --git a/docs/quick-guide/core/http2/simple/server-key.pem b/docs/quick-guide/core/http2/simple/server-key.pem new file mode 100755 index 000000000..5217ef604 --- /dev/null +++ b/docs/quick-guide/core/http2/simple/server-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaxywB+KQ9+HJA +Oe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GUCScKVEYIgwNi +HVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG3ro26rM/QzRw +LhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwpsbrTiKtZg57kv +0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+yAitYncmwJ5Z3 +qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a3MtavH1onQyT +YrDlczHHAgMBAAECgf8Ujl9J47vsfxKtdQQYs2G/itS/HqiUlYrhc1KI3NA7tW6n +x4OsCodZDfxabqev+u86ufx1YrvqZXwNi9d/pv+Plkv7NyWQ5C7N/n7T9shiQBdm ++s4LY9D5JJSEzmcK6pRGVU5l/MXRoRtVysjpTkzlCqzRtjMYVLP+2bFY2kWaWR8m +F1BYIPjhtDJto6dXP/yukRSoR9F/q5+c90U5AqokxxQksdMLP2vlmK1J8O3yRKGi +u5yphkQW+82ybOZnE99Mkp35qUpDleeFp04Itlg0drxdfA9QgR1ndeczq4agRn8X +O8n2u6LELOELs1m1eYeeFKDcaXTTHJN7IunvBWECgYEA0mwI/m932vaDDfpK6sOt +grL8mDg3XNc+2V+NEPSX5jp5JNtN/HZn+cP++Ooumyaaxs/AjR80r8ttPGXj+7E6 +Js10FU7AMCRRMMFYD3aEwvLVXcZJtr3waggyyC0C6kRjizk+0oG+xQ2Y3SxPlJYQ +KQL6cqs0M3a7QDcfBp/ZgC8CgYEAvE2o/uYhvmpKFYB61H0uHtNk1zZKPvbruAgP +vPInIp5mCbVqdvltZNIac72wQC/CzM/HS2yosHw5NNsETwXazZXpEemm5WcgbG5Z +Gvr/wAyYBJqaU0GDmH097VAuRBV503pp6yz+4Oozisr8PO8ws6YcuwINbc985gQT +hBjqKekCgYEA0IInY2C3Zq0xbi9f/0QJcmLENF44VfIgoCuz0GJfBs9YbfI2U/5M +x820oZkEt89IPctt5SlP/wbYZqocgLK8iei6p8aSYOIL5gEgrqnlonwYe8TaFJAg +ZCFdmMgphFRiQ3plSxkwHXl8yWV4MieFOe5umCQYJQr5QAee4eSSFRcCgYEAi6Xg +jeFn5wp2lMmqzklj2dKWd5C4sUd3+wxnd43yfhcQv2R+Z2uFuH6kxW9I9eE1y6TQ +PVyBIhmOZ2eCI4TJByyFJBavAnRftGqFxJ+e6fOtDcUGbHYqvP0s3wFWvoFazv56 +7MF66JxnyyfMtvgAm0q3Be14vhZhn0gonQ/JIXkCgYEAkt9QhudWlcrqnobW3Rf9 +/IVj7ZM5KpKmIRuZ+OlkCZfEbMuVToGWEeObMBYcfHpm8ELyCBVw0DZeYqZXXmYG +GdIS/1ojTDYeqriJIty8cMzBWMGcX+BcDb1XlguT4ze+yBKP3CQwm9OkKbncm8C4 +6oJwX+C7M0xdpD8e6gBXDPM= +-----END PRIVATE KEY----- diff --git a/docs/quick-guide/core/http2/simple/server.js b/docs/quick-guide/core/http2/simple/server.js new file mode 100644 index 000000000..88d1215a3 --- /dev/null +++ b/docs/quick-guide/core/http2/simple/server.js @@ -0,0 +1,19 @@ +/// +// @ts-check + +import { HttpServerOptions, PemKeyCertOptions } from "@vertx/core/options"; + +var server = vertx.createHttpServer( + new HttpServerOptions() + .setUseAlpn(true) + .setSsl(true) + .setPemKeyCertOptions( + new PemKeyCertOptions() + .setKeyPath("server-key.pem") + .setCertPath("server-cert.pem"))); + +server.requestHandler(function (req) { + req.response() + .putHeader("content-type", "text/html") + .end(`

Hello from vert.x!

version = ${req.version()}

`); +}).listen(8443); diff --git a/docs/quick-guide/core/net/echo/client.js b/docs/quick-guide/core/net/echo/client.js new file mode 100644 index 000000000..44e8f9142 --- /dev/null +++ b/docs/quick-guide/core/net/echo/client.js @@ -0,0 +1,23 @@ +/// +// @ts-check +vertx + .createNetClient() + .connect(1234, "localhost", onConnect => { + + if (onConnect.succeeded()) { + let socket = onConnect.result(); + + socket.handler(buffer => { + console.log("Net client receiving: " + buffer.toString("UTF-8")); + }); + + // Now send some data + for (var i = 0;i < 10;i++) { + var str = `hello ${i}\n`; + console.log(`Net client sending: ${str}`); + socket.write(str); + } + } else { + console.trace(onConnect.cause()); + } +}); diff --git a/docs/quick-guide/core/net/echo/server.js b/docs/quick-guide/core/net/echo/server.js new file mode 100644 index 000000000..02ee96889 --- /dev/null +++ b/docs/quick-guide/core/net/echo/server.js @@ -0,0 +1,15 @@ +/// +// @ts-check +import { Pump } from '@vertx/core'; + +vertx + .createNetServer() + .connectHandler(socket => { + + // Create a pump + Pump.pump(socket, socket).start(); + + }).listen(1234); + +console.log("Echo server is now listening"); + diff --git a/docs/quick-guide/core/net/echossl/client.js b/docs/quick-guide/core/net/echossl/client.js new file mode 100644 index 000000000..c707ed054 --- /dev/null +++ b/docs/quick-guide/core/net/echossl/client.js @@ -0,0 +1,27 @@ +/// +// @ts-check + +const { NetClientOptions } = require("@vertx/core/options"); + + +const options = new NetClientOptions() + .setSsl(true) + .setTrustAll(true); + +vertx.createNetClient(options).connect(1234, "localhost", onConnect => { + if (onConnect.succeeded()) { + var socket = onConnect.result(); + socket.handler(buff => { + console.log("client receiving " + buff.toString("UTF-8")); + }); + + // Now send some data + for (var i = 0;i < 10;i++) { + var str = `hello ${i}\n`; + console.log(`Net client sending: ${str}`); + socket.write(str); + } + } else { + console.trace(onConnect.cause()); + } +}); diff --git a/docs/quick-guide/core/net/echossl/server-keystore.jks b/docs/quick-guide/core/net/echossl/server-keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..3322b4548c06c7e7890460d70ebb97fe9fd22799 GIT binary patch literal 2252 zcmchYc{J1u8^>oe*#;RgmJx;s!*3`w2;nV6mI$G1i)0_JeQC0fecwU~BTHG^xR$bB zBui3c35{j4jmDDky7#>2eeXH_|Nim(@%{YqoacO>=X@Uql|co8K#=1C|6Qzp&ICU! z!OzRr`558uiLm*AKui#T2x9;oa8?;O7zUPxoCJfJKrkX~rS$4D`H5yR+5tshyxfBk z<+B`l$ex-iZx5xt@^%{Xt?O)cNr?Mo&939!S^ddG!l3TZ=TKtN<;{~_ct8+q&`E9a z{r=p7IQilh`nhcE%4quix8I))Re7{R=*WVE{AdjCh__Wg z>n5dbFVWjH5RZ-!`f2cK?NR)f+N=?O@$@iyKXZ=Ax!k?wAoMoGp{HNo`*2!X_b}xr=Kfk$QnMrZH_ksx$yd~% z2=gw_0eDMbgvyxr#L{BXQrOagu#nK9ds|;FRx@~XcObD?x@fSE{1Gb=@a!TsskO9h zZyF~X{LbI7@{M7Ovi;YkSRE~ngn9Q66f@13JpuHC34?*Q^jpk5+GWhr#v%z5WZnY= zs+$8JUhujWWXQFNli4M&g!goD6(GC_XZHkWl1?hW^oQw0SaGJOEI;8iU=mjSslQ=H z8fz<#@)oQw$>G7R&Vb7OJn(Ngnk4BlMhhv`jl9&S4s+Y7FY;?S`+r9o33`@)Q0dIl zExVPVq_LFvj8M5vQYv^?P3BF~WhC@Y8qKODOKoNPE7N8SZ9O9?&!0*TT7T5{L7MJ+ z+6C)stI(@w3l-&W%6Zc_`dcJN-^ioTlLk>tXr4=yG=1MtPUZ}c$Lf3@HIh?9-#n1E zMl7$}CRg5JM($4Vs2cFLc4=9!tYF=2`3a$6vbSG3KL)~XPu9)ZjqfjS3nk{1)Ny?P z=Wr$f`V!5)qo&+pG*&U(`V_ZtYE1Ql9=>})Lf*6nr5hC89d|j$6q1#O#I!(=4d4gtXRK*fS>d`btFi}+a6}w)&8__&oqUvbVERx|Mv7B z?9>gNsQYi%@F9Mk7l(h)Nwjsn6VB=jK8v7V(z0q3SKEz&pj|@mQnmFcZnBK2?7| zXO*j(fJn%hTpzsny0FN#f!sdE1ICe-Y+G?*vMq@tkG`zyYmxZ|xvd}~kFPhf6RI+@ zj#EI3sDjZ60P3C!ayJl3}6U>*{KJr=ljb z0v-QS?cCHgC}+iphuD^0Bbqj%ZI!+kJ=wV$reAT;SwX)o;`m6?G+Fslq~`*5VB(A2 zg9g{G#B#169_83fL>xYrLRv`BN|}x4_WBkd*mzS%Z8lT<>hH)7ksij9=ilkbWGQzZ zxBvn{BLE^a1Rz2jOP~-i1OjuK*O&$na2Dy9D=~Bg7|g~50z7eC$B_v&hry92%suaV zdIkKKF#keM{6biNA#DF6+yK{KouNn;cP~eKcULchA0W(!z~KO8MI27)ypn>F^y5J9{f2W@GkZlA!Fe zm=p+b8yjj4;$Vu!PAyR-K?^4J4UlWu6_!s0QU{~r1F!U>8j9q!@7$DWxMv*t=jZl!_J8`It-0|NqB$GgG|!|GAIQOHvc??a`}~C5^L81Q4<%NN zkAzR>;*ngUMd{@UNf-IRS_dKbTrMSf2P%6<5 zga`Yzt%caw(gGdD`KT9{Na^Wb-xiNlR81p1n!{P7l^PTrhQ*V^u$oku8Af-UGo#H#rHTVgr-vp{ l5A>{Z(Gm=Y#}?(?;;?o^BHJ(oEjYg+DYPl=JUMN!^>0E&< +// @ts-check +import { Pump } from '@vertx/core'; +import { NetServerOptions, JksOptions } from '@vertx/core/options'; + + +const options = new NetServerOptions() + .setSsl(true) + .setKeyStoreOptions( + new JksOptions() + .setPath('server-keystore.jks') + .setPassword('wibble')); + +vertx.createNetServer(options).connectHandler(socket => { + + // Create a pump + Pump.pump(socket, socket).start(); + +}).listen(1234); + +console.log("Echo server is now listening"); diff --git a/docs/quick-guide/core/package.json b/docs/quick-guide/core/package.json new file mode 100644 index 000000000..fb1604b86 --- /dev/null +++ b/docs/quick-guide/core/package.json @@ -0,0 +1,13 @@ +{ + "name": "core-examples", + "version": "1.0.0", + "private": true, + "license": "ISC", + "dependencies": { + "create-es4x-app": "latest", + "@vertx/core": "latest" + }, + "scripts": { + "postinstall": "es4x install" + } +} diff --git a/docs/quick-guide/core/verticle/asyncstart/deploy_example.js b/docs/quick-guide/core/verticle/asyncstart/deploy_example.js new file mode 100644 index 000000000..8151bd95c --- /dev/null +++ b/docs/quick-guide/core/verticle/asyncstart/deploy_example.js @@ -0,0 +1,26 @@ +/// +// @ts-check + +console.log("Main verticle has started, let's deploy some others..."); + +// Deploy another instance and want for it to start +vertx.deployVerticle("io.vertx.example.core.verticle.asyncstart.OtherVerticle", onDeployVerticle => { + if (onDeployVerticle.succeeded()) { + + var deploymentID = onDeployVerticle.result(); + + console.log("Other verticle deployed ok, deploymentID = " + deploymentID); + + vertx.undeploy(deploymentID, onUndeploy => { + if (onUndeploy.succeeded()) { + console.log("Undeployed ok!"); + } else { + console.trace(onUndeploy.cause()); + } + }); + } else { + console.trace(onDeployVerticle.cause()); + } +}); + + diff --git a/docs/quick-guide/core/verticle/deploy/deploy_example.js b/docs/quick-guide/core/verticle/deploy/deploy_example.js new file mode 100644 index 000000000..d046773a3 --- /dev/null +++ b/docs/quick-guide/core/verticle/deploy/deploy_example.js @@ -0,0 +1,63 @@ +/// +// @ts-check + +import { DeploymentOptions } from "@vertx/core/options"; + + +console.log("Main verticle has started, let's deploy some others..."); + +// Different ways of deploying verticles + +// Deploy a verticle and don't wait for it to start +vertx.deployVerticle("io.vertx.example.core.verticle.deploy.OtherVerticle"); + +// Deploy another instance and want for it to start +vertx.deployVerticle("io.vertx.example.core.verticle.deploy.OtherVerticle", onDeployVerticle => { + if (onDeployVerticle.succeeded()) { + + var deploymentID = onDeployVerticle.result(); + + console.log("Other verticle deployed ok, deploymentID = " + deploymentID); + + // You can also explicitly undeploy a verticle deployment. + // Note that this is usually unnecessary as any verticles deployed by a verticle will be automatically + // undeployed when the parent verticle is undeployed + + vertx.undeploy(deploymentID, onUndeploy => { + if (onUndeploy.succeeded()) { + console.log("Undeployed ok!"); + } else { + console.trace(onUndeploy.cause()); + } + }); + + } else { + console.trace(onDeployVerticle.cause()); + } +}); + +// Deploy specifying some config +var config = { + "foo": "bar" +}; + +vertx.deployVerticle( + "io.vertx.example.core.verticle.deploy.OtherVerticle", + new DeploymentOptions() + .setConfig({ + "config": config + })); + +// Deploy 10 instances +vertx.deployVerticle( + "io.vertx.example.core.verticle.deploy.OtherVerticle", + new DeploymentOptions() + .setInstances(10)); + +// Deploy it as a worker verticle +vertx.deployVerticle( + "io.vertx.example.core.verticle.deploy.OtherVerticle", + new DeploymentOptions() + .setWorker(true)); + + diff --git a/docs/quick-guide/core/verticle/worker/main_verticle.js b/docs/quick-guide/core/verticle/worker/main_verticle.js new file mode 100644 index 000000000..bf0fddf08 --- /dev/null +++ b/docs/quick-guide/core/verticle/worker/main_verticle.js @@ -0,0 +1,15 @@ +/// +// @ts-check + +import { DeploymentOptions } from "@vertx/core/options"; + +console.log("[Main] Running in " + Java.type("java.lang.Thread").currentThread().getName()); + +vertx.deployVerticle( + "io.vertx.example.core.verticle.worker.WorkerVerticle", + new DeploymentOptions().setWorker(true)); + +vertx.eventBus() +.send("sample.data", "hello vert.x", onSend => { + console.log("[Main] Receiving reply ' " + onSend.result().body() + "' in " + Java.type("java.lang.Thread").currentThread().getName()); +}); diff --git a/docs/quick-guide/core/verticle/worker/worker_verticle.js b/docs/quick-guide/core/verticle/worker/worker_verticle.js new file mode 100644 index 000000000..4b87787de --- /dev/null +++ b/docs/quick-guide/core/verticle/worker/worker_verticle.js @@ -0,0 +1,11 @@ +/// +// @ts-check + +console.log("[Worker] Starting in " + Java.type("java.lang.Thread").currentThread().getName()); + +vertx.eventBus() + .consumer("sample.data", function (message) { + console.log("[Worker] Consuming data in " + Java.type("java.lang.Thread").currentThread().getName()); + var body = message.body(); + message.reply(body.toUpperCase()); + }); diff --git a/package.json b/package.json index 0188a7487..304cc24e2 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "1.0.0", "private": true, "devDependencies": { - "vuepress": "^1.0.4", - "gh-pages": "^2.1.1" + "vuepress": "^1.5.4", + "gh-pages": "^3.1.0" }, "scripts": { "docs:dev": "vuepress dev docs", From 9074cd6149ac4a07ce1ca396f5aaf0ac1b657f2b Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Fri, 28 Aug 2020 14:36:28 +0200 Subject: [PATCH 13/21] Adding unit docs Signed-off-by: Paulo Lopes --- docs/quick-guide/README.md | 5 ++-- docs/quick-guide/unit/README.md | 26 +++++++++++++++++++++ docs/quick-guide/unit/package.json | 13 +++++++++++ docs/quick-guide/unit/test/some_verticle.js | 13 +++++++++++ 4 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 docs/quick-guide/unit/README.md create mode 100644 docs/quick-guide/unit/package.json create mode 100644 docs/quick-guide/unit/test/some_verticle.js diff --git a/docs/quick-guide/README.md b/docs/quick-guide/README.md index a2fde9ed3..90c7f8b73 100644 --- a/docs/quick-guide/README.md +++ b/docs/quick-guide/README.md @@ -51,14 +51,13 @@ Cluster manager implementation that uses Infinispan. Cluster manager implementation that uses Apache Ignite. ## Testing -### Vert.x JUnit 5 - -Asynchronous testing with Vert.x and JUnit 5. ### Vert.x Unit A unit testing tool-kit designed to work with asynchronous code. Includes JUnit 4 support. +[Unit Examples](./unit) + ## Standards ### JSON Schema diff --git a/docs/quick-guide/unit/README.md b/docs/quick-guide/unit/README.md new file mode 100644 index 000000000..da7d0ef30 --- /dev/null +++ b/docs/quick-guide/unit/README.md @@ -0,0 +1,26 @@ +--- +prev: ../ +next: false +sidebarDepth: 2 +--- +# Vert.x Unit examples + +Here you'll find some examples of how to use Vert.x unit to test your asynchronous applications. + +## Project setup + +To use es4x your own project use the following project as a template: + +<<< @/docs/quick-guide/unit/package.json + +### Vertx Unit Test + +The example demonstrates how the Vert.x Unit API can be used to run tests using the Vert.x Unit test runner. + +<<< @/docs/quick-guide/unit/test/some_verticle.js + +Examples can be run directly from the command line: + +```shell script +es4x test test/some_verticle.js +``` diff --git a/docs/quick-guide/unit/package.json b/docs/quick-guide/unit/package.json new file mode 100644 index 000000000..fb1604b86 --- /dev/null +++ b/docs/quick-guide/unit/package.json @@ -0,0 +1,13 @@ +{ + "name": "core-examples", + "version": "1.0.0", + "private": true, + "license": "ISC", + "dependencies": { + "create-es4x-app": "latest", + "@vertx/core": "latest" + }, + "scripts": { + "postinstall": "es4x install" + } +} diff --git a/docs/quick-guide/unit/test/some_verticle.js b/docs/quick-guide/unit/test/some_verticle.js new file mode 100644 index 000000000..8fefff135 --- /dev/null +++ b/docs/quick-guide/unit/test/some_verticle.js @@ -0,0 +1,13 @@ +/// +// @ts-check + +import { TestSuite } from '@vertx/unit'; + +const suite = TestSuite.create("the_test_suite"); + +suite.test("my_test_case", function (context) { + var s = "value"; + context.assertEquals("value", s); +}); + +suite.run(); From d16c1febeee20ed637c5d9b0dee7c8cabf35d6fd Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Fri, 28 Aug 2020 15:01:16 +0200 Subject: [PATCH 14/21] Updating content Signed-off-by: Paulo Lopes --- docs/.vuepress/config.js | 12 +++++++--- docs/quick-guide/README.md | 2 ++ docs/quick-guide/redis/README.md | 23 +++++++++++++++++++ docs/quick-guide/redis/package.json | 14 +++++++++++ .../redis/simple/redis_client_verticle.js | 18 +++++++++++++++ 5 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 docs/quick-guide/redis/README.md create mode 100644 docs/quick-guide/redis/package.json create mode 100644 docs/quick-guide/redis/simple/redis_client_verticle.js diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index b5fb78571..282aea7d2 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -108,7 +108,9 @@ module.exports = { collapsable: false, children: [ '', - 'core/' + 'core/', + 'redis/', + 'unit/', ] } ], @@ -193,7 +195,9 @@ module.exports = { collapsable: false, children: [ '', - 'core/' + 'core/', + 'redis/', + 'unit/', ] } ], @@ -278,7 +282,9 @@ module.exports = { collapsable: false, children: [ '', - 'core/' + 'core/', + 'redis/', + 'unit/', ] } ], diff --git a/docs/quick-guide/README.md b/docs/quick-guide/README.md index 90c7f8b73..05db79c0b 100644 --- a/docs/quick-guide/README.md +++ b/docs/quick-guide/README.md @@ -125,6 +125,8 @@ MongoDB client. Redis client. +[Redis Examples](./redis) + ### Cassandra Client Apache Cassandra client. diff --git a/docs/quick-guide/redis/README.md b/docs/quick-guide/redis/README.md new file mode 100644 index 000000000..25c0b09bd --- /dev/null +++ b/docs/quick-guide/redis/README.md @@ -0,0 +1,23 @@ +--- +prev: ../ +next: false +sidebarDepth: 2 +--- +# Vert.x Redis Client examples + +Here you will find examples demonstrating the usage of the Vert.x Redis Client. + +## Project setup + +To use es4x your own project use the following project as a template: + +<<< @/docs/quick-guide/redis/package.json + +## Simple Client + +To run this example, you need a running Redis instance. Once running, you can configure the +verticles with the redis host: + +<<< @/docs/quick-guide/redis/simple/redis_client_verticle.js + +By default it uses `127.0.0.1` as host. The post is set to `6379`. diff --git a/docs/quick-guide/redis/package.json b/docs/quick-guide/redis/package.json new file mode 100644 index 000000000..fe4a40906 --- /dev/null +++ b/docs/quick-guide/redis/package.json @@ -0,0 +1,14 @@ +{ + "name": "core-examples", + "version": "1.0.0", + "private": true, + "license": "ISC", + "dependencies": { + "create-es4x-app": "latest", + "@vertx/core": "latest", + "@vertx/redis-client": "latest" + }, + "scripts": { + "postinstall": "es4x install" + } +} diff --git a/docs/quick-guide/redis/simple/redis_client_verticle.js b/docs/quick-guide/redis/simple/redis_client_verticle.js new file mode 100644 index 000000000..5e3e95e4c --- /dev/null +++ b/docs/quick-guide/redis/simple/redis_client_verticle.js @@ -0,0 +1,18 @@ +/// +// @ts-check + +import { Redis, Command, Request } from "@vertx/redis-client"; + +// Create the redis client +var client = Redis.createClient(vertx, "redis://127.0.0.1:6379"); + +client.send(Request.cmd(Command.SET).arg("key").arg("value"), onSet => { + if (onSet.succeeded()) { + console.log("key stored"); + client.send(Request.cmd(Command.GET).arg("key"), onGet => { + console.log("Retrieved value: " + onGet.result().toString()); + }); + } else { + console.trace(onSet.cause()); + } +}); From e9e6a1b2601b2b55ab31a492704db046966a187b Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 31 Aug 2020 16:15:33 +0200 Subject: [PATCH 15/21] link to upstream docs --- docs/quick-guide/redis/README.md | 3 ++- docs/quick-guide/unit/README.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/quick-guide/redis/README.md b/docs/quick-guide/redis/README.md index 25c0b09bd..aff3d7686 100644 --- a/docs/quick-guide/redis/README.md +++ b/docs/quick-guide/redis/README.md @@ -5,7 +5,8 @@ sidebarDepth: 2 --- # Vert.x Redis Client examples -Here you will find examples demonstrating the usage of the Vert.x Redis Client. +Here you will find examples demonstrating the usage of the Vert.x Redis Client. For detailed documentation, consult +the Vert.x [core manual](https://vertx.io/docs). ## Project setup diff --git a/docs/quick-guide/unit/README.md b/docs/quick-guide/unit/README.md index da7d0ef30..cd157d917 100644 --- a/docs/quick-guide/unit/README.md +++ b/docs/quick-guide/unit/README.md @@ -5,7 +5,8 @@ sidebarDepth: 2 --- # Vert.x Unit examples -Here you'll find some examples of how to use Vert.x unit to test your asynchronous applications. +Here you'll find some examples of how to use Vert.x unit to test your asynchronous applications. For detailed +documentation, consult the Vert.x [core manual](https://vertx.io/docs). ## Project setup From 60349140f5cc1e18e35c7081bfe6da854083569f Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Tue, 1 Sep 2020 12:51:39 +0200 Subject: [PATCH 16/21] Added a GraalVM checker --- .../reactiverse/es4x/cli/GraalVMVersion.java | 82 +++++++++++++++++++ .../es4x/{commands => cli}/Helper.java | 20 ++--- .../main/java/io/reactiverse/es4x/cli/PM.java | 46 ++++++++++- .../es4x/commands/DockerfileCommand.java | 2 +- .../io/reactiverse/es4x/commands/Init.java | 2 +- .../io/reactiverse/es4x/commands/Install.java | 2 +- .../es4x/commands/JLinkCommand.java | 2 +- .../reactiverse/es4x/commands/Resolver.java | 8 +- .../es4x/commands/SecurityPolicy.java | 4 +- .../reactiverse/es4x/commands/Versions.java | 11 +-- .../es4x/commands/VscodeCommand.java | 2 +- 11 files changed, 151 insertions(+), 30 deletions(-) create mode 100644 pm/src/main/java/io/reactiverse/es4x/cli/GraalVMVersion.java rename pm/src/main/java/io/reactiverse/es4x/{commands => cli}/Helper.java (74%) diff --git a/pm/src/main/java/io/reactiverse/es4x/cli/GraalVMVersion.java b/pm/src/main/java/io/reactiverse/es4x/cli/GraalVMVersion.java new file mode 100644 index 000000000..c6b11459a --- /dev/null +++ b/pm/src/main/java/io/reactiverse/es4x/cli/GraalVMVersion.java @@ -0,0 +1,82 @@ +package io.reactiverse.es4x.cli; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class GraalVMVersion { + + /* graalvm version format: year.release.bugfix */ + private final boolean graalvm; + private final int year; + private final int release; + private final int bugfix; + + public GraalVMVersion() { + + final String VM_NAME = System.getProperty("java.vm.name", "").toLowerCase(); + final String VENDOR_VERSION = System.getProperty("java.vendor.version", "").toLowerCase(); + + graalvm = + // from graal 20.0.0 the vm name doesn't contain graalvm in the name + // but it is now part of the vendor version + VENDOR_VERSION.contains("graalvm") || VM_NAME.contains("graalvm"); + + Pattern p; + Matcher m; + + if (graalvm) { + p = Pattern.compile("graalvm .+? (\\d+)\\.(\\d+)\\.(\\d+)"); + m = p.matcher(VENDOR_VERSION); + if (m.matches()) { + year = Integer.parseInt(m.group(1)); + release = Integer.parseInt(m.group(2)); + bugfix = Integer.parseInt(m.group(3)); + } else { + year = 0; + release = 0; + bugfix = 0; + } + } else { + year = 0; + release = 0; + bugfix = 0; + } + } + + public boolean isGraalVM() { + return graalvm; + } + + public boolean isGreaterOrEqual(String version) { + if (version == null) { + return false; + } + + final String[] parts = version.split("\\."); + + int year = parseInt(parts, 0); + int release = parseInt(parts, 1); + int bugfix = parseInt(parts, 2); + + if (this.year != year) return this.year - year >= 0; + if (this.release != release) return this.release - release >= 0; + return this.bugfix - bugfix >= 0; + } + + private static int parseInt(String[] parts, int idx) { + if (parts.length > idx) { + try { + return Integer.parseInt(parts[idx]); + } catch (NumberFormatException e) { + return -1; + } + } else { + return 0; + } + } + + @Override + public String toString() { + return String.format("%d.%d.%d", year, release, bugfix); + } +} diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/Helper.java b/pm/src/main/java/io/reactiverse/es4x/cli/Helper.java similarity index 74% rename from pm/src/main/java/io/reactiverse/es4x/commands/Helper.java rename to pm/src/main/java/io/reactiverse/es4x/cli/Helper.java index 467547fd8..9546ac086 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/Helper.java +++ b/pm/src/main/java/io/reactiverse/es4x/cli/Helper.java @@ -1,18 +1,18 @@ -package io.reactiverse.es4x.commands; +package io.reactiverse.es4x.cli; import java.io.File; import java.io.IOException; import java.nio.file.Files; -final class Helper { +public final class Helper { - private static String OS = System.getProperty("os.name").toLowerCase(); + private static final String OS = System.getProperty("os.name").toLowerCase(); - static boolean isWindows() { + public static boolean isWindows() { return OS.contains("win"); } - static boolean isUnix() { + public static boolean isUnix() { return OS.contains("nix") || OS.contains("nux") || @@ -21,7 +21,7 @@ static boolean isUnix() { OS.contains("sunos"); } - static String javaHomePrefix() { + public static String javaHomePrefix() { String prefix = System.getenv("JAVA_HOME"); if (prefix == null) { @@ -36,7 +36,7 @@ static String javaHomePrefix() { return prefix; } - static String exec(String... command) throws IOException, InterruptedException { + public static String exec(String... command) throws IOException, InterruptedException { ProcessBuilder jdeps = new ProcessBuilder(command); jdeps.redirectError(ProcessBuilder.Redirect.INHERIT); File tmp = File.createTempFile(command[0], "out"); @@ -58,16 +58,16 @@ static String exec(String... command) throws IOException, InterruptedException { } } - static void fatal(String message) { + public static void fatal(String message) { System.err.println("\u001B[1m\u001B[31m" + message + "\u001B[0m"); System.exit(1); } - static void err(String message) { + public static void err(String message) { System.err.println("\u001B[1m\u001B[31m" + message + "\u001B[0m"); } - static void warn(String message) { + public static void warn(String message) { System.err.println("\u001B[1m\u001B[33m" + message + "\u001B[0m"); } } diff --git a/pm/src/main/java/io/reactiverse/es4x/cli/PM.java b/pm/src/main/java/io/reactiverse/es4x/cli/PM.java index 09143c305..f7d609b57 100644 --- a/pm/src/main/java/io/reactiverse/es4x/cli/PM.java +++ b/pm/src/main/java/io/reactiverse/es4x/cli/PM.java @@ -1,9 +1,13 @@ package io.reactiverse.es4x.cli; -import io.reactiverse.es4x.commands.Init; -import io.reactiverse.es4x.commands.Install; -import io.reactiverse.es4x.commands.SecurityPolicy; -import io.reactiverse.es4x.commands.Versions; +import io.reactiverse.es4x.commands.*; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import static io.reactiverse.es4x.cli.Helper.fatal; +import static io.reactiverse.es4x.cli.Helper.warn; public class PM { @@ -16,9 +20,39 @@ private static void printUsage() { System.err.println(SecurityPolicy.NAME + "\t\t" + SecurityPolicy.SUMMARY); System.err.println(Versions.NAME + "\t\t" + Versions.SUMMARY); System.err.println(); + System.err.println("Running:"); + System.out.println("VM: " + System.getProperty("java.vm.name") + " - " + System.getProperty("java.version")); + System.out.println("VM Vendor: " + System.getProperty("java.vendor.version")); + System.err.println(); + verifyRuntime(false); System.err.println("Run 'es4x COMMAND --help' for more information on a command."); } + private static void verifyRuntime(boolean fatal) { + final GraalVMVersion vmVersion = new GraalVMVersion(); + if (vmVersion.isGraalVM()) { + // graalvm version should be aligned with the dependencies + // used on the application, otherwise it introduces some + // unwanted side effects + try (InputStream is = PM.class.getClassLoader().getResourceAsStream("META-INF/es4x-commands/VERSIONS.properties")) { + if (is != null) { + final Properties versions = new Properties(); + versions.load(is); + String wanted = versions.getProperty("graalvm"); + if (!vmVersion.isGreaterOrEqual(wanted)) { + if (fatal) { + fatal(String.format("Runtime GraalVM version mismatch { wanted: [%s], provided: [%s] }", wanted, vmVersion.toString())); + } else { + warn(String.format("Runtime GraalVM version mismatch { wanted: [%s], provided: [%s] }", wanted, vmVersion.toString())); + } + } + } + } catch (IOException e) { + fatal(e.getMessage()); + } + } + } + public static void main(String[] args) { if (args == null || args.length == 0) { // default action is help @@ -32,18 +66,22 @@ public static void main(String[] args) { switch (command) { case Init.NAME: + verifyRuntime(true); new Init(cmdArgs).run(); System.exit(0); return; case Install.NAME: + verifyRuntime(true); new Install(cmdArgs).run(); System.exit(0); return; case SecurityPolicy.NAME: + verifyRuntime(true); new SecurityPolicy(cmdArgs).run(); System.exit(0); return; case Versions.NAME: + verifyRuntime(true); new Versions(cmdArgs).run(); System.exit(0); return; diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/DockerfileCommand.java b/pm/src/main/java/io/reactiverse/es4x/commands/DockerfileCommand.java index 84f01dd46..bddd0c881 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/DockerfileCommand.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/DockerfileCommand.java @@ -23,7 +23,7 @@ import java.io.*; import java.nio.file.Files; -import static io.reactiverse.es4x.commands.Helper.fatal; +import static io.reactiverse.es4x.cli.Helper.fatal; @Name("dockerfile") @Summary("Creates a generic Dockerfile for building and deploying the current project.") diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/Init.java b/pm/src/main/java/io/reactiverse/es4x/commands/Init.java index ec8005d92..b5cb3c2ab 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/Init.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/Init.java @@ -8,7 +8,7 @@ import java.nio.file.Files; import java.util.Map; -import static io.reactiverse.es4x.commands.Helper.fatal; +import static io.reactiverse.es4x.cli.Helper.fatal; public class Init implements Runnable { diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/Install.java b/pm/src/main/java/io/reactiverse/es4x/commands/Install.java index ae7587026..e9a6fed91 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/Install.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/Install.java @@ -11,7 +11,7 @@ import java.util.*; import java.util.jar.*; -import static io.reactiverse.es4x.commands.Helper.*; +import static io.reactiverse.es4x.cli.Helper.*; public class Install implements Runnable { diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/JLinkCommand.java b/pm/src/main/java/io/reactiverse/es4x/commands/JLinkCommand.java index 2d829dc75..e53a4594d 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/JLinkCommand.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/JLinkCommand.java @@ -21,7 +21,7 @@ import java.io.IOException; -import static io.reactiverse.es4x.commands.Helper.*; +import static io.reactiverse.es4x.cli.Helper.*; @Name("jlink") @Summary("Creates a slim runtime (requires java >= 11).") diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/Resolver.java b/pm/src/main/java/io/reactiverse/es4x/commands/Resolver.java index 4fc7c4483..b5d9b762a 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/Resolver.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/Resolver.java @@ -47,7 +47,7 @@ import java.util.List; import java.util.stream.Collectors; -import static io.reactiverse.es4x.commands.Helper.warn; +import static io.reactiverse.es4x.cli.Helper.warn; final class Resolver { @@ -57,7 +57,7 @@ final class Resolver { private static final String DEFAULT_MAVEN_REMOTE = "https://repo1.maven.org/maven2/"; private final RepositorySystem system; - private LocalRepository localRepo; + private final LocalRepository localRepo; private final List remotes = new ArrayList<>(); Resolver() throws MalformedURLException { @@ -217,8 +217,8 @@ private static Authentication extractAuth(URL url) { } } catch (final UnsupportedEncodingException e) { throw new IllegalArgumentException( - "maven registry url is not encoded with " + defaultCharset + - " charset and percent-encoded username/password: " + url, + "maven registry url is not encoded with " + defaultCharset + + " charset and percent-encoded username/password: " + url, e); } return authBuilder.build(); diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java b/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java index 16c2a55bc..54d2de648 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java @@ -7,8 +7,8 @@ import java.io.InputStream; import java.nio.file.Files; -import static io.reactiverse.es4x.commands.Helper.fatal; -import static io.reactiverse.es4x.commands.Helper.warn; +import static io.reactiverse.es4x.cli.Helper.fatal; +import static io.reactiverse.es4x.cli.Helper.warn; public class SecurityPolicy implements Runnable { diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/Versions.java b/pm/src/main/java/io/reactiverse/es4x/commands/Versions.java index 18feb1bdf..eba11cdd0 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/Versions.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/Versions.java @@ -7,7 +7,7 @@ import java.util.Properties; import java.util.Scanner; -import static io.reactiverse.es4x.commands.Helper.fatal; +import static io.reactiverse.es4x.cli.Helper.fatal; public class Versions implements Runnable { @@ -46,14 +46,15 @@ private void printUsage() { @Override public void run() { - System.out.println("VM: " + System.getProperty("java.vm.name") + " - " + System.getProperty("java.version")); + System.out.println("VM: " + System.getProperty("java.vm.name") + " - " + System.getProperty("java.version")); + System.out.println("VM Vendor: " + System.getProperty("java.vendor.version")); // load the versions from vertx if possible try (InputStream is = Versions.class.getClassLoader().getResourceAsStream("META-INF/vertx/vertx-version.txt")) { if (is != null) { Scanner scanner = (new Scanner(is, "UTF-8")).useDelimiter("\\A"); if (scanner.hasNext()) { - System.out.println("Vert.x: " + scanner.next().trim()); + System.out.println("Vert.x: " + scanner.next().trim()); } } } catch (IOException e) { @@ -67,8 +68,8 @@ public void run() { } else { final Properties versions = new Properties(); versions.load(is); - System.out.println("ES4X: " + versions.getProperty("es4x")); - System.out.println("graaljs: " + versions.getProperty("graalvm")); + System.out.println("ES4X: " + versions.getProperty("es4x")); + System.out.println("graaljs: " + versions.getProperty("graalvm")); } } catch (IOException e) { fatal(e.getMessage()); diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/VscodeCommand.java b/pm/src/main/java/io/reactiverse/es4x/commands/VscodeCommand.java index 68ed566ed..f629d29fc 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/VscodeCommand.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/VscodeCommand.java @@ -23,7 +23,7 @@ import java.nio.file.Files; import java.util.*; -import static io.reactiverse.es4x.commands.Helper.*; +import static io.reactiverse.es4x.cli.Helper.*; @Name("vscode") @Summary("Launcher for vscode project.") From a4d79dc519c51cf999366d50d1df0da2c7260d7a Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Wed, 2 Sep 2020 11:28:05 +0200 Subject: [PATCH 17/21] Update the PM package to be more NPM friendly --- pm/README.md | 75 ++++++++++++++++++- pm/src/assembly/main.js | 36 --------- pm/src/assembly/package.json | 5 +- pm/src/assembly/pm.xml | 7 -- .../java/io/reactiverse/es4x/cli/Helper.java | 19 +++++ .../main/java/io/reactiverse/es4x/cli/PM.java | 28 +++---- .../es4x/commands/{Init.java => Project.java} | 12 +-- .../{InitCommand.java => ProjectCommand.java} | 10 +-- ...actory.java => ProjectCommandFactory.java} | 6 +- .../META-INF/es4x-commands/Dockerfile | 2 - .../io.vertx.core.spi.launcher.CommandFactory | 2 +- ...mmandTest.java => ProjectCommandTest.java} | 4 +- 12 files changed, 125 insertions(+), 81 deletions(-) delete mode 100644 pm/src/assembly/main.js rename pm/src/main/java/io/reactiverse/es4x/commands/{Init.java => Project.java} (93%) rename pm/src/main/java/io/reactiverse/es4x/commands/{InitCommand.java => ProjectCommand.java} (87%) rename pm/src/main/java/io/reactiverse/es4x/commands/{InitCommandFactory.java => ProjectCommandFactory.java} (78%) rename pm/src/test/java/io/reactiverse/es4x/commands/{InitCommandTest.java => ProjectCommandTest.java} (87%) diff --git a/pm/README.md b/pm/README.md index ebf0cbb57..c3042b5d8 100644 --- a/pm/README.md +++ b/pm/README.md @@ -1,3 +1,74 @@ -# ES4X Project Manager Utilities +# ES4X Project Utilities -This is a minimal runtime for ES4X. +Small set of utilities to get started with [es4x](https://reactiverse.io/es4x). + +## Bootstrap a project + +```bash +npm init @es4x project +``` + +This will create a basic set of files: + +* `package.json` +* `index.js` +* `index.test.js` + +## Other commands + +This project is more than just a *project template generator*. You can also perform +more taks, just consult the tool help: + +```bash +es4x --help + +Usage: es4x [COMMAND] [OPTIONS] [arg...] + +Commands: +project Initializes the 'package.json' to work with ES4X. +install Installs required jars from maven to 'node_modules'. +security-policy Initializes a secure by default VM 'security.policy' to work with ES4X. +versions Displays the versions. + +Current VM: +Name: Java HotSpot(TM) 64-Bit Server VM - 11.0.7 +Vendor: GraalVM CE 20.1.0 + +Run 'es4x COMMAND --help' for more information on a command. +``` + +## Sub commands + +### Project + +Same as running `npm init @es4x project` + +```bash +es4x project +``` + +### Install + +Install `jvm` dependencies extracted from the npm dependencies. This command will process the +`package.json` and download the required `jvm` artifacts from Maven Central. + +```bash +es4x install +``` + +### Security Policy + +Installs a security policy for the project. This can be used to constraint the runtime to be +sandboxed in all the possibilities the `jvm` allows. + +```bash +es4x security-policy +``` + +### Versions + +Prints all the versions (runtime + dependencies). + +```bash +es4x versions +``` diff --git a/pm/src/assembly/main.js b/pm/src/assembly/main.js deleted file mode 100644 index 84ece09c2..000000000 --- a/pm/src/assembly/main.js +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env node - -const { existsSync } = require('fs'); -const path = require('path'); -const { spawn } = require('child_process'); - -let java = 'java'; - -if (process.env['JAVA_HOME']) { - // Attempt to use JAVA_HOME - let xjava = path.join(process.env['JAVA_HOME'], 'bin', 'java'); - if (existsSync(xjava)) { - java = xjava; - } -} - -let argv = [ - '-cp', - path.join(__dirname, 'es4x-pm-${project.version}.jar'), - 'io.reactiverse.es4x.cli.PM', - 'init' - ]; - -const subProcess = spawn(java, argv.concat(process.argv.slice(2)), { cwd: process.cwd(), env: process.env, stdio: 'inherit' }); - -subProcess.on('error', (err) => { - console.error(`es4x-pm ERROR: ${err}`); - process.exit(1); -}); - -subProcess.on('error', (err) => { - console.error(`es4x-pm ERROR: ${err}`); - process.exit(1); -}); - -subProcess.on('close', process.exit); diff --git a/pm/src/assembly/package.json b/pm/src/assembly/package.json index 99dd336b2..a678480cc 100644 --- a/pm/src/assembly/package.json +++ b/pm/src/assembly/package.json @@ -1,13 +1,12 @@ { - "name": "create-es4x-app", + "name": "@es4x/create", "version": "${project.version}", - "description": "ES4X Project Manager Utilities", + "description": "ES4X Project Utilities", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Paulo Lopes ", "license": "MIT", - "main": "main.js", "bin": { "es4x": "./bin/es4x-cli.js" } diff --git a/pm/src/assembly/pm.xml b/pm/src/assembly/pm.xml index 4c749eef1..648241731 100644 --- a/pm/src/assembly/pm.xml +++ b/pm/src/assembly/pm.xml @@ -45,13 +45,6 @@ unix 0755 - - src/assembly/main.js - - true - unix - 0644 - src/assembly/package.json diff --git a/pm/src/main/java/io/reactiverse/es4x/cli/Helper.java b/pm/src/main/java/io/reactiverse/es4x/cli/Helper.java index 9546ac086..97ba25eaa 100644 --- a/pm/src/main/java/io/reactiverse/es4x/cli/Helper.java +++ b/pm/src/main/java/io/reactiverse/es4x/cli/Helper.java @@ -63,6 +63,25 @@ public static void fatal(String message) { System.exit(1); } + public static String pad(String text, int padding) { + StringBuilder sb = new StringBuilder(); + + if (text.length() >= padding) { + sb.append(text); + sb.append(System.lineSeparator()); + for (int i = 0; i < padding; i++) { + sb.append(' '); + } + } else { + sb.append(text); + for (int i = text.length(); i < padding; i++) { + sb.append(' '); + } + } + + return sb.toString(); + } + public static void err(String message) { System.err.println("\u001B[1m\u001B[31m" + message + "\u001B[0m"); } diff --git a/pm/src/main/java/io/reactiverse/es4x/cli/PM.java b/pm/src/main/java/io/reactiverse/es4x/cli/PM.java index f7d609b57..0d8c04276 100644 --- a/pm/src/main/java/io/reactiverse/es4x/cli/PM.java +++ b/pm/src/main/java/io/reactiverse/es4x/cli/PM.java @@ -6,8 +6,7 @@ import java.io.InputStream; import java.util.Properties; -import static io.reactiverse.es4x.cli.Helper.fatal; -import static io.reactiverse.es4x.cli.Helper.warn; +import static io.reactiverse.es4x.cli.Helper.*; public class PM { @@ -15,16 +14,15 @@ private static void printUsage() { System.err.println("Usage: es4x [COMMAND] [OPTIONS] [arg...]"); System.err.println(); System.err.println("Commands:"); - System.err.println(Init.NAME + "\t\t" + Init.SUMMARY); - System.err.println(Install.NAME + "\t\t" + Install.SUMMARY); - System.err.println(SecurityPolicy.NAME + "\t\t" + SecurityPolicy.SUMMARY); - System.err.println(Versions.NAME + "\t\t" + Versions.SUMMARY); + System.err.println(pad(Project.NAME + "/app", 16) + Project.SUMMARY); + System.err.println(pad(Install.NAME, 16) + Install.SUMMARY); + System.err.println(pad(SecurityPolicy.NAME, 16) + SecurityPolicy.SUMMARY); + System.err.println(pad(Versions.NAME, 16) + Versions.SUMMARY); System.err.println(); - System.err.println("Running:"); - System.out.println("VM: " + System.getProperty("java.vm.name") + " - " + System.getProperty("java.version")); - System.out.println("VM Vendor: " + System.getProperty("java.vendor.version")); + System.err.println("Current VM:"); + System.out.println("Name: " + System.getProperty("java.vm.name") + " - " + System.getProperty("java.version")); + System.out.println("Vendor: " + System.getProperty("java.vendor.version", "-")); System.err.println(); - verifyRuntime(false); System.err.println("Run 'es4x COMMAND --help' for more information on a command."); } @@ -41,9 +39,9 @@ private static void verifyRuntime(boolean fatal) { String wanted = versions.getProperty("graalvm"); if (!vmVersion.isGreaterOrEqual(wanted)) { if (fatal) { - fatal(String.format("Runtime GraalVM version mismatch { wanted: [%s], provided: [%s] }", wanted, vmVersion.toString())); + fatal(String.format("Runtime GraalVM version mismatch { wanted: [%s], provided: [%s] }%sFor installation help see: https://www.graalvm.org/docs/getting-started-with-graalvm/", wanted, vmVersion.toString(), System.lineSeparator())); } else { - warn(String.format("Runtime GraalVM version mismatch { wanted: [%s], provided: [%s] }", wanted, vmVersion.toString())); + warn(String.format("Runtime GraalVM version mismatch { wanted: [%s], provided: [%s] }%sFor installation help see: https://www.graalvm.org/docs/getting-started-with-graalvm/", wanted, vmVersion.toString(), System.lineSeparator())); } } } @@ -65,9 +63,9 @@ public static void main(String[] args) { System.arraycopy(args, 1, cmdArgs, 0, cmdArgs.length); switch (command) { - case Init.NAME: + case Project.NAME: verifyRuntime(true); - new Init(cmdArgs).run(); + new Project(cmdArgs).run(); System.exit(0); return; case Install.NAME: @@ -87,10 +85,12 @@ public static void main(String[] args) { return; case "-h": case "--help": + verifyRuntime(false); printUsage(); System.exit(0); return; default: + verifyRuntime(false); printUsage(); System.exit(2); } diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/Init.java b/pm/src/main/java/io/reactiverse/es4x/commands/Project.java similarity index 93% rename from pm/src/main/java/io/reactiverse/es4x/commands/Init.java rename to pm/src/main/java/io/reactiverse/es4x/commands/Project.java index b5cb3c2ab..c2986a2c6 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/Init.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/Project.java @@ -10,18 +10,18 @@ import static io.reactiverse.es4x.cli.Helper.fatal; -public class Init implements Runnable { +public class Project implements Runnable { - public static final String NAME = "init"; + public static final String NAME = "project"; public static final String SUMMARY = "Initializes the 'package.json' to work with ES4X."; private File cwd; private boolean typeScript; - public Init() { + public Project() { } - public Init(String[] args) { + public Project(String[] args) { CmdLineParser parser = new CmdLineParser(); CmdLineParser.Option helpOption = parser.addBooleanOption('h', "help"); CmdLineParser.Option tsOption = parser.addBooleanOption('t', "ts"); @@ -81,7 +81,7 @@ private void printUsage() { System.err.println(); } - public Init setCwd(File cwd) { + public Project setCwd(File cwd) { this.cwd = cwd; return this; } @@ -116,7 +116,7 @@ public void run() { for (String template : templates) { // Load the file from the class path - try (InputStream in = Init.class.getClassLoader().getResourceAsStream(template)) { + try (InputStream in = Project.class.getClassLoader().getResourceAsStream(template)) { if (in == null) { fatal("Cannot load: " + template); } else { diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/InitCommand.java b/pm/src/main/java/io/reactiverse/es4x/commands/ProjectCommand.java similarity index 87% rename from pm/src/main/java/io/reactiverse/es4x/commands/InitCommand.java rename to pm/src/main/java/io/reactiverse/es4x/commands/ProjectCommand.java index 4b13734b4..7a2683bfd 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/InitCommand.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/ProjectCommand.java @@ -22,11 +22,11 @@ import io.vertx.core.cli.annotations.Summary; import io.vertx.core.spi.launcher.DefaultCommand; -@Name(Init.NAME) -@Summary(Init.SUMMARY) -public class InitCommand extends DefaultCommand { +@Name(Project.NAME) +@Summary(Project.SUMMARY) +public class ProjectCommand extends DefaultCommand { - private final Init command = new Init(); + private final Project command = new Project(); @Option(longName = "ts", shortName = "t", flag = true) @Description("Init a TypeScript project.") @@ -36,7 +36,7 @@ public void setForce(boolean force) { @Override public void run() throws CLIException { - new Init() + new Project() .setCwd(getCwd()) .run(); } diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/InitCommandFactory.java b/pm/src/main/java/io/reactiverse/es4x/commands/ProjectCommandFactory.java similarity index 78% rename from pm/src/main/java/io/reactiverse/es4x/commands/InitCommandFactory.java rename to pm/src/main/java/io/reactiverse/es4x/commands/ProjectCommandFactory.java index 107d0c3e8..f3aaf01a3 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/InitCommandFactory.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/ProjectCommandFactory.java @@ -17,9 +17,9 @@ import io.vertx.core.spi.launcher.DefaultCommandFactory; -public class InitCommandFactory extends DefaultCommandFactory { +public class ProjectCommandFactory extends DefaultCommandFactory { - public InitCommandFactory() { - super(InitCommand.class, InitCommand::new); + public ProjectCommandFactory() { + super(ProjectCommand.class, ProjectCommand::new); } } diff --git a/pm/src/main/resources/META-INF/es4x-commands/Dockerfile b/pm/src/main/resources/META-INF/es4x-commands/Dockerfile index 54279ea20..dd0398975 100644 --- a/pm/src/main/resources/META-INF/es4x-commands/Dockerfile +++ b/pm/src/main/resources/META-INF/es4x-commands/Dockerfile @@ -7,8 +7,6 @@ WORKDIR /usr/src/app # A wildcard is used to ensure both package.json AND package-lock.json are copied # where available (npm@5+) COPY package*.json ./ -# If you are not building your code for production -# remove the final argument # npm is run with unsafe permissions because the default docker user is root RUN npm --unsafe-perm update diff --git a/pm/src/main/resources/META-INF/services/io.vertx.core.spi.launcher.CommandFactory b/pm/src/main/resources/META-INF/services/io.vertx.core.spi.launcher.CommandFactory index 1bd051b29..8b467fbbe 100644 --- a/pm/src/main/resources/META-INF/services/io.vertx.core.spi.launcher.CommandFactory +++ b/pm/src/main/resources/META-INF/services/io.vertx.core.spi.launcher.CommandFactory @@ -1,6 +1,6 @@ io.reactiverse.es4x.commands.DockerfileCommandFactory io.reactiverse.es4x.commands.InstallCommandFactory -io.reactiverse.es4x.commands.InitCommandFactory +io.reactiverse.es4x.commands.ProjectCommandFactory io.reactiverse.es4x.commands.VersionsCommandFactory io.reactiverse.es4x.commands.JLinkCommandFactory io.reactiverse.es4x.commands.VscodeCommandFactory diff --git a/pm/src/test/java/io/reactiverse/es4x/commands/InitCommandTest.java b/pm/src/test/java/io/reactiverse/es4x/commands/ProjectCommandTest.java similarity index 87% rename from pm/src/test/java/io/reactiverse/es4x/commands/InitCommandTest.java rename to pm/src/test/java/io/reactiverse/es4x/commands/ProjectCommandTest.java index a5c6d23e6..f882b7e44 100644 --- a/pm/src/test/java/io/reactiverse/es4x/commands/InitCommandTest.java +++ b/pm/src/test/java/io/reactiverse/es4x/commands/ProjectCommandTest.java @@ -8,9 +8,9 @@ import static org.junit.Assert.*; -public class InitCommandTest { +public class ProjectCommandTest { - private final InitCommand command = new InitCommand(); + private final ProjectCommand command = new ProjectCommand(); @Test public void shouldCreateAnEmptyProject() throws IOException { From 209a485cd84ec437442d8a9e3c8cad13c6253dfe Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 21 Sep 2020 16:40:17 +0200 Subject: [PATCH 18/21] Prepare new release Signed-off-by: Paulo Lopes --- .github/workflows/main.yml | 30 -- CONTRIBUTING.md | 2 +- codegen/pom.xml | 10 - .../es4x/codetrans/EcmaScript.java | 27 - .../es4x/codetrans/EcmaScriptCodeBuilder.java | 119 ----- .../es4x/codetrans/EcmaScriptWriter.java | 461 ------------------ .../docgen/generator/ES4XDocGenerator.java | 121 ----- .../services/io.vertx.docgen.DocGenerator | 1 - docs/.vuepress/config.js | 63 +-- docs/README.md | 22 +- docs/advanced/README.md | 27 +- docs/advanced/commonjs.md | 43 ++ docs/advanced/esm.md | 55 +++ docs/advanced/{async-errors.md => globals.md} | 132 ++++- docs/advanced/vertx.md | 117 +++++ docs/api/README.md | 146 ++++-- docs/get-started/README.md | 24 +- docs/get-started/hello-world.md | 38 +- docs/get-started/install.md | 29 +- docs/get-started/package.md | 6 +- docs/get-started/run.md | 6 +- docs/get-started/shell.md | 4 + docs/get-started/test.md | 8 +- docs/quick-guide/README.md | 222 --------- docs/quick-guide/core/README.md | 423 ---------------- .../core/eventbus/pointtopoint/receiver.js | 13 - .../core/eventbus/pointtopoint/sender.js | 18 - .../core/eventbus/pubsub/receiver.js | 18 - .../core/eventbus/pubsub/sender.js | 10 - .../core/eventbus/ssl/keystore.jks | Bin 2252 -> 0 bytes .../quick-guide/core/eventbus/ssl/receiver.js | 13 - docs/quick-guide/core/eventbus/ssl/sender.js | 18 - .../core/future/compose_example.js | 30 -- docs/quick-guide/core/ha/server.js | 8 - docs/quick-guide/core/http/https/client.js | 20 - .../core/http/https/server-keystore.jks | Bin 2252 -> 0 bytes docs/quick-guide/core/http/https/server.js | 19 - docs/quick-guide/core/http/proxy/client.js | 15 - docs/quick-guide/core/http/proxy/proxy.js | 41 -- docs/quick-guide/core/http/proxy/server.js | 25 - .../core/http/proxyconnect/client.js | 31 -- .../core/http/proxyconnect/proxy.js | 52 -- .../quick-guide/core/http/sendfile/index.html | 14 - .../quick-guide/core/http/sendfile/page1.html | 8 - .../quick-guide/core/http/sendfile/page2.html | 8 - .../core/http/sendfile/send_file.js | 22 - docs/quick-guide/core/http/sharing/client.js | 13 - .../core/http/sharing/http_server_verticle.js | 10 - docs/quick-guide/core/http/sharing/server.js | 9 - docs/quick-guide/core/http/simple/client.js | 11 - docs/quick-guide/core/http/simple/server.js | 10 - .../core/http/simpleform/index.html | 18 - .../http/simpleform/simple_form_server.js | 21 - .../core/http/simpleformupload/index.html | 15 - .../simple_form_upload_server.js | 34 -- docs/quick-guide/core/http/upload/client.js | 29 -- docs/quick-guide/core/http/upload/server.js | 25 - .../core/http/websockets/client.js | 13 - .../core/http/websockets/server.js | 12 - docs/quick-guide/core/http/websockets/ws.html | 37 -- .../core/http2/customframes/client.js | 32 -- .../core/http2/customframes/server-cert.pem | 22 - .../core/http2/customframes/server-key.pem | 28 -- .../core/http2/customframes/server.js | 25 - docs/quick-guide/core/http2/h2c/client.js | 20 - docs/quick-guide/core/http2/h2c/server.js | 10 - docs/quick-guide/core/http2/push/client.js | 33 -- docs/quick-guide/core/http2/push/index.html | 12 - docs/quick-guide/core/http2/push/script.js | 1 - .../core/http2/push/server-cert.pem | 22 - .../core/http2/push/server-key.pem | 28 -- docs/quick-guide/core/http2/push/server.js | 38 -- docs/quick-guide/core/http2/simple/client.js | 22 - .../core/http2/simple/server-cert.pem | 22 - .../core/http2/simple/server-key.pem | 28 -- docs/quick-guide/core/http2/simple/server.js | 19 - docs/quick-guide/core/net/echo/client.js | 23 - docs/quick-guide/core/net/echo/server.js | 15 - docs/quick-guide/core/net/echossl/client.js | 27 - .../core/net/echossl/server-keystore.jks | Bin 2252 -> 0 bytes docs/quick-guide/core/net/echossl/server.js | 21 - docs/quick-guide/core/package.json | 13 - .../verticle/asyncstart/deploy_example.js | 26 - .../core/verticle/deploy/deploy_example.js | 63 --- .../core/verticle/worker/main_verticle.js | 15 - .../core/verticle/worker/worker_verticle.js | 11 - docs/quick-guide/redis/README.md | 24 - docs/quick-guide/redis/package.json | 14 - .../redis/simple/redis_client_verticle.js | 18 - docs/quick-guide/unit/README.md | 27 - docs/quick-guide/unit/package.json | 13 - docs/quick-guide/unit/test/some_verticle.js | 13 - es4x/src/test/resources/future/future2.js | 2 +- generator/build.sh | 7 +- generator/pom.xml | 35 +- .../es4x-commands/init/js/package.json | 2 +- .../es4x-commands/init/ts/package.json | 2 +- pom.xml | 2 +- scripts/adoc2md.sh | 20 - 99 files changed, 554 insertions(+), 2977 deletions(-) delete mode 100644 .github/workflows/main.yml delete mode 100644 codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScript.java delete mode 100644 codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptCodeBuilder.java delete mode 100644 codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptWriter.java delete mode 100644 codegen/src/main/java/io/reactiverse/es4x/docgen/generator/ES4XDocGenerator.java delete mode 100644 codegen/src/main/resources/META-INF/services/io.vertx.docgen.DocGenerator create mode 100644 docs/advanced/commonjs.md create mode 100644 docs/advanced/esm.md rename docs/advanced/{async-errors.md => globals.md} (53%) create mode 100644 docs/advanced/vertx.md delete mode 100644 docs/quick-guide/README.md delete mode 100644 docs/quick-guide/core/README.md delete mode 100644 docs/quick-guide/core/eventbus/pointtopoint/receiver.js delete mode 100644 docs/quick-guide/core/eventbus/pointtopoint/sender.js delete mode 100644 docs/quick-guide/core/eventbus/pubsub/receiver.js delete mode 100644 docs/quick-guide/core/eventbus/pubsub/sender.js delete mode 100644 docs/quick-guide/core/eventbus/ssl/keystore.jks delete mode 100644 docs/quick-guide/core/eventbus/ssl/receiver.js delete mode 100644 docs/quick-guide/core/eventbus/ssl/sender.js delete mode 100644 docs/quick-guide/core/future/compose_example.js delete mode 100644 docs/quick-guide/core/ha/server.js delete mode 100644 docs/quick-guide/core/http/https/client.js delete mode 100644 docs/quick-guide/core/http/https/server-keystore.jks delete mode 100644 docs/quick-guide/core/http/https/server.js delete mode 100644 docs/quick-guide/core/http/proxy/client.js delete mode 100644 docs/quick-guide/core/http/proxy/proxy.js delete mode 100644 docs/quick-guide/core/http/proxy/server.js delete mode 100644 docs/quick-guide/core/http/proxyconnect/client.js delete mode 100644 docs/quick-guide/core/http/proxyconnect/proxy.js delete mode 100644 docs/quick-guide/core/http/sendfile/index.html delete mode 100644 docs/quick-guide/core/http/sendfile/page1.html delete mode 100644 docs/quick-guide/core/http/sendfile/page2.html delete mode 100644 docs/quick-guide/core/http/sendfile/send_file.js delete mode 100644 docs/quick-guide/core/http/sharing/client.js delete mode 100644 docs/quick-guide/core/http/sharing/http_server_verticle.js delete mode 100644 docs/quick-guide/core/http/sharing/server.js delete mode 100644 docs/quick-guide/core/http/simple/client.js delete mode 100644 docs/quick-guide/core/http/simple/server.js delete mode 100644 docs/quick-guide/core/http/simpleform/index.html delete mode 100644 docs/quick-guide/core/http/simpleform/simple_form_server.js delete mode 100644 docs/quick-guide/core/http/simpleformupload/index.html delete mode 100644 docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js delete mode 100644 docs/quick-guide/core/http/upload/client.js delete mode 100644 docs/quick-guide/core/http/upload/server.js delete mode 100644 docs/quick-guide/core/http/websockets/client.js delete mode 100644 docs/quick-guide/core/http/websockets/server.js delete mode 100644 docs/quick-guide/core/http/websockets/ws.html delete mode 100644 docs/quick-guide/core/http2/customframes/client.js delete mode 100755 docs/quick-guide/core/http2/customframes/server-cert.pem delete mode 100755 docs/quick-guide/core/http2/customframes/server-key.pem delete mode 100644 docs/quick-guide/core/http2/customframes/server.js delete mode 100644 docs/quick-guide/core/http2/h2c/client.js delete mode 100644 docs/quick-guide/core/http2/h2c/server.js delete mode 100644 docs/quick-guide/core/http2/push/client.js delete mode 100755 docs/quick-guide/core/http2/push/index.html delete mode 100755 docs/quick-guide/core/http2/push/script.js delete mode 100755 docs/quick-guide/core/http2/push/server-cert.pem delete mode 100755 docs/quick-guide/core/http2/push/server-key.pem delete mode 100644 docs/quick-guide/core/http2/push/server.js delete mode 100644 docs/quick-guide/core/http2/simple/client.js delete mode 100755 docs/quick-guide/core/http2/simple/server-cert.pem delete mode 100755 docs/quick-guide/core/http2/simple/server-key.pem delete mode 100644 docs/quick-guide/core/http2/simple/server.js delete mode 100644 docs/quick-guide/core/net/echo/client.js delete mode 100644 docs/quick-guide/core/net/echo/server.js delete mode 100644 docs/quick-guide/core/net/echossl/client.js delete mode 100644 docs/quick-guide/core/net/echossl/server-keystore.jks delete mode 100644 docs/quick-guide/core/net/echossl/server.js delete mode 100644 docs/quick-guide/core/package.json delete mode 100644 docs/quick-guide/core/verticle/asyncstart/deploy_example.js delete mode 100644 docs/quick-guide/core/verticle/deploy/deploy_example.js delete mode 100644 docs/quick-guide/core/verticle/worker/main_verticle.js delete mode 100644 docs/quick-guide/core/verticle/worker/worker_verticle.js delete mode 100644 docs/quick-guide/redis/README.md delete mode 100644 docs/quick-guide/redis/package.json delete mode 100644 docs/quick-guide/redis/simple/redis_client_verticle.js delete mode 100644 docs/quick-guide/unit/README.md delete mode 100644 docs/quick-guide/unit/package.json delete mode 100644 docs/quick-guide/unit/test/some_verticle.js delete mode 100755 scripts/adoc2md.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 947e5fdaf..000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: ES4X Site - -on: - push: - branches: - - develop - -jobs: - build_site: - name: "Build site with vuepress" - runs-on: [ubuntu-latest] - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v1.1.0 - with: - version: 12.x - - name: "Install vuepress" - run: npm install - - name: "Build vuepress" - run: "$(npm bin)/vuepress build docs" - - name: Deploy - if: success() - uses: crazy-max/ghaction-github-pages@v1 - with: - target_branch: gh-pages - build_dir: docs/.vuepress/dist - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 220713393..2ab4517a0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -93,7 +93,7 @@ environment: If you have `GraalVM` and `Maven` installed you might skip the installation of `Node.js` and `NPM` although the `node` binary included with `GraalVM` is known to have some performance issues with some of `npm` packages such as `TypeScript Compiler`. - + ### Modules This projects is composed of several main modules/components: diff --git a/codegen/pom.xml b/codegen/pom.xml index 39946abf4..2567c66be 100644 --- a/codegen/pom.xml +++ b/codegen/pom.xml @@ -51,16 +51,6 @@ vertx-codegen ${stack.version}

}jHr%5s)VeJU0 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 U(vMV~;KBd|p00i_>zopr04HLMiU0rr diff --git a/docs/manual/@vertx/dropwizard-metrics/hawtio-jmx.png b/docs/manual/@vertx/dropwizard-metrics/hawtio-jmx.png deleted file mode 100644 index 85b5165f35a61a1d9799732e5f4e33a52153b7db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177838 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∈%NE+RzHMb& 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 W+fY~UPWiGO9~(>i3pM6Gxc>oa-Dt=F diff --git a/docs/manual/@vertx/dropwizard-metrics/index.md b/docs/manual/@vertx/dropwizard-metrics/index.md deleted file mode 100644 index 6deb33ae7..000000000 --- a/docs/manual/@vertx/dropwizard-metrics/index.md +++ /dev/null @@ -1,874 +0,0 @@ -This project implements the Vert.x Metrics Service Provider Interface -(SPI) reporting metrics to the [Dropwizard -metrics](https://github.com/dropwizard/metrics) library. - -# Features - -A fairly simple API to retrieve metrics via the `Measured` interface -which is implemented by various Vert.x components like `HttpServer`, -`NetServer`, and even `Vertx` itself. - -Configurable JMX reporting based on Dropwizard implementation, exposing -Vert.x as JMX MBeans. - -# Getting started - -To enable metrics, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-dropwizard-metrics - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-dropwizard-metrics:${maven.version}' -``` - -Then when you create vertx enable metrics using the -`DropwizardMetricsOptions`: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setEnabled(true))); -``` - -You can also enable JMX: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setJmxEnabled(true))); -``` - -To see details about JMX see the [JMX](#jmx) section at the bottom. - -# Command line activation - -When running Vert.x from the command line interface, metrics can be -activated via JVM system properties. System properties beginning with -*vertx.metrics.options.* are transmitted to the metrics options. - -The *vertx.metrics.options.enabled* is a standard Vert.x Core option for -enabling the metrics implementations, this options must be set to -`true`: - - java -jar your-fat-jar -Dvertx.metrics.options.enabled=true - -The `vertx.metrics.options.registryName` configures the [Dropwizard -Registry](#dropwizard-registry) to use: - - java -jar your-fat-jar -Dvertx.metrics.options.enabled=true -Dvertx.metrics.options.registryName=my-registry - -The `vertx.metrics.options.jmxEnabled` and -`vertx.metrics.options.jmxDomain` configures the [JMX](#jmx) -registration: - - java -jar your-fat-jar -Dvertx.metrics.options.enabled=true -Dvertx.metrics.options.jmxEnabled=true ... - -The `vertx.metrics.options.configPath` option allows to reconfigure the -metrics from a property file. - -# Metrics service - -While Vert.x core defines an SPI for reporting metrics (implemented for -instance in this project), it does not define an API for retrieving -metrics (because some metrics collectors just do reporting and nothing -more). - -The `MetricsService` provides an API in front of the Dropwizard Registry -to get metrics data snapshots. - -## Naming - -Each measured component listed below (except for Vertx) will have a base -name associated with it. Each metric can be retrieved by providing the -fully qualified name \ `baseName` + `.` + `metricName` from Vertx: - -``` js -let metrics = metricsService.getMetricsSnapshot(vertx); -metrics.vertx.eventbus.handlers; -``` - -or from the measured component itself using just the metric name: - -``` js -let eventBus = vertx.eventBus(); -let metrics = metricsService.getMetricsSnapshot(eventBus); -metrics.handlers; -``` - -See more examples below on how to retrieve/use metrics for a specific -component. - -Metrics names can also be listed: - -``` js -let metricsNames = metricsService.metricsNames(); -metricsNames.forEach(metricsName => { - console.log("Known metrics name " + metricsName); -}); -``` - -`baseName` defaults to `vertx`, but can be set to a custom value: - -``` js -let metricsOptions = new DropwizardMetricsOptions() - .setBaseName("foo"); -``` - -## Retrieving metrics - -Once enabled, the `MetricsService` allows to retrieve metrics snapshots -from any `Measured` object which provides a map of the metric name to -the data, represented by a `JsonObject`. So for example if we were to -print out all metrics for a particular Vert.x instance: - -``` js -import { MetricsService } from "@vertx/dropwizard" -let metricsService = MetricsService.create(vertx); -let metrics = metricsService.getMetricsSnapshot(vertx); -console.log(metrics); -``` - -> **Note** -> -> For details on the actual contents of the data (the actual metric) -> represented by the `JsonObject` consult the implementation -> documentation like -> [vertx-metrics](https://github.com/vert-x3/vertx-metrics) - -Often it is desired that you only want to capture specific metrics for a -particular component, like an http server without having to know the -details of the naming scheme of every metric (something which is left to -the implementers of the SPI). - -Since `HttpServer` implements `Measured`, you can easily grab all -metrics that are specific for that particular http server. - -``` js -import { MetricsService } from "@vertx/dropwizard" -let metricsService = MetricsService.create(vertx); -let server = vertx.createHttpServer(); -// set up server -let metrics = metricsService.getMetricsSnapshot(server); -``` - -Metrics can also be retrieved using a base name: - -``` js -import { MetricsService } from "@vertx/dropwizard" -let metricsService = MetricsService.create(vertx); -let metrics = metricsService.getMetricsSnapshot("vertx.eventbus.message"); -``` - -# Data - -Below is how each dropwizard metric is represented in JSON. Please refer -to the [Dropwizard metrics](https://github.com/dropwizard/metrics) -documentation for detailed information on each metric. - -## Gauge - -``` javascript -{ - "type" : "gauge", - "value" : value // any json value -} -``` - -## Counter - -``` js -{ - "type" : "counter", - "count" : 1 // number -} -``` - -## Histogram - -``` javascript -{ - "type" : "histogram", - "count" : 1 // long - "min" : 1 // long - "max" : 1 // long - "mean" : 1.0 // double - "stddev" : 1.0 // double - "median" : 1.0 // double - "75%" : 1.0 // double - "95%" : 1.0 // double - "98%" : 1.0 // double - "99%" : 1.0 // double - "99.9%" : 1.0 // double -} -``` - -## Meter - -``` js -{ - "type" : "meter", - "count" : 1 // long - "meanRate" : 1.0 // double - "oneMinuteRate" : 1.0 // double - "fiveMinuteRate" : 1.0 // double - "fifteenMinuteRate" : 1.0 // double - "rate" : "events/second" // string representing rate -} -``` - -## ThroughputMeter - -Extends a [Meter](#meter) to provide an instant throughput. - -``` js -{ - "type" : "meter", - "count" : 40 // long - "meanRate" : 2.0 // double - "oneSecondRate" : 3 // long - number of occurence for the last second - "oneMinuteRate" : 1.0 // double - "fiveMinuteRate" : 1.0 // double - "fifteenMinuteRate" : 1.0 // double - "rate" : "events/second" // string representing rate -} -``` - -## Timer - -A timer is basically a combination of Histogram + Meter. - -``` js -{ - "type": "timer", - - // histogram data - "count" : 1 // long - "min" : 1 // long - "max" : 1 // long - "mean" : 1.0 // double - "stddev" : 1.0 // double - "median" : 1.0 // double - "75%" : 1.0 // double - "95%" : 1.0 // double - "98%" : 1.0 // double - "99%" : 1.0 // double - "99.9%" : 1.0 // double - - // meter data - "meanRate" : 1.0 // double - "oneMinuteRate" : 1.0 // double - "fiveMinuteRate" : 1.0 // double - "fifteenMinuteRate" : 1.0 // double - "rate" : "events/second" // string representing rate -} -``` - -## Throughput Timer - -Extends a [Timer](#timer) to provide an instant throughput metric. - -``` js -{ - "type": "timer", - - // histogram data - "count" : 1 // long - "min" : 1 // long - "max" : 1 // long - "mean" : 1.0 // double - "stddev" : 1.0 // double - "median" : 1.0 // double - "75%" : 1.0 // double - "95%" : 1.0 // double - "98%" : 1.0 // double - "99%" : 1.0 // double - "99.9%" : 1.0 // double - - // meter data - "meanRate" : 1.0 // double - "oneSecondRate" : 3 // long - number of occurence for the last second - "oneMinuteRate" : 1.0 // double - "fiveMinuteRate" : 1.0 // double - "fifteenMinuteRate" : 1.0 // double - "rate" : "events/second" // string representing rate -} -``` - -# The metrics - -The following metrics are currently provided. - -## Vert.x metrics - -The following metrics are provided: - - - `vertx.event-loop-size` - A [Gauge](#gauge) of the number of threads - in the event loop pool - - - `vertx.worker-pool-size` - A [Gauge](#gauge) of the number of - threads in the worker pool - - - `vertx.cluster-host` - A [Gauge](#gauge) of the cluster-host setting - - - `vertx.cluster-port` - A [Gauge](#gauge) of the cluster-port setting - - - `vertx.verticles` - A [Counter](#counter) of the number of verticles - currently deployed - - - `vertx.verticles.` - A [Counter](#counter) of the - number of deployment of a particular verticle - -## Event bus metrics - -Base name: `vertx.eventbus` - - - `handlers` - A [Counter](#counter) of the number of event bus - handlers - - - `handlers.myaddress` - A [Timer](#timer) representing the rate of - which messages are being processed for the *myaddress* handler - - - `messages.bytes-read` - A [Meter](#meter) of the number of bytes - read when receiving remote messages - - - `messages.bytes-written` - A [Meter](#meter) of the number of bytes - written when sending remote messages - - - `messages.pending` - A [Counter](#counter) of the number of messages - received but not yet processed by an handler - - - `messages.pending-local` - A [Counter](#counter) of the number of - messages locally received but not yet processed by an handler - - - `messages.pending-remote` - A [Counter](#counter) of the number of - messages remotely received but not yet processed by an handler - - - `messages.discarded` - A [Counter](#counter) of the number of - messages discarded by an handler - - - `messages.discarded-local` - A [Counter](#counter) of the number of - messages locally discarded by an handler - - - `messages.discarded-remote` - A [Counter](#counter) of the number of - messages remotely discarded by an handler - - - `messages.received` - A [ThroughputMeter](#throughput_meter) - representing the rate of which messages are being received - - - `messages.received-local` - A [ThroughputMeter](#throughput_meter) - representing the rate of which local messages are being received - - - `messages.received-remote` - A [ThroughputMeter](#throughput_meter) - representing the rate of which remote messages are being received - - - `messages.delivered` - A [ThroughputMeter](#throughput_meter) - representing the rate of which messages are being delivered to an - handler - - - `messages.delivered-local` - A [ThroughputMeter](#throughput_meter) - representing the rate of which local messages are being delivered to - an handler - - - `messages.delivered-remote` - A [ThroughputMeter](#throughput_meter) - representing the rate of which remote messages are being delivered - to an handler - - - `messages.sent` - A [???](#throughput_metert) representing the rate - of which messages are being sent - - - `messages.sent-local` - A [ThroughputMeter](#throughput_meter) - representing the rate of which messages are being sent locally - - - `messages.sent-remote` - A [ThroughputMeter](#throughput_meter) - representing the rate of which messages are being sent remotely - - - `messages.published` - A [ThroughputMeter](#throughput_meter) - representing the rate of which messages are being published - - - `messages.published-local` - A [ThroughputMeter](#throughput_meter) - representing the rate of which messages are being published locally - - - `messages.published-remote` - A [ThroughputMeter](#throughput_meter) - representing the rate of which messages are being published remotely - - - `messages.reply-failures` - A [Meter](#meter) representing the rate - of reply failures - -The monitored event bus handlers is configurable via a match performed -on the handler registration address. Vert.x can have potentially a huge -amount of registered event bus, therefore the only good default for this -setting is to monitor zero handlers. - -The monitored handlers can be configured in the -`DropwizardMetricsOptions` via a specific address match or a regex -match: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setEnabled(true) - .setMonitoredEventBusHandlers([new Match() - .setValue("some-address"), new Match() - .setValue("business-.*") - .setType("REGEX")]))); -``` - -> **Warning** -> -> if you use regex match, a wrong regex can potentially match a lot of -> handlers. - -## Http server metrics - -Base name: `vertx.http.servers.:` - -Http server includes all the metrics of a [Net -Server](#net-server-metrics) plus the following: - - - `requests` - A [Throughput Timer](#throughput_timer) of a request - and the rate of it’s occurrence - - - `-requests` - A [Throughput Timer](#throughput_timer) - of a specific http method request and the rate of it’s occurrence - - - Examples: `get-requests`, `post-requests` - - - `-requests./` - A [Throughput - Timer](#throughput_timer) of a specific http method & URI request - and the rate of it’s occurrence - - - Examples: `get-requests./some/uri`, - `post-requests./some/uri?foo=bar` - - - `responses-1xx` - A [ThroughputMeter](#throughput_meter) of the 1xx - response code - - - `responses-2xx` - A [ThroughputMeter](#throughput_meter) of the 2xx - response code - - - `responses-3xx` - A [ThroughputMeter](#throughput_meter) of the 3xx - response code - - - `responses-4xx` - A [ThroughputMeter](#throughput_meter) of the 4xx - response code - - - `responses-5xx` - A [ThroughputMeter](#throughput_meter) of the 5xx - response code - - - `open-websockets` - A [Counter](#counter) of the number of open web - socket connections - - - `open-websockets.` - A [Counter](#counter) of the - number of open web socket connections for a particular remote host - -Http URI metrics must be explicitly configured in the options either by -exact match or regex match: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setEnabled(true) - .setMonitoredHttpServerUris([new Match() - .setValue("/"), new Match() - .setValue("/foo/.*") - .setType("REGEX")]))); -``` - -In case if the uri contains some path parameters like `/users/:userId` -it might not make sense to have a separate entry in the registry for -each user id (like `get-requests./users/1`, `get-requests./users/2` and -so on) but a summarized one. To achieve that you can set an alias to the -match instance in this case the alias will be used as a part of the -registry name instead of uri like `-requests.`. In -addition there will be separate counters for each response group for -each defined alias like `responses-.`. - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setEnabled(true) - .setMonitoredHttpServerUris([new Match() - .setValue("/users/.*") - .setAlias("users") - .setType("REGEX")]))); -``` - -**For `bytes-read` and `bytes-written` the bytes represent the body of -the request/response, so headers, etc are ignored.** - -## Http client metrics - -Base name: `vertx.http.clients` (by default) or -`vertx.http.clients.` where `` is a non empty string configured -by `setMetricsName`. - -Http client includes all the metrics of a [Http -Server](#http-server-metrics) plus the following: - - - `connections.max-pool-size` - A [Gauge](#gauge) of the max - connection pool size - - - `connections.pool-ratio` - A ratio [Gauge](#gauge) of the open - connections / max connection pool size - - - `responses-1xx` - A [Meter](#meter) of the 1xx response code - - - `responses-2xx` - A [Meter](#meter) of the 2xx response code - - - `responses-3xx` - A [Meter](#meter) of the 3xx response code - - - `responses-4xx` - A [Meter](#meter) of the 4xx response code - - - `responses-5xx` - A [Meter](#meter) of the 5xx response code - -The http client manages a pool of connection for each remote endpoint -with a queue of pending requests - -Endpoint metrics are available too: - - - `endpoint..queue-delay` - A [Timer](#timer) of the wait - time of a pending request in the queue - - - `endpoint..queue-size` - A [Counter](#counter) of the - actual queue size - - - `endpoint..open-netsockets` - A [Counter](#counter) of - the actual number of open sockets to the endpoint - - - `endpoint..usage` - A [Timer](#timer) of the delay - between the request starts and the response ends - - - `endpoint..in-use` - A [Counter](#counter) of the actual - number of request/response - - - `endpoint..ttfb` - A [Timer](#timer) of the wait time - between the request ended and its response begins - -where \ is the endpoint host name possibly unresolved and -\ the TCP port. - -The monitored endpoints are configurable via a match performed on the -server `$host:$port`. The default for this setting is to monitor no -endpoints. - -The monitored endpoints can be configured in the -`DropwizardMetricsOptions` via a specific hostname match or a regex -match: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setEnabled(true) - .setMonitoredHttpClientEndpoints([new Match() - .setValue("some-host:80"), new Match() - .setValue("another-host:.*") - .setType("REGEX")]))); -``` - -## Net server metrics - -Base name: `vertx.net.servers.:` - - - `open-netsockets` - A [Counter](#counter) of the number of open net - socket connections - - - `open-netsockets.` - A [Counter](#counter) of the - number of open net socket connections for a particular remote host - - - `connections` - A [Timer](#timer) of a connection and the rate of - it’s occurrence - - - `exceptions` - A [Counter](#counter) of the number of exceptions - - - `bytes-read` - A [Histogram](#histogram) of the number of bytes - read. - - - `bytes-written` - A [Histogram](#histogram) of the number of bytes - written. - -## Net client metrics - -Base name: `vertx.net.clients` (by default) or `vertx.net.clients.` -where `` is a non empty string configured by `setMetricsName`. - -Net client includes all the metrics of a [Net -Server](#net-server-metrics) - -## Datagram socket metrics - -Base name: `vertx.datagram` - - - `sockets` - A [Counter](#counter) of the number of datagram sockets - - - `exceptions` - A [Counter](#counter) of the number of exceptions - - - `bytes-written` - A [Histogram](#histogram) of the number of bytes - written. - - - `:.bytes-read` - A [Histogram](#histogram) of the number - of bytes read. - - - This metric will only be available if the datagram socket is - listening - -## Pool metrics - -Base name: `vertx.pools..` where `type` is the type of the -pool (e.g *worker*, *datasource*) and `name` is the name of the pool -(e.g `vert.x-worker-thread`). - -Pools of type *worker* are blocking worker pools. Vert.x exposes its -worker as *vert.x-worker-thread* and *vert.x-internal-blocking*. Named -worker executor created with `WorkerExecutor` are exposed. - -Datasource created with Vert.x JDBC clients are exposed as *datasource*. - - - `queue-delay` - A [Timer](#timer) measuring the duration of the - delay to obtain the resource, i.e the wait time in the queue - - - `queue-size` - A [Counter](#counter) of the actual number of waiters - in the queue - - - `usage` - A [Timer](#timer) measuring the duration of the usage of - the resource - - - `in-use` - A [???](#count) of the actual number of resources used - - - `pool-ratio` - A ratio [Gauge](#gauge) of the in use resource / pool - size - - - `max-pool-size` - A [Gauge](#gauge) of the max pool size - -The `pool-ratio` and the `max_pool_size` won’t be present when the -measured pool’s max pool size could not be determined. - -# JMX - -JMX is disabled by default. - -If you want JMX, then you need to enabled that: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setJmxEnabled(true))); -``` - -If running Vert.x from the command line you can enable metrics and JMX -by uncommented the JMX\_OPTS line in the `vertx` or `vertx.bat` script: - - JMX_OPTS="-Dcom.sun.management.jmxremote -Dvertx.metrics.options.jmxEnabled=true" - -You can configure the domain under which the MBeans will be created: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setJmxEnabled(true) - .setJmxDomain("mydomain"))); -``` - -In the command line, just append the following system properties to your -application (works for the `vertx` cli and fat jars): - - -Dvertx.metrics.options.jmxEnabled=true -Dvertx.metrics.options.jmxDomain=vertx - -# Enabling remote JMX - -If you want the metrics to be exposed remotely over JMX, then you need -to set, at minimum the following system property: - -`com.sun.management.jmxremote` - -If running from the command line this can be done by editing the `vertx` -or `vertx.bat` and uncommenting the `JMX_OPTS` line. - -Please see the [Oracle JMX -documentation](http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html) -for more information on configuring JMX - -**If running Vert.x on a public server please be careful about exposing -remote JMX access** - -# Accessing Dropwizard Registry - -When configuring the metrics service, an optional registry name can be -specified for registering the underlying [Dropwizard -Registry](https://dropwizard.github.io/metrics/3.1.0/getting-started/#the-registry) -in the the [Dropwizard Shared -Registry](https://dropwizard.github.io/metrics/3.1.0/apidocs/com/codahale/metrics/SharedMetricRegistries.html) -so you can retrieve this registry and use according to your needs. - -``` js -import { Vertx } from "@vertx/core" -let options = new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setEnabled(true) - .setRegistryName("my-registry")); -let vertx = Vertx.vertx(options); -// Get the registry -let registry = Java.type("com.codahale.metrics.SharedMetricRegistries").getOrCreate("my-registry"); -// Do whatever you need with the registry -} -``` - -# Using already existing Dropwizard Registry - -Optionally, it is possible to utilize already existing [Dropwizard -Registry](https://dropwizard.github.io/metrics/3.1.0/getting-started/#the-registry). -In order to do so pass `MetricRegistry` instance as parameter for -`setMetricRegistry` function in `VertxOptions` object. - -``` java -MetricRegistry metricRegistry = new MetricRegistry(); -VertxOptions options = new VertxOptions().setMetricsOptions( - new DropwizardMetricsOptions().setEnabled(true).setMetricRegistry(metricRegistry) -); -Vertx vertx = Vertx.vertx(options); -``` - -# Using Jolokia and Hawtio - -[Jolokia](https://jolokia.org/) is a JMX-HTTP bridge giving an -alternative to JSR-160 connectors. It is an agent based approach with -support for many platforms. In addition to basic JMX operations it -enhances JMX remoting with features like bulk requests. - -[Hawtio](http://hawt.io/) is a modular web console consuming the data -exposed by Jolokia. It lets you create dashboards and retrieve data from -JMX such as memory, cpu, or any vert.x metrics. - -This section explains how to configure your vert.x application to -retrieve the metrics in Hawtio. - -First, you need to configure your vert.x instance with the following -options: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new DropwizardMetricsOptions() - .setEnabled(true) - .setJmxEnabled(true) - .setJmxDomain("vertx-metrics"))); -``` - -You can change the domain to whatever you want. The same configuration -can be used for clustered Vert.x instances. This configuration instructs -vertx-dropwizard-metrics to expose the metrics in the local MBean -server, so Jolokia can retrieve them. - -Then you need, to *plug* jolokia to expose the data. There are several -ways to *plug* jolokia. See [for further -details](https://jolokia.org/reference/html/architecture.html). Here, we -explain how to use the Jolokia agent with the default configuration. -Refer to the [the jolokia -documentation](https://jolokia.org/reference/html/) to configure it. - -The agent can either be attached when you start the application or -attached on a running JVM (you would need special permission to access -the process). In the first case, launch you application using: - - java -javaagent:/.../agents/jolokia-jvm.jar=port=7777,host=localhost -jar ... - -The `-javaagent` specifies the path to the jolokia agent jar file. You -can configure the port and host from the command line. Here it registers -the REST endpoint on `http://localhost:7777`. - -You can also attach the agent on a running JVM with: - - java -jar jolokia-jvm.jar start PID - -Replace `PID` with the process id of the JVM. - -Once Jolokia is configured and launched, you can consume the data from -Hawtio. - -On Hawtio, enter the connection details as follows: - -![hawtio connect](./hawtio-connect.png) - -Then, you can go to the *JMX* tab and you should find a *directory* with -the name you entered as JMX domain in the Vert.x configuration: - -![hawtio jmx](./hawtio-jmx.png) - -From this, you can configure your dashboard and retrieve any metric -exposed by vert.x. - -# Using Jolokia and JMX4Perl to expose metrics to Nagios - -[Check\_jmx4perl](http://search.cpan.org/~roland/jmx4perl/scripts/check_jmx4perl) -is a Nagios plugin using jmx4perl for accessing JMX data remotely. It -lets you expose the Vert.x metrics to Nagios. - -First you need to start your application with the Jolokia JVM agent -attached to it. There are several ways to attach jolokia. See [for -further details](https://jolokia.org/reference/html/architecture.html). -Here, we explain how to use the Jolokia agent with the default -configuration. Refer to the [the jolokia -documentation](https://jolokia.org/reference/html/) to configure it. - -The agent can either be attached when you start the application or -attached on a running JVM (you would need special permission to access -the process). In the first case, launch you application using: - - java -javaagent:/.../agents/jolokia-jvm.jar=port=7777,host=localhost -jar ... - -The `-javaagent` specifies the path to the jolokia agent jar file. You -can configure the port and host from the command line. Here it registers -the REST endpoint on `http://localhost:7777`. - -You can also attach the agent on a running JVM with: - - java -jar jolokia-jvm.jar start PID - -Replace `PID` with the process id of the JVM. - -Once Jolokia is started, you can configure your Nagios check such as: - - check_jmx4perl --url http://10.0.2.2:8778/jolokia --name eventloops --mbean vertx:name=vertx.event-loop-size - --attribute Value --warning 4 - -Check [check\_jmx4perl -documentation](http://search.cpan.org/~roland/jmx4perl/scripts/check_jmx4perl) -to get more details about check configuration. - -# Metrics commands via Telnet or SSH in Vert.x Shell service - -To find out the available metrics commands you can use the *help* -builtin command: - - - Available commands - - 1. metrics-ls: List the known metrics for the current Vert.x - instance - - 2. metrics-info: Show metrics info for the current Vert.x instance - in JSON format - - 3. metrics-histogram: Show histogram metrics table for the current - Vert.x instance in real time diff --git a/docs/manual/@vertx/health-check/dataobjects.md b/docs/manual/@vertx/health-check/dataobjects.md deleted file mode 100644 index 90235352f..000000000 --- a/docs/manual/@vertx/health-check/dataobjects.md +++ /dev/null @@ -1,12 +0,0 @@ -# Status - -Represents the outcome of a health check procedure. Each procedure -produces a link indicating either OK or KO. Optionally, it can also -provide additional data. - -| | | | -| ------------------- | ------------- | ----------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@data` | `Json object` | Sets the metadata. | -| `@ok` | `Boolean` | Sets whether or not the current status is positive (UP) or negative (DOWN). | -| `@procedureInError` | `Boolean` | Sets whether or not the procedure attached to this status has failed (timeout, error...). | diff --git a/docs/manual/@vertx/health-check/index.md b/docs/manual/@vertx/health-check/index.md deleted file mode 100644 index ae5a0bc9b..000000000 --- a/docs/manual/@vertx/health-check/index.md +++ /dev/null @@ -1,265 +0,0 @@ -This component provides a simple way to expose health checks. Health -checks are used to express the current state of the application in very -simple terms: *UP* or *DOWN*. The health checks can be used -individually, or in combination to Vert.x Web or the event bus. - -This component provides a Vert.x Web handler on which you can register -procedure testing the health of the application. The handler computes -the final state and returns the result as JSON. - -# Using Vert.x Health Checks - -Notice that you generally need Vert.x Web to use this component. In -addition add the following dependency: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-health-check - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-health-check:${maven.version}' -``` - -## Creating the health check object. - -The central object is `HealthChecks`. You can create a new instance -using: - -``` js -Code not translatable -``` - -Once you have created this object you can register and unregister -procedures. See more about this below. - -## Registering the Vert.x Web handler - -To create the Vert.x Web handler managing your health check you can -either: - - - using an existing instance of `HealthChecks` - - - let the handler create one instance for you. - - - -``` js -import { HealthCheckHandler } from "@vertx/health-checks" -import { HealthChecks } from "@vertx/health-checks" -import { Router } from "@vertx/web" -let healthCheckHandler1 = HealthCheckHandler.create(vertx); -let healthCheckHandler2 = HealthCheckHandler.createWithHealthChecks(HealthChecks.create(vertx)); - -let router = Router.router(vertx); -// Populate the router with routes... -// Register the health check handler -router.get("/health*").handler(healthCheckHandler1); -// Or -router.get("/ping*").handler(healthCheckHandler2); -``` - -Procedure registration can be directly made on the `HealthCheckHandler` -instance. Alternatively, if you have created the `HealthChecks` instance -beforehand, you can register the procedure on this object directly. -Registrations and unregistrations can be done at anytime, even after the -route registration: - -``` js -Code not translatable -``` - -# Procedures - -A procedure is a function checking some aspect of the system to deduce -the current health. It reports a `Status` indicating whether or not the -test has passed or failed. This function must not block and report to -the given `Promise` whether or not it succeed. - -When you register a procedure, you give a name, and the function -(handler) executing the check. - -Rules deducing the status are the following - - - if the promise is mark as failed, the check is considered as *KO* - - - if the promise is completed successfully but without a `Status`, the - check is considered as *OK*. - - - if the promise is completed successfully with a `Status` marked as - *OK*, the check is considered as *OK*. - - - if the promise is completed successfully with a `Status` marked as - *KO*, the check is considered as *KO*. - -`Status` can also provide additional data: - -``` js -Code not translatable -``` - -Procedures can be organised by groups. The procedure name indicates the -group. The procedures are organized as a tree and the structure is -mapped to HTTP urls (see below). - -``` js -import { HealthCheckHandler } from "@vertx/health-checks" -let healthCheckHandler = HealthCheckHandler.create(vertx); - -// Register procedures -// Procedure can be grouped. The group is deduced using a name with "/". -// Groups can contains other group -healthCheckHandler.register("a-group/my-procedure-name", (promise) => { - //.... -}); -healthCheckHandler.register("a-group/a-second-group/my-second-procedure-name", (promise) => { - //.... -}); - -router.get("/health").handler(healthCheckHandler); -``` - -# HTTP responses and JSON Output - -When using the Vert.x web handler, the overall health check is retrieved -using a HTTP GET or POST (depending on the route you registered) on the -route given when exposing the `HealthCheckHandler`. - -If no procedure are registered, the response is `204 - NO CONTENT`, -indicating that the system is *UP* but no procedures has been executed. -The response does not contain a payload. - -If there is at least one procedure registered, this procedure is -executed and the outcome status is computed. The response would use the -following status code: - - - `200` : Everything is fine - - - `503` : At least one procedure has reported a non-healthy state - - - `500` : One procedure has thrown an error or has not reported a - status in time - -The content is a JSON document indicating the overall result -(`outcome`). It’s either `UP` or `DOWN`. A `checks` array is also given -indicating the result of the different executed procedures. If the -procedure has reported additional data, the data is also given: - - { - "checks" : [ - { - "id" : "A", - "status" : "UP" - }, - { - "id" : "B", - "status" : "DOWN", - "data" : { - "some-data" : "some-value" - } - } - ], - "outcome" : "DOWN" - } - -In case of groups/ hierarchy, the `checks` array depicts this structure: - - { - "checks" : [ - { - "id" : "my-group", - "status" : "UP", - "checks" : [ - { - "id" : "check-2", - "status" : "UP", - }, - { - "id" : "check-1", - "status" : "UP" - }] - }], - "outcome" : "UP" - } - -If a procedure throws an error, reports a failure (exception), the JSON -document provides the `cause` in the `data` section. If a procedure does -not report back before a timeout, the indicated cause is `Timeout`. - -# Examples of procedures - -This section provides example of common health checks. - -## JDBC - -This check reports whether or not a connection to the database can be -established: - -``` js -Code not translatable -``` - -## Service availability - -This check reports whether or not a service (here a HTTP endpoint) is -available in the service discovery: - -``` js -Code not translatable -``` - -## Event bus - -This check reports whether a consumer is ready on the event bus. The -protocol, in this example, is a simple ping/pong, but it can be more -sophisticated. This check can be used to check whether or not a verticle -is ready if it’s listening on a specific event address. - -``` js -Code not translatable -``` - -# Authentication - -When using the Vert.x web handler, you can pass a `AuthProvider` use to -authenticate the request. Check \Vert.x -Auth\ for more details about available authentication providers. - -The Vert.x Web handler creates a JSON object containing: - - - the request headers - - - the request params - - - the form param if any - - - the content as JSON if any and if the request set the content type - to `application/json`. - -The resulting object is passed to the auth provider to authenticate the -request. If the authentication failed, it returns a `403 - FORBIDDEN` -response. - -# Exposing health checks on the event bus - -While exposing the health checks using HTTP with the Vert.x web handler -is convenient, it can be useful to expose the data differently. This -section gives an example to expose the data on the event bus: - -``` js -vertx.eventBus().consumer("health", (message) => { - healthChecks.invoke(message.reply); -}); -``` diff --git a/docs/manual/@vertx/jdbc-client/index.md b/docs/manual/@vertx/jdbc-client/index.md deleted file mode 100644 index 58e107f60..000000000 --- a/docs/manual/@vertx/jdbc-client/index.md +++ /dev/null @@ -1,298 +0,0 @@ -This client allows you to interact with any JDBC compliant database -using an asynchronous API from your Vert.x application. - -The client API is represented with the interface `JDBCClient`. - -To use this project, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-jdbc-client - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-jdbc-client:${maven.version}' -``` - -# Creating a the client - -There are several ways to create a client. Let’s go through them all. - -## Using default shared data source - -In most cases you will want to share a data source between different -client instances. - -E.g. you scale your application by deploying multiple instances of your -verticle and you want each verticle instance to share the same -datasource so you don’t end up with multiple pools - -You do this as follows: - -``` java -import { JDBCClient } from "@vertx/jdbc-client" - -let client = JDBCClient.createShared(vertx, config); -``` - -The first call to `JDBCClient.createShared` will actually create the -data source, and the specified config will be used. - -Subsequent calls will return a new client instance that uses the same -data source, so the configuration won’t be used. - -## Specifying a data source name - -You can create a client specifying a data source name as follows - -``` java -import { JDBCClient } from "@vertx/jdbc-client" - - -let client = JDBCClient.createShared(vertx, config, "MyDataSource"); -``` - -If different clients are created using the same Vert.x instance and -specifying the same data source name, they will share the same data -source. - -The first call to `JDBCClient.createShared` will actually create the -data source, and the specified config will be used. - -Subsequent calls will return a new client instance that uses the same -data source, so the configuration won’t be used. - -Use this way of creating if you wish different groups of clients to have -different data sources, e.g. they’re interacting with different -databases. - -## Creating a client with a non shared data source - -In most cases you will want to share a data source between different -client instances. However, it’s possible you want to create a client -instance that doesn’t share its data source with any other client. - -In that case you can use `JDBCClient.create`. - -``` java -import { JDBCClient } from "@vertx/jdbc-client" - -let client = JDBCClient.create(vertx, config); -``` - -This is equivalent to calling `JDBCClient.createShared` with a unique -data source name each time. - -## Specifying a data source - -If you already have a pre-existing data source, you can also create the -client directly specifying that: - -``` java -import { JDBCClient } from "@vertx/jdbc-client" - -let client = JDBCClient.create(vertx, dataSource); -``` - -# Closing the client - -It’s fine to keep hold of the client for a long time (e.g. the lifetime -of your verticle), but once you’re done with it you should close it. - -Clients that share a data source with other client instances are -reference counted. Once the last one that references the same data -source is closed, the data source will be closed. - -## Automatic clean-up in verticles - -If you’re creating clients from inside verticles, the clients will be -automatically closed when the verticle is undeployed. - -# Getting a connection - -Once you’ve created a client you use `getConnection` to get a -connection. - -This will return the connection in the handler when one is ready from -the pool. - -``` java -// Now do stuff with it: - -client.getConnection((res) => { - if (res.succeeded()) { - - let connection = res.result(); - - connection.query("SELECT * FROM some_table", (res2) => { - if (res2.succeeded()) { - - let rs = res2.result(); - // Do something with results - } - }); - } else { - // Failed to get connection - deal with it - } -}); -``` - -The connection is an instance of `SQLConnection` which is a common -interface not only used by the Vert.x JDBC Client. - -You can learn how to use it in the [common sql -interface](http://vertx.io/docs/vertx-sql-common/js/) documentation. - -# Configuration - -Configuration is passed to the client when creating or deploying it. - -The following configuration properties generally apply: - - - `provider_class` - The class name of the class actually used to manage the database - connections. By default this is - `io.vertx.ext.jdbc.spi.impl.C3P0DataSourceProvider` but if you want - to use a different provider you can override this property and - provide your implementation. - - - `row_stream_fetch_size` - The size of `SQLRowStream` internal cache which used to better - performance. By default it equals to `128` - -Assuming the C3P0 implementation is being used (the default), the -following extra configuration properties apply: - - - `url` - the JDBC connection URL for the database - - - `driver_class` - the class of the JDBC driver - - - `user` - the username for the database - - - `password` - the password for the database - - - `max_pool_size` - the maximum number of connections to pool - default is `15` - - - `initial_pool_size` - the number of connections to initialise the pool with - default is - `3` - - - `min_pool_size` - the minimum number of connections to pool - - - `max_statements` - the maximum number of prepared statements to cache - default is `0`. - - - `max_statements_per_connection` - the maximum number of prepared statements to cache per connection - - default is `0`. - - - `max_idle_time` - number of seconds after which an idle connection will be closed - - default is `0` (never expire). - -Other Connection Pool providers are: - - - BoneCP (**DEPRECATED** you should avoid this pool as it has been - deprecated upstream) - - - Hikari - -Similar to C3P0 they can be configured by passing the configuration -values on the JSON config object. For the special case where you do not -want to deploy your app as a fat jar but run with a vert.x distribution, -then it is recommented to use BoneCP if you have no write permissions to -add the JDBC driver to the vert.x lib directory and are passing it using -the `-cp` command line flag. - -If you want to configure any other C3P0 properties, you can add a file -`c3p0.properties` to the classpath. - -Here’s an example of configuring a service: - -``` java -import { JDBCClient } from "@vertx/jdbc-client" - -let config = { - "url" : "jdbc:hsqldb:mem:test?shutdown=true", - "driver_class" : "org.hsqldb.jdbcDriver", - "max_pool_size" : 30 -}; - -let client = JDBCClient.createShared(vertx, config); -``` - -Hikari uses a different set of properties: - - - `jdbcUrl` for the JDBC URL - - - `driverClassName` for the JDBC driven class name - - - `maximumPoolSize` for the pool size - - - `username` for the login (`password` for the password) - -Refer to the [Hikari -documentation](https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby) -for further details. Also refer to the [BoneCP -documentation](http://www.jolbox.com/configuration.html) to configure -BoneCP. - -# JDBC Drivers - -If you are using the default `DataSourceProvider` (relying on c3p0), you -would need to copy the JDBC driver class in your *classpath*. - -If your application is packaged as a *fat jar*, be sure to embed the -jdbc driver. If your application is launched with the `vertx` command -line, copy the JDBC driver to `${VERTX_HOME}/lib`. - -The behavior may be different when using a different connection pool. - -# Data types - -Due to the fact that Vert.x uses JSON as its standard message format -there will be many limitations to the data types accepted by the client. -You will get out of the box the standard: - - - null - - - boolean - - - number - - - string - -There is also an optimistic cast for temporal types (TIME, DATE, -TIMESTAMP) and optionally disabled for UUID. UUIDs are supported by many -databases but not all. For example MySQL does not support it so the -recommended way is to use a VARCHAR(36) column. For other engines UUID -optimistic casting can be enabled using the client config json as: - - { "castUUID": true } - -When this config is present UUIDs will be handled as a native type. - -# Use as OSGi bundle - -Vert.x JDBC client can be used as an OSGi bundle. However notice that -you would need to deploy all dependencies first. Some connection pool -requires the JDBC driver to be loaded from the classpath, and so cannot -be packaged / deployed as bundle. diff --git a/docs/manual/@vertx/jwt/dataobjects.md b/docs/manual/@vertx/jwt/dataobjects.md deleted file mode 100644 index cd7892664..000000000 --- a/docs/manual/@vertx/jwt/dataobjects.md +++ /dev/null @@ -1,17 +0,0 @@ -# JWTOptions - -| | | | -| ------------------- | ----------------- | ----------- | -| Name | Type | Description | -| `@algorithm` | `String` | \- | -| `@audience` | `Array of String` | \- | -| `@audiences` | `Array of String` | \- | -| `@expiresInMinutes` | `Number (int)` | \- | -| `@expiresInSeconds` | `Number (int)` | \- | -| `@header` | `Json object` | \- | -| `@ignoreExpiration` | `Boolean` | \- | -| `@issuer` | `String` | \- | -| `@leeway` | `Number (int)` | \- | -| `@noTimestamp` | `Boolean` | \- | -| `@permissions` | `Array of String` | \- | -| `@subject` | `String` | \- | diff --git a/docs/manual/@vertx/kafka-client/admin.md b/docs/manual/@vertx/kafka-client/admin.md deleted file mode 100644 index 39e6b5467..000000000 --- a/docs/manual/@vertx/kafka-client/admin.md +++ /dev/null @@ -1,90 +0,0 @@ -This component provides a vert.x wrapper around the most important -functions of Kafka’s AdminUtils. AdminUtils are used to create, modify, -and delete topics. Other functionality covered by AdminUtils, but not -this wrapper, includes Partition Management, Broker Configuration -management, etc. - -> **Warning** -> -> this class is now deprecated see `KafkaAdminClient` instead. - -# Using the AdminUtils - -## Create a topic - -You can call `createTopic` to create a topic. Parameters are: topic -name, number of partitions, number of replicas, and the usual callback -to handle the result. It might return an error, e.g. if the number of -requested replicas is greater than the number of brokers. - -``` js -import { Vertx } from "@vertx/core" -import { AdminUtils } from "@vertx/kafka-client" -let adminUtils = AdminUtils.create(Vertx.vertx(), "localhost:2181", true); -// Create topic 'myNewTopic' with 2 partition and 1 replicas -adminUtils.createTopic("myNewTopic", 2, 1, (result) => { - if (result.succeeded()) { - console.log("Creation of topic myNewTopic successful!")} else { - console.log("Creation of topic myNewTopic failed: " + result.cause().getLocalizedMessage())} -}); -``` - -## Delete a topic - -You can call `deleteTopic` to delete a topic. Parameters are: topic -name, and the usual callback to handle the result. It might return an -error, e.g. if the topic does not exist. - -``` js -import { Vertx } from "@vertx/core" -import { AdminUtils } from "@vertx/kafka-client" -let adminUtils = AdminUtils.create(Vertx.vertx(), "localhost:2181", true); -// Delete topic 'myNewTopic' -adminUtils.deleteTopic("myNewTopic", (result) => { - if (result.succeeded()) { - console.log("Deletion of topic myNewTopic successful!")} else { - console.log("Deletion of topic myNewTopic failed: " + result.cause().getLocalizedMessage())} -}); -``` - -## Change a topic’s configuration - -If you need to update the configuration of a topic, e.g., you want to -update the retention policy, you can call `changeTopicConfig` to update -a topic. Parameters are: topic name, a Map (String → String) with -parameters to be changed, and the usual callback to handle the result. -It might return an error, e.g. if the topic does not exist. - -``` js -import { Vertx } from "@vertx/core" -import { AdminUtils } from "@vertx/kafka-client" -let adminUtils = AdminUtils.create(Vertx.vertx(), "localhost:2181", true); -// Set retention to 1000 ms and max size of the topic partition to 1 kiByte -let properties = {}; -properties["delete.retention.ms"] = "1000"; -properties["retention.bytes"] = "1024"; -adminUtils.changeTopicConfig("myNewTopic", properties, (result) => { - if (result.succeeded()) { - console.log("Configuration change of topic myNewTopic successful!")} else { - console.log("Configuration change of topic myNewTopic failed: " + result.cause().getLocalizedMessage())} -}); -} -``` - -## Check if a topic exists - -If you want to check if a topic exists, you can call `topicExists`. -Parameters are: topic name, and the usual callback to handle the result. -It might return an error, e.g. if the topic does not exist. - -``` js -import { Vertx } from "@vertx/core" -import { AdminUtils } from "@vertx/kafka-client" -let adminUtils = AdminUtils.create(Vertx.vertx(), "localhost:2181", true); -adminUtils.topicExists("myNewTopic", (result) => { - if (result.succeeded()) { - console.log("Topic myNewTopic exists: " + result.result()); - } else { - console.log("Failed to check if topic myNewTopic exists: " + result.cause().getLocalizedMessage())} -}); -``` diff --git a/docs/manual/@vertx/kafka-client/adminclient.md b/docs/manual/@vertx/kafka-client/adminclient.md deleted file mode 100644 index 8c0258a41..000000000 --- a/docs/manual/@vertx/kafka-client/adminclient.md +++ /dev/null @@ -1,151 +0,0 @@ -This component provides a Vert.x wrapper around the Kafka Admin Client -API. The Kafka Admin Client is used to create, modify, and delete -topics. It also provides methods for handling ACLs (Access Control -Lists), consumer groups and many more. - -# Creating the Kafka Admin Client - -Creating the admin client is quite similar on how it works using the -native Kafka client library. - -It needs to be configured with a bunch of properties as described in the -official Apache Kafka documentation, for the -[admin](https://kafka.apache.org/documentation/#adminclientconfigs). - -To achieve that, a map can be configured with such properties passing it -to one of the static creation methods exposed by `KafkaAdminClient`. - -``` js -import { KafkaAdminClient } from "@vertx/kafka-client" -// creating the admin client using properties config -let config = new (Java.type("java.util.Properties"))(); -config.put(Java.type("org.apache.kafka.clients.admin.AdminClientConfig").BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"); - -let adminClient = KafkaAdminClient.create(vertx, config); -``` - -# Using the Kafka Admin Client - -## Listing topics - -You can call the `listTopics` for listing the topics in the cluster. The -only parameter is the usual callback to handle the result, which -provides the topics list. - -``` js -adminClient.listTopics((ar) => { - console.log("Topics= " + ar.result()); -}); -``` - -## Describe topics - -You can call `describeTopics` to describe topics in the cluster. -Describing a topic means getting all related metadata like number of -partitions, replicas, leader, in-sync replicas and so on. The needed -parameters are the list of topics names to describe, and the usual -callback to handle the result providing a map with topic names and -related `TopicDescription`. - -``` js -adminClient.describeTopics(Java.type("java.util.Collections").singletonList("my-topic"), (ar) => { - let topicDescription = ar.result()["first-topic"]; - - console.log("Topic name=" + topicDescription.name + " isInternal= " + topicDescription.nternal + " partitions= " + topicDescription.partitions.length); - - topicDescription.partitions.forEach(topicPartitionInfo => { - console.log("Partition id= " + topicPartitionInfo.partition + " leaderId= " + topicPartitionInfo.leader.id + " replicas= " + topicPartitionInfo.replicas + " isr= " + topicPartitionInfo.isr); - }); -}); -``` - -## Create topic - -You can call `createTopics` to create topics in the cluster. The needed -parameters are the list of the topics to create, and the usual callback -to handle the result. The topics to create are defined via the -`NewTopic` class specifying the name, the number of partitions and the -replication factor. It is also possible to describe the replicas -assignment, mapping each replica to the broker id, instead of specifying -the number of partitions and the replication factor (which in this case -has to be set to -1). - -``` js -Code not translatable -``` - -## Delete topic - -You can call `deleteTopics` to delete topics in the cluster. The needed -parameters are the list of the topics to delete, and the usual callback -to handle the result. - -``` js -adminClient.deleteTopics(Java.type("java.util.Collections").singletonList("topicToDelete"), (ar) => { - // check if they were deleted successfully -}); -``` - -## Describe configuration - -You can call `describeConfigs` to describe resources configuration. -Describing resources configuration means getting all configuration -information for cluster resources like topics or brokers. The needed -parameters are the list of the resources for which you want the -configuration, and the usual callback to handle the result. The -resources are described by a collection of `ConfigResource` while the -result maps each resource with a corresponding `Config` which as more -`ConfigEntry` for each configuration parameter. - -``` js -Code not translatable -``` - -## Alter configuration - -You can call `alterConfigs` to alter resources configuration. Altering -resources configuration means updating configuration information for -cluster resources like topics or brokers. The needed parameters are the -list of the resources with the related configurations to updated, and -the usual callback to handle the result. It is possible to alter -configurations for different resources with just one call. The input -parameter maps each `ConfigResource` with the corresponding `Config` you -want to apply. - -``` js -Code not translatable -``` - -## List consumer groups - -You can call the `listConsumerGroups` for listing the consumer groups in -the cluster. The only parameter is the usual callback to handle the -result, which provides the consumer groups list. - -``` js -adminClient.listConsumerGroups((ar) => { - console.log("ConsumerGroups= " + ar.result()); -}); -``` - -## Describe consumer groups - -You can call `describeConsumerGroups` to describe consumer groups in the -cluster. Describing a consumer group means getting all related -information like members, related ids, topics subscribed, partitions -assignment and so on. The needed parameters are the list of consumer -groups names to describe, and the usual callback to handle the result -providing a map with consumer group names and related -`MemberDescription`. - -``` js -adminClient.describeTopics(Java.type("java.util.Collections").singletonList("my-topic"), (ar) => { - let topicDescription = ar.result()["first-topic"]; - - console.log("Topic name=" + topicDescription.name + " isInternal= " + topicDescription.nternal + " partitions= " + topicDescription.partitions.length); - - topicDescription.partitions.forEach(topicPartitionInfo => { - console.log("Partition id= " + topicPartitionInfo.partition + " leaderId= " + topicPartitionInfo.leader.id + " replicas= " + topicPartitionInfo.replicas + " isr= " + topicPartitionInfo.isr); - }); -}); -``` diff --git a/docs/manual/@vertx/kafka-client/dataobjects.md b/docs/manual/@vertx/kafka-client/dataobjects.md deleted file mode 100644 index 372ea4253..000000000 --- a/docs/manual/@vertx/kafka-client/dataobjects.md +++ /dev/null @@ -1,217 +0,0 @@ -# ClusterDescription - -A detailed description of the cluster - -| | | | -| ------------- | --------------- | --------------------------------------- | -| Name | Type | Description | -| `@clusterId` | `String` | Set the cluster ID | -| `@controller` | `Node` | Set the controller node. | -| `@nodes` | `Array of Node` | Set the nodes belonging to this cluster | - -# Config - -A configuration object containing the configuration entries for a -resource - -| | | | -| ---------- | ---------------------- | -------------------------------------------- | -| Name | Type | Description | -| `@entries` | `Array of ConfigEntry` | Set the configuration entries for a resource | - -# ConfigEntry - -A class representing a configuration entry containing name, value and -additional metadata - -| | | | -| ------------ | ------------------------ | ------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@default` | `Boolean` | Set whether the config value is the default or if it's been explicitly set | -| `@name` | `String` | Set the config name | -| `@readOnly` | `Boolean` | Set whether the config is read-only and cannot be updated | -| `@sensitive` | `Boolean` | Set whether the config value is sensitive. The value is always set to null by the broker if the config value is sensitive | -| `@source` | `ConfigSource` | Set the source of this configuration entry | -| `@synonyms` | `Array of ConfigSynonym` | Set all config values that may be used as the value of this config along with their source, in the order of precedence | -| `@value` | `String` | Set the value or null. Null is returned if the config is unset or if isSensitive is true | - -# ConfigResource - -A class representing resources that have configuration - -| | | | -| ---------- | --------- | -------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@default` | `Boolean` | Set if this is the default resource of a resource type. Resource name is empty for the default resource. | -| `@name` | `String` | Set the resource name | -| `@type` | `Type` | Set the resource type | - -# ConfigSynonym - -Class representing a configuration synonym of a link - -| | | | -| --------- | -------------- | ---------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@name` | `String` | Set the name of this configuration | -| `@source` | `ConfigSource` | Set the source of this configuration | -| `@value` | `String` | Set the value of this configuration, which may be null if the configuration is sensitive | - -# ConsumerGroupDescription - -A detailed description of a single consumer group in the cluster - -| | | | -| ---------------------- | ---------------------------- | -------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@coordinator` | `Node` | Set the consumer group coordinator, or null if the coordinator is not known | -| `@groupId` | `String` | Set the id of the consumer group | -| `@members` | `Array of MemberDescription` | Set a list of the members of the consumer group | -| `@partitionAssignor` | `String` | Set the consumer group partition assignor | -| `@simpleConsumerGroup` | `Boolean` | Set if consumer group is simple or not | -| `@state` | `ConsumerGroupState` | Set the consumer group state, or UNKNOWN if the state is too new for us to parse | - -# ConsumerGroupListing - -A listing of a consumer group in the cluster. - -| | | | -| ---------------------- | --------- | -------------------------------------- | -| Name | Type | Description | -| `@groupId` | `String` | Set the consumer group id | -| `@simpleConsumerGroup` | `Boolean` | Set if consumer group is simple or not | - -# ListConsumerGroupOffsetsOptions - -| | | | -| ---- | ---- | ----------- | -| Name | Type | Description | - -# MemberAssignment - -A description of the assignments of a specific group member - -| | | | -| ------------------ | ------------------------- | -------------------------------- | -| Name | Type | Description | -| `@topicPartitions` | `Array of TopicPartition` | Set the list of topic partitions | - -# MemberDescription - -A detailed description of a single group instance in the cluster - -| | | | -| ------------- | ------------------ | ---------------------------------------------- | -| Name | Type | Description | -| `@assignment` | `MemberAssignment` | Set the assignment of the group member | -| `@clientId` | `String` | Set the client id of the group member | -| `@consumerId` | `String` | Set the consumer id of the group member | -| `@host` | `String` | Set the host where the group member is running | - -# NewTopic - -A new topic to be created - -| | | | -| -------------------- | ---------------- | ----------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@config` | `String` | Set the configuration for the new topic or null if no configs ever specified | -| `@name` | `String` | Set the name of the topic to be created | -| `@numPartitions` | `Number (int)` | Set the number of partitions for the new topic or -1 if a replica assignment has been specified | -| `@replicationFactor` | `Number (short)` | Set the replication factor for the new topic or -1 if a replica assignment has been specified | - -# Node - -Information about a Kafka cluster node - -| | | | -| ----------- | -------------- | -------------------------------------------- | -| Name | Type | Description | -| `@empty` | `Boolean` | | -| `@hasRack` | `Boolean` | Set if this node has a defined rack | -| `@host` | `String` | Set the host name for this node | -| `@id` | `Number (int)` | Set the node id of this node | -| `@idString` | `String` | Set the string representation of the node id | -| `@isEmpty` | `Boolean` | Set if this node is empty | -| `@port` | `Number (int)` | Set the port for this node | -| `@rack` | `String` | Set the rack for this node | - -# OffsetAndMetadata - -Provide additional metadata when an offset is committed - -| | | | -| ----------- | --------------- | ------------------------------------------------ | -| Name | Type | Description | -| `@metadata` | `String` | Set additional metadata for the offset committed | -| `@offset` | `Number (long)` | Set the offset to commit | - -# OffsetAndTimestamp - -Represent information related to a Offset with timestamp information - -| | | | -| ------------ | --------------- | ----------------- | -| Name | Type | Description | -| `@offset` | `Number (long)` | Set the offset | -| `@timestamp` | `Number (long)` | Set the timestamp | - -# PartitionInfo - -Information about a specific Kafka topic partition - -| | | | -| ----------------- | --------------- | -------------------------------------------------------- | -| Name | Type | Description | -| `@inSyncReplicas` | `Array of Node` | Set the subset of the replicas that are in sync | -| `@leader` | `Node` | Set the node id of the node currently acting as a leader | -| `@partition` | `Number (int)` | Set the partition id | -| `@replicas` | `Array of Node` | Set the complete set of replicas for this partition | -| `@topic` | `String` | Set the topic name | - -# RecordMetadata - -Metadata related to a Kafka record - -| | | | -| ------------ | --------------- | ------------------------------------------------------ | -| Name | Type | Description | -| `@checksum` | `Number (long)` | Set the checksum (CRC32) of the record. | -| `@offset` | `Number (long)` | Set the offset of the record in the topic/partition. | -| `@partition` | `Number (int)` | Set the partition the record was sent to | -| `@timestamp` | `Number (long)` | Set the timestamp of the record in the topic/partition | -| `@topic` | `String` | Set the topic the record was appended to | - -# TopicDescription - -A detailed description of a single topic in the cluster - -| | | | -| ------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@internal` | `Boolean` | Set whether the topic is internal to Kafka. | -| `@name` | `String` | Set the name of the topic. | -| `@partitions` | `Array of TopicPartitionInfo` | Set A list of partitions where the index represents the partition id and the element contains leadership and replica information for that partition. | - -# TopicPartition - -Represent information related to a partition for a topic - -| | | | -| ------------ | -------------- | ------------------------ | -| Name | Type | Description | -| `@partition` | `Number (int)` | Set the partition number | -| `@topic` | `String` | Set the topic name | - -# TopicPartitionInfo - -A class containing leadership, replicas and ISR information for a topic -partition. - -| | | | -| ------------ | --------------- | -------------------------------------------------------- | -| Name | Type | Description | -| `@isr` | `Array of Node` | Set the subset of the replicas that are in sync | -| `@leader` | `Node` | Set the node id of the node currently acting as a leader | -| `@partition` | `Number (int)` | Set the partition id | -| `@replicas` | `Array of Node` | Set the complete set of replicas for this partition | diff --git a/docs/manual/@vertx/kafka-client/index.md b/docs/manual/@vertx/kafka-client/index.md deleted file mode 100644 index 5be086138..000000000 --- a/docs/manual/@vertx/kafka-client/index.md +++ /dev/null @@ -1,823 +0,0 @@ -This component provides a Kafka client for reading and sending messages -from/to an [Apache Kafka](https://kafka.apache.org/) cluster. - -As consumer, the API provides methods for subscribing to a topic -partition receiving messages asynchronously or reading them as a stream -(even with the possibility to pause/resume the stream). - -As producer, the API provides methods for sending message to a topic -partition like writing on a stream. - -# Using the Vert.x Kafka client - -To use this component, add the following dependency to the dependencies -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-kafka-client - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile io.vertx:vertx-kafka-client:${maven.version} -``` - -# Creating Kafka clients - -Creating consumers and producers is quite similar and on how it works -using the native Kafka client library. - -They need to be configured with a bunch of properties as described in -the official Apache Kafka documentation, for the -[consumer](https://kafka.apache.org/documentation/#newconsumerconfigs) -and for the -[producer](https://kafka.apache.org/documentation/#producerconfigs). - -To achieve that, a map can be configured with such properties passing it -to one of the static creation methods exposed by `KafkaConsumer` and -`KafkaProducer` - -``` js -import { KafkaConsumer } from "@vertx/kafka-client" - -// creating the consumer using map config -let config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.deserializer"] = "org.apache.kafka.common.serialization.StringDeserializer"; -config["value.deserializer"] = "org.apache.kafka.common.serialization.StringDeserializer"; -config["group.id"] = "my_group"; -config["auto.offset.reset"] = "earliest"; -config["enable.auto.commit"] = "false"; - -// use consumer for interacting with Apache Kafka -let consumer = KafkaConsumer.create(vertx, config); -``` - -In the above example, a `KafkaConsumer` instance is created using a map -instance in order to specify the Kafka nodes list to connect (just one) -and the deserializers to use for getting key and value from each -received message. - -Likewise a producer can be created - -``` js -import { KafkaProducer } from "@vertx/kafka-client" - -// creating the producer using map and class types for key and value serializers/deserializers -let config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.serializer"] = "org.apache.kafka.common.serialization.StringSerializer"; -config["value.serializer"] = "org.apache.kafka.common.serialization.StringSerializer"; -config["acks"] = "1"; - -// use producer for interacting with Apache Kafka -let producer = KafkaProducer.create(vertx, config); -``` - -# Receiving messages from a topic joining a consumer group - -In order to start receiving messages from Kafka topics, the consumer can -use the `subscribe` method for subscribing to a set of topics being part -of a consumer group (specified by the properties on creation). - -It’s also possible to use the `subscribe` method for subscribing to more -topics specifying a Java regex. - -You also need to register a handler for handling incoming messages using -the `handler`. - -``` js -// register the handler for incoming messages -consumer.handler((record) => { - console.log("Processing key=" + record.key() + ",value=" + record.value() + ",partition=" + record.partition() + ",offset=" + record.offset()); -}); - -// subscribe to several topics with list -let topics = new (Java.type("java.util.HashSet"))(); -topics.add("topic1"); -topics.add("topic2"); -topics.add("topic3"); -consumer.subscribe(topics); - -// or using a Java regex -let pattern = Java.type("java.util.regex.Pattern").compile("topic\\d"); -consumer.subscribe(pattern); - -// or just subscribe to a single topic -consumer.subscribe("a-single-topic"); -``` - -The handler can be registered before or after the call to `subscribe()`; -messages won’t be consumed until both methods have been called. This -allows you to call `subscribe()`, then `seek()` and finally `handler()` -in order to only consume messages starting from a particular offset, for -example. - -A handler can also be passed during subscription to be aware of the -subscription result and being notified when the operation is completed. - -``` js -// register the handler for incoming messages -consumer.handler((record) => { - console.log("Processing key=" + record.key() + ",value=" + record.value() + ",partition=" + record.partition() + ",offset=" + record.offset()); -}); - -// subscribe to several topics -let topics = new (Java.type("java.util.HashSet"))(); -topics.add("topic1"); -topics.add("topic2"); -topics.add("topic3"); -consumer.subscribe(topics, (ar) => { - if (ar.succeeded()) { - console.log("subscribed"); - } else { - console.log("Could not subscribe " + ar.cause().getMessage()); - } -}); - -// or just subscribe to a single topic -consumer.subscribe("a-single-topic", (ar) => { - if (ar.succeeded()) { - console.log("subscribed"); - } else { - console.log("Could not subscribe " + ar.cause().getMessage()); - } -}); -``` - -Using the consumer group way, the Kafka cluster assigns partitions to -the consumer taking into account other connected consumers in the same -consumer group, so that partitions can be spread across them. - -The Kafka cluster handles partitions re-balancing when a consumer leaves -the group (so assigned partitions are free to be assigned to other -consumers) or a new consumer joins the group (so it wants partitions to -read from). - -You can register handlers on a `KafkaConsumer` to be notified of the -partitions revocations and assignments by the Kafka cluster using -`partitionsRevokedHandler` and `partitionsAssignedHandler`. - -``` js -// register the handler for incoming messages -consumer.handler((record) => { - console.log("Processing key=" + record.key() + ",value=" + record.value() + ",partition=" + record.partition() + ",offset=" + record.offset()); -}); - -// registering handlers for assigned and revoked partitions -consumer.partitionsAssignedHandler((topicPartitions) => { - - console.log("Partitions assigned"); - topicPartitions.forEach(topicPartition => { - console.log(topicPartition.topic + " " + topicPartition.partition); - }); -}); - -consumer.partitionsRevokedHandler((topicPartitions) => { - - console.log("Partitions revoked"); - topicPartitions.forEach(topicPartition => { - console.log(topicPartition.topic + " " + topicPartition.partition); - }); -}); - -// subscribes to the topic -consumer.subscribe("test", (ar) => { - - if (ar.succeeded()) { - console.log("Consumer subscribed"); - } -}); -``` - -After joining a consumer group for receiving messages, a consumer can -decide to leave the consumer group in order to not get messages anymore -using `unsubscribe` - -``` js -// consumer is already member of a consumer group - -// unsubscribing request -consumer.unsubscribe(); -``` - -You can add an handler to be notified of the result - -``` js -// consumer is already member of a consumer group - -// unsubscribing request -consumer.unsubscribe((ar) => { - - if (ar.succeeded()) { - console.log("Consumer unsubscribed"); - } -}); -``` - -# Receiving messages from a topic requesting specific partitions - -Besides being part of a consumer group for receiving messages from a -topic, a consumer can ask for a specific topic partition. When the -consumer is not part part of a consumer group the overall application -cannot rely on the re-balancing feature. - -You can use `assign` in order to ask for specific partitions. - -``` js -// register the handler for incoming messages -consumer.handler((record) => { - console.log("key=" + record.key() + ",value=" + record.value() + ",partition=" + record.partition() + ",offset=" + record.offset()); -}); - -// -let topicPartitions = new (Java.type("java.util.HashSet"))(); -topicPartitions.add(new TopicPartition() - .setTopic("test") - .setPartition(0)); - -// requesting to be assigned the specific partition -consumer.assign(topicPartitions, (done) => { - - if (done.succeeded()) { - console.log("Partition assigned"); - - // requesting the assigned partitions - consumer.assignment((done1) => { - - if (done1.succeeded()) { - - done1.result().forEach(topicPartition => { - console.log(topicPartition.topic + " " + topicPartition.partition); - }); - } - }); - } -}); -``` - -As with `subscribe()`, the handler can be registered before or after the -call to `assign()`; messages won’t be consumed until both methods have -been called. This allows you to call `assign()`, then `seek()` and -finally `handler()` in order to only consume messages starting from a -particular offset, for example. - -Calling `assignment` provides the list of the current assigned -partitions. - -# Receiving messages with explicit polling - -Other than using the internal polling mechanism in order to receive -messages from Kafka, the client can subscribe to a topic, avoiding to -register the handler for getting the messages and then using the `poll` -method. - -In this way, the user application is in charge to execute the poll for -getting messages when it needs, for example after processing the -previous ones. - -``` js -// subscribes to the topic -consumer.subscribe("test", (ar) => { - - if (ar.succeeded()) { - console.log("Consumer subscribed"); - - vertx.setPeriodic(1000, (timerId) => { - - consumer.poll(Java.type("java.time.Duration").ofMillis(100), (ar1) => { - - if (ar1.succeeded()) { - - let records = ar1.result(); - for (let i = 0;i < records.size();i++) { - let record = records.recordAt(i); - console.log("key=" + record.key() + ",value=" + record.value() + ",partition=" + record.partition() + ",offset=" + record.offset()); - } - } - }); - - }); - } -}); -``` - -After subscribing successfully, the application start a periodic timer -in order to execute the poll and getting messages from Kafka -periodically. - -# Changing the subscription or assignment - -You can change the subscribed topics, or assigned partitions after you -have started to consume messages, simply by calling `subscribe()` or -`assign()` again. - -Note that due to internal buffering of messages it is possible that the -record handler will continue to observe messages from the old -subscription or assignment *after* the `subscribe()` or `assign()` -method’s completion handler has been called. This is not the case for -messages observed by the batch handler: Once the completion handler has -been called it will only observe messages read from the subscription or -assignment. - -# Getting topic partition information - -You can call the `partitionsFor` to get information about partitions for -a specified topic - -``` js -// asking partitions information about specific topic -consumer.partitionsFor("test", (ar) => { - - if (ar.succeeded()) { - - ar.result().forEach(partitionInfo => { - console.log(partitionInfo); - }); - } -}); -``` - -In addition `listTopics` provides all available topics with related -partitions - -``` js -// asking information about available topics and related partitions -consumer.listTopics((ar) => { - - if (ar.succeeded()) { - - let map = ar.result(); - map.forEach((partitions, topic) => { - console.log("topic = " + topic); - console.log("partitions = " + map[topic]); - }); - } -}); -``` - -# Manual offset commit - -In Apache Kafka the consumer is in charge to handle the offset of the -last read message. - -This is executed by the commit operation executed automatically every -time a bunch of messages are read from a topic partition. The -configuration parameter `enable.auto.commit` must be set to `true` when -the consumer is created. - -Manual offset commit, can be achieved with `commit`. It can be used to -achieve *at least once* delivery to be sure that the read messages are -processed before committing the offset. - -``` js -// consumer is processing read messages - -// committing offset of the last read message -consumer.commit((ar) => { - - if (ar.succeeded()) { - console.log("Last read message offset committed"); - } -}); -``` - -# Seeking in a topic partition - -Apache Kafka can retain messages for a long period of time and the -consumer can seek inside a topic partition and obtain arbitrary access -to the messages. - -You can use `seek` to change the offset for reading at a specific -position - -``` js -let topicPartition = new TopicPartition() - .setTopic("test") - .setPartition(0); - -// seek to a specific offset -consumer.seek(topicPartition, 10, (done) => { - - if (done.succeeded()) { - console.log("Seeking done"); - } -}); -``` - -When the consumer needs to re-read the stream from the beginning, it can -use `seekToBeginning` - -``` js -let topicPartition = new TopicPartition() - .setTopic("test") - .setPartition(0); - -// seek to the beginning of the partition -consumer.seekToBeginning(Java.type("java.util.Collections").singleton(topicPartition), (done) => { - - if (done.succeeded()) { - console.log("Seeking done"); - } -}); -``` - -Finally `seekToEnd` can be used to come back at the end of the partition - -``` js -let topicPartition = new TopicPartition() - .setTopic("test") - .setPartition(0); - -// seek to the end of the partition -consumer.seekToEnd(Java.type("java.util.Collections").singleton(topicPartition), (done) => { - - if (done.succeeded()) { - console.log("Seeking done"); - } -}); -``` - -Note that due to internal buffering of messages it is possible that the -record handler will continue to observe messages read from the original -offset for a time *after* the `seek*()` method’s completion handler has -been called. This is not the case for messages observed by the batch -handler: Once the `seek*()` completion handler has been called it will -only observe messages read from the new offset. - -# Offset lookup - -You can use the beginningOffsets API introduced in Kafka 0.10.1.1 to get -the first offset for a given partition. In contrast to -`seekToBeginning`, it does not change the consumer’s offset. - -``` js -let topicPartitions = new (Java.type("java.util.HashSet"))(); -let topicPartition = new TopicPartition() - .setTopic("test") - .setPartition(0); -topicPartitions.add(topicPartition); - -consumer.beginningOffsets(topicPartitions, (done) => { - if (done.succeeded()) { - let results = done.result(); - results.forEach((beginningOffset, topic) => { - console.log("Beginning offset for topic=" + topic.topic + ", partition=" + topic.partition + ", beginningOffset=" + beginningOffset); - }); - } -}); - -// Convenience method for single-partition lookup -consumer.beginningOffsets(topicPartition, (done) => { - if (done.succeeded()) { - let beginningOffset = done.result(); - console.log("Beginning offset for topic=" + topicPartition.topic + ", partition=" + topicPartition.partition + ", beginningOffset=" + beginningOffset); - } -}); -``` - -You can use the endOffsets API introduced in Kafka 0.10.1.1 to get the -last offset for a given partition. In contrast to `seekToEnd`, it does -not change the consumer’s offset. - -``` js -let topicPartitions = new (Java.type("java.util.HashSet"))(); -let topicPartition = new TopicPartition() - .setTopic("test") - .setPartition(0); -topicPartitions.add(topicPartition); - -consumer.endOffsets(topicPartitions, (done) => { - if (done.succeeded()) { - let results = done.result(); - results.forEach((endOffset, topic) => { - console.log("End offset for topic=" + topic.topic + ", partition=" + topic.partition + ", endOffset=" + endOffset); - }); - } -}); - -// Convenience method for single-partition lookup -consumer.endOffsets(topicPartition, (done) => { - if (done.succeeded()) { - let endOffset = done.result(); - console.log("End offset for topic=" + topicPartition.topic + ", partition=" + topicPartition.partition + ", endOffset=" + endOffset); - } -}); -``` - -You can use the offsetsForTimes API introduced in Kafka 0.10.1.1 to look -up an offset by timestamp, i.e. search parameter is an epoch timestamp -and the call returns the lowest offset with ingestion timestamp \>= -given timestamp. - -``` js -Code not translatable -``` - -# Message flow control - -A consumer can control the incoming message flow and pause/resume the -read operation from a topic, e.g it can pause the message flow when it -needs more time to process the actual messages and then resume to -continue message processing. - -To achieve that you can use `pause` and `resume`. - -In the case of the partition-specific pause and resume it is possible -that the record handler will continue to observe messages from a paused -partition for a time *after* the `pause()` method’s completion handler -has been called. This is not the case for messages observed by the batch -handler: Once the `pause()` completion handler has been called it will -only observe messages from those partitions which are not paused. - -``` js -let topicPartition = new TopicPartition() - .setTopic("test") - .setPartition(0); - -// registering the handler for incoming messages -consumer.handler((record) => { - console.log("key=" + record.key() + ",value=" + record.value() + ",partition=" + record.partition() + ",offset=" + record.offset()); - - // i.e. pause/resume on partition 0, after reading message up to offset 5 - if ((record.partition() === 0) && (record.offset() === 5)) { - - // pause the read operations - consumer.pause(topicPartition, (ar) => { - - if (ar.succeeded()) { - - console.log("Paused"); - - // resume read operation after a specific time - vertx.setTimer(5000, (timeId) => { - - // resume read operations - consumer.resume(topicPartition); - }); - } - }); - } -}); -``` - -# Closing a consumer - -Call close to close the consumer. Closing the consumer closes any open -connections and releases all consumer resources. - -The close is actually asynchronous and might not complete until some -time after the call has returned. If you want to be notified when the -actual close has completed then you can pass in a handler. - -This handler will then be called when the close has fully completed. - -``` js -consumer.close((res) => { - if (res.succeeded()) { - console.log("Consumer is now closed"); - } else { - console.log("close failed"); - } -}); -``` - -# Sending messages to a topic - -You can use `write` to send messages (records) to a topic. - -The simplest way to send a message is to specify only the destination -topic and the related value, omitting its key or partition, in this case -the messages are sent in a round robin fashion across all the partitions -of the topic. - -``` js -import { KafkaProducerRecord } from "@vertx/kafka-client" - -for (let i = 0;i < 5;i++) { - - // only topic and message value are specified, round robin on destination partitions - let record = KafkaProducerRecord.create("test", "message_" + i); - - producer.write(record); -} -``` - -You can receive message sent metadata like its topic, its destination -partition and its assigned offset. - -``` js -import { KafkaProducerRecord } from "@vertx/kafka-client" - -for (let i = 0;i < 5;i++) { - - // only topic and message value are specified, round robin on destination partitions - let record = KafkaProducerRecord.create("test", "message_" + i); - - producer.send(record, (done) => { - - if (done.succeeded()) { - - let recordMetadata = done.result(); - console.log("Message " + record.value() + " written on topic=" + recordMetadata.topic + ", partition=" + recordMetadata.partition + ", offset=" + recordMetadata.offset); - } - - }); -} -``` - -When you need to assign a partition to a message, you can specify its -partition identifier or its key - -``` js -import { KafkaProducerRecord } from "@vertx/kafka-client" - -for (let i = 0;i < 10;i++) { - - // a destination partition is specified - let record = KafkaProducerRecord.create("test", null, "message_" + i, 0); - - producer.write(record); -} -``` - -Since the producers identifies the destination using key hashing, you -can use that to guarantee that all messages with the same key are sent -to the same partition and retain the order. - -``` js -import { KafkaProducerRecord } from "@vertx/kafka-client" - -for (let i = 0;i < 10;i++) { - - // i.e. defining different keys for odd and even messages - let key = i % 2; - - // a key is specified, all messages with same key will be sent to the same partition - let record = KafkaProducerRecord.create("test", Java.type("java.lang.String").valueOf(key), "message_" + i); - - producer.write(record); -} -``` - -> **Note** -> -> the shared producer is created on the first `createShared` call and -> its configuration is defined at this moment, shared producer usage -> must use the same configuration. - -# Sharing a producer - -Sometimes you want to share the same producer from within several -verticles or contexts. - -Calling `KafkaProducer.createShared` returns a producer that can be -shared safely. - -``` js -import { KafkaProducer } from "@vertx/kafka-client" - -// Create a shared producer identified by 'the-producer' -let producer1 = KafkaProducer.createShared(vertx, "the-producer", config); - -// Sometimes later you can close it -producer1.close(); -``` - -The same resources (thread, connection) will be shared between the -producer returned by this method. - -When you are done with the producer, just close it, when all shared -producers are closed, the resources will be released for you. - -# Closing a producer - -Call close to close the producer. Closing the producer closes any open -connections and releases all producer resources. - -The close is actually asynchronous and might not complete until some -time after the call has returned. If you want to be notified when the -actual close has completed then you can pass in a handler. - -This handler will then be called when the close has fully completed. - -``` js -producer.close((res) => { - if (res.succeeded()) { - console.log("Producer is now closed"); - } else { - console.log("close failed"); - } -}); -``` - -# Getting topic partition information - -You can call the `partitionsFor` to get information about partitions for -a specified topic: - -``` js -// asking partitions information about specific topic -producer.partitionsFor("test", (ar) => { - - if (ar.succeeded()) { - - ar.result().forEach(partitionInfo => { - console.log(partitionInfo); - }); - } -}); -``` - -# Handling errors - -Errors handling (e.g timeout) between a Kafka client (consumer or -producer) and the Kafka cluster is done using `exceptionHandler` or -`exceptionHandler` - -``` js -// setting handler for errors -consumer.exceptionHandler((e) => { - console.log("Error = " + e.getMessage()); -}); -``` - -# Automatic clean-up in verticles - -If you’re creating consumers and producer from inside verticles, those -consumers and producers will be automatically closed when the verticle -is undeployed. - -# Using Vert.x serializers/deserializers - -Vert.x Kafka client comes out of the box with serializers and -deserializers for buffers, json object and json array. - -In a consumer you can use buffers - -``` js -// Creating a consumer able to deserialize to buffers -let config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.deserializer"] = "io.vertx.kafka.client.serialization.BufferDeserializer"; -config["value.deserializer"] = "io.vertx.kafka.client.serialization.BufferDeserializer"; -config["group.id"] = "my_group"; -config["auto.offset.reset"] = "earliest"; -config["enable.auto.commit"] = "false"; - -// Creating a consumer able to deserialize to json object -config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.deserializer"] = "io.vertx.kafka.client.serialization.JsonObjectDeserializer"; -config["value.deserializer"] = "io.vertx.kafka.client.serialization.JsonObjectDeserializer"; -config["group.id"] = "my_group"; -config["auto.offset.reset"] = "earliest"; -config["enable.auto.commit"] = "false"; - -// Creating a consumer able to deserialize to json array -config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.deserializer"] = "io.vertx.kafka.client.serialization.JsonArrayDeserializer"; -config["value.deserializer"] = "io.vertx.kafka.client.serialization.JsonArrayDeserializer"; -config["group.id"] = "my_group"; -config["auto.offset.reset"] = "earliest"; -config["enable.auto.commit"] = "false"; -``` - -Or in a producer - -``` js -// Creating a producer able to serialize to buffers -let config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.serializer"] = "io.vertx.kafka.client.serialization.BufferSerializer"; -config["value.serializer"] = "io.vertx.kafka.client.serialization.BufferSerializer"; -config["acks"] = "1"; - -// Creating a producer able to serialize to json object -config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.serializer"] = "io.vertx.kafka.client.serialization.JsonObjectSerializer"; -config["value.serializer"] = "io.vertx.kafka.client.serialization.JsonObjectSerializer"; -config["acks"] = "1"; - -// Creating a producer able to serialize to json array -config = {}; -config["bootstrap.servers"] = "localhost:9092"; -config["key.serializer"] = "io.vertx.kafka.client.serialization.JsonArraySerializer"; -config["value.serializer"] = "io.vertx.kafka.client.serialization.JsonArraySerializer"; -config["acks"] = "1"; -``` - -Unresolved directive in index.adoc - include::admin.adoc\[\] diff --git a/docs/manual/@vertx/kafka-client/rxjava2.md b/docs/manual/@vertx/kafka-client/rxjava2.md deleted file mode 100644 index 8b1378917..000000000 --- a/docs/manual/@vertx/kafka-client/rxjava2.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/manual/@vertx/mail-client/dataobjects.md b/docs/manual/@vertx/mail-client/dataobjects.md deleted file mode 100644 index 433fd2f4c..000000000 --- a/docs/manual/@vertx/mail-client/dataobjects.md +++ /dev/null @@ -1,70 +0,0 @@ -# MailAttachment - -Represent a mail attachment that can be used in a MailMessage. - -| | | | -| -------------- | -------- | ------------------------------------------------------ | -| Name | Type | Description | -| `@contentId` | `String` | set the Content-ID field to be used in the attachment | -| `@contentType` | `String` | set the Content-Type | -| `@data` | `Buffer` | set the data | -| `@description` | `String` | set the description field to be used in the attachment | -| `@disposition` | `String` | set the disposition field to be used in the attachment | -| `@headers` | `String` | Add an header to this attachment. | -| `@name` | `String` | set the name | - -# MailConfig - -represents the configuration of a mail service with mail server -hostname, port, security options, login options and login/password - -| | | | -| ---------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@allowRcptErrors` | `Boolean` | set if sending allows rcpt errors if true, the mail will be sent to the recipients that the server accepted, if any | -| `@authMethods` | `String` | set string of allowed auth methods. if set only these methods will be used if the server supports them. If null or empty all supported methods may be used | -| `@disableEsmtp` | `Boolean` | set if ESMTP should be tried as first command (EHLO) rfc 1869 states that clients should always attempt EHLO as first command to determine if ESMTP is supported, if this returns an error code, HELO is tried to use old SMTP. If there is a server that does not support EHLO and does not give an error code back, the connection should be closed and retried with HELO. We do not do that and rather support turning off ESMTP with a setting. The odds of this actually happening are very small since the client will not connect to arbitrary smtp hosts on the internet. Since the client knows that is connects to a host that doesn't support ESMTP/EHLO in that way, the property has to be set to false. | -| `@enabledSecureTransportProtocols` | `Array of String` | Sets the list of enabled SSL/TLS protocols. | -| `@hostname` | `String` | Set the hostname of the smtp server. | -| `@keepAlive` | `Boolean` | set if connection pool is enabled default is true if the connection pooling is disabled, the max number of sockets is enforced nevertheless | -| `@keyStore` | `String` | get the key store filename to be used when opening SMTP connections if not set, an options object will be created based on other settings (ssl and trustAll) | -| `@keyStorePassword` | `String` | get the key store password to be used when opening SMTP connections | -| `@login` | `LoginOption` | Set the login mode for the connection. Either DISABLED, OPTIONAL or REQUIRED | -| `@maxPoolSize` | `Number (int)` | set the max allowed number of open connections to the mail server if not set the default is 10 | -| `@ownHostname` | `String` | set the hostname to be used for HELO/EHLO and the Message-ID | -| `@password` | `String` | Set the password for the login. | -| `@port` | `Number (int)` | Set the port of the smtp server. | -| `@ssl` | `Boolean` | Set the sslOnConnect mode for the connection. | -| `@starttls` | `StartTLSOptions` | Set the tls security mode for the connection. Either NONE, OPTIONAL or REQUIRED | -| `@trustAll` | `Boolean` | set whether to trust all certificates on ssl connect the option is also applied to STARTTLS operation | -| `@username` | `String` | Set the username for the login. | - -# MailMessage - -represent a mail message that can be sent via the MailClient - -| | | | -| ------------------- | ------------------------- | --------------------------------------------------------------------------- | -| Name | Type | Description | -| `@attachment` | `Array of MailAttachment` | set the list of attachments of this mail | -| `@bcc` | `Array of String` | set list of bcc addresses | -| `@bounceAddress` | `String` | set bounce address of this mail | -| `@cc` | `Array of String` | set list of cc addresses | -| `@fixedHeaders` | `Boolean` | set whether our own headers should be the only headers added to the message | -| `@from` | `String` | set from address of this mail | -| `@headers` | `String` | Add a message header. | -| `@html` | `String` | set the html text of this mail | -| `@inlineAttachment` | `Array of MailAttachment` | set the list of inline attachments of this mail | -| `@subject` | `String` | set the subject of this mail | -| `@text` | `String` | set the plain text of this mail | -| `@to` | `Array of String` | set list of to addresses | - -# MailResult - -Represent the result of the sendMail operation - -| | | | -| ------------- | ----------------- | ----------- | -| Name | Type | Description | -| `@messageID` | `String` | | -| `@recipients` | `Array of String` | | diff --git a/docs/manual/@vertx/mail-client/index.md b/docs/manual/@vertx/mail-client/index.md deleted file mode 100644 index 81ac675b9..000000000 --- a/docs/manual/@vertx/mail-client/index.md +++ /dev/null @@ -1,310 +0,0 @@ -Vert.x client for sending SMTP emails via a local mail server (e.g. -postfix) or by external mail server (e.g. googlemail or aol). - -The client supports a few additional auth methods like DIGEST-MD5 and -has full support for TLS and SSL and is completely asynchronous. The -client supports connection pooling to keep connections open to be -reused. - -To use this project, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-mail-client - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-mail-client:${maven.version}' -``` - -# Creating a client - -You can send mails by creating a client that opens SMTP connections from -the local jvm. - -The client uses a configuration object, the default config is created as -empty object and will connect to localhost port 25, which should be ok -in a standard Linux environment where you have Postfix or similar mail -server running on the local machine. For all possible properties of the -config object, see below. - -The client can use a connection pool of the SMTP connections to get rid -of the overhead of connecting each time to the server, negotiating TLS -and login (this function can be turned off by setting keepAlive = -false). A client can either be shared or non-shared, if it is shared, -the same connection pool will be used for all clients using the same -identifier. - -``` js -import { MailClient } from "@vertx/mail" -let config = new MailConfig(); -let mailClient = MailClient.createShared(vertx, config, "exampleclient"); -``` - -The first call to MailClient.createShared will actually create the pool -with the specified config. Subsequent calls will return a new client -instance that uses the same pool, so the configuration won’t be used. - -If you leave out the pool identifier, a default pool will be created. -Note that the clients are shared in the scope of a vertx instance only -(so two different vertx will have different pools with the same -identifier). - -The unshared client can be created the same way leaving out the -identifier. - -``` js -import { MailClient } from "@vertx/mail" -let config = new MailConfig(); -let mailClient = MailClient.create(vertx, config); -``` - -A more elaborate example using a mailserver that requires login via TLS - -``` js -import { MailClient } from "@vertx/mail" -let config = new MailConfig(); -config.hostname = "mail.example.com"; -config.port = 587; -config.starttls = "REQUIRED"; -config.username = "user"; -config.password = "password"; -let mailClient = MailClient.create(vertx, config); -``` - -# Sending mails - -Once the client object is created, you can use it to send mails. Since -the sending of the mails works asynchronous in vert.x, the result -handler will be called when the mail operation finishes. You can start -many mail send operations in parallel, the connection pool will limit -the number of concurrent operations so that new operations will wait in -queue if no slots are available. - -A mail message is constructed as JSON. The MailMessage object has -properties from, to, cc, bcc, subject, text, html etc. Depending on -which values are set, the format of the generated MIME message will -vary. The recipient address properties can either be a single address or -a list of addresses. - -The MIME encoder supports us-ascii (7bit) headers/messages and utf8 -(usually quoted-printable) headers/messages - -``` js -let message = new MailMessage(); -message.from = "user@example.com (Example User)"; -message.to = "recipient@example.org"; -message.cc = "Another User "; -message.text = "this is the plain message text"; -message.html = "this is html text vertx.io"; -``` - -Attachments can be created by the MailAttachment object using data -stored in a Buffer, this supports base64 attachments. - -``` js -import { Buffer } from "@vertx/core" -let attachment = new MailAttachment(); -attachment.contentType = "text/plain"; -attachment.data = Buffer.buffer("attachment file"); - -message.attachment = attachment; -``` - -When using inline attachments (usually images), it is possible to -reference the images within a html message to display html with the -images included in the mail. Images can be referenced as \ in the html text, the corresponding image -has Disposition: inline and the Content-ID header as -"\". Please note that RFC 2392 requires Content-ID -values to be structured like a Message-ID with angle brackets and a -local and domain part using URL compatible encoding. None of this is not -enforced and most mail clients supports IDs without angle brackets or -without domain part, the best practice is to use the strict format. A -valid example for a Content-ID value is -"\<\>" - -``` js -import { Buffer } from "@vertx/core" -let attachment = new MailAttachment(); -attachment.contentType = "image/jpeg"; -attachment.data = Buffer.buffer("image data"); -attachment.disposition = "inline"; -attachment.contentId = ""; - -message.inlineAttachment = attachment; -``` - -When sending the mail, you can provide a AsyncResult\ -handler that will be called when the send operation is finished or it -failed. - -A mail is sent as follows: - -``` js -mailClient.sendMail(message, (result) => { - if (result.succeeded()) { - console.log(result.result()); - } else { - result.cause().printStackTrace(); - } -}); -``` - -# Mail-client data objects - -## MailMessage properties - -Email fields are Strings using the common formats for email with or -without real name - - - `username@example.com` - - - `username@example.com (Firstname Lastname)` - - - `Firstname Lastname ` - -The MailMessage object has the following properties - - - `from` String representing the From address and the MAIL FROM field - - - `to` String or list of String representing the To addresses and the - RCPT TO fields - - - `cc` same as to - - - `bcc` same as to - - - `bounceAddress` String representing the error address (MAIL FROM), - if not set from is used - - - `text` String representing the text/plain part of the mail - - - `html` String representing the text/html part of the mail - - - `attachment` MailAttachment or list of MailAttachment attachments of - the message - - - `inlineAttachment` MailAttachment or list of MailAttachment of - inline attachments of the message (usually images) - - - `headers` MultiMap representing headers to be added in addition to - the headers necessary for the MIME Message - - - `fixedHeaders` boolean if true, only the headers provided as headers - property will be set in the generated message - -the last two properties allow manipulating the generate messages with -custom headers, e.g. providing a message-id chosen by the calling -program or setting different headers than would be generated by default. -Unless you know what you are doing, this may generate invalid messages. - -## MailAttachment properties - -The MailAttachment object has the following properties - - - `data` Buffer containing the binary data of the attachment - - - `contentType` String of the Content-Type of the attachment (e.g. - text/plain or text/plain; charset="UTF8", default is - application/octet-stream) - - - `description` String describing the attachment (this is put in the - description header of the attachment), optional - - - `disposition` String describing the disposition of the attachment - (this is either "inline" or "attachment", default is attachment) - - - `name` String filename of the attachment (this is put into the - disposition and in the Content-Type headers of the attachment), - optional - - - `contentId` String describing the Content-Id of the attachment (this - is used to identify inline images), optional - - - `headers` MultiMap of headers for the attachment in addition to the - default ones, optional - -## MailConfig options - -The configuration has the following properties - - - `hostname` the hostname of the smtp server to connect to (default is - localhost) - - - `port` the port of the smtp server to connect to (default is 25) - - - `startTLS` StartTLSOptions either DISABLED, OPTIONAL or REQUIRED, - default is OPTIONAL - - - `login` LoginOption either DISABLED, NONE or REQUIRED, default is - NONE - - - `username` String of the username to be used for login (required - only when LoginOption is REQUIRED) - - - `password` String of the password to be used for login (required - only when LoginOption is REQUIRED) - - - `ssl` boolean whether to use ssl on connect to the mail server - (default is false), set this to use a port 465 ssl connection - (default is false) - - - `ehloHostname` String to used in EHLO and for creating the - message-id, if not set, the own hostname will be used, which may not - be a good choice if it doesn’t contain a FQDN or is localhost - (optional) - - - `authMethods` String space separated list of allowed auth methods, - this can be used to disallow some auth methods or define one - required auth method (optional) - - - `keepAlive` boolean if connection pooling is enabled (default is - true) - - - `maxPoolSize` int max number of open connections kept in the pool or - to be opened at one time (regardless if pooling is enabled or not), - default is 10 - - - `trustAll` boolean whether to accept all certs from the server - (default is false) - - - `keyStore` String the key store filename, this can be used to trust - a server cert that is custom generated (optional) - - - `keyStorePassword` String password used to decrypt the key store - (optional) - - - `allowRcptErrors` boolean if true, sending continues if a recipient - address is not accepted and the mail will be sent if at least one - address is accepted (default false) - - - `disableEsmtp` boolean if true, ESMTP-related commands will not be - used (set if your smtp server doesn’t even give a proper error - response code for the EHLO command) (default false) - - - `userAgent` String represents the Mail User Agent(MUA) name used to - generate email boundaries for multipart emails and message-id, - default is `vertxmail`. - -## MailResult object - -The MailResult object has the following members - - - `messageID` the Message-ID of the generated mail - - - `recipients` the list of recipients the mail was sent to (if - allowRcptErrors is true, this may be fewer than the intended - recipients) diff --git a/docs/manual/@vertx/micrometer-metrics/dataobjects.md b/docs/manual/@vertx/micrometer-metrics/dataobjects.md deleted file mode 100644 index d4b2b53bc..000000000 --- a/docs/manual/@vertx/micrometer-metrics/dataobjects.md +++ /dev/null @@ -1,92 +0,0 @@ -# Match - -A match for a value. - -| | | | -| --------- | --------------- | --------------------------------------------------------------------------- | -| Name | Type | Description | -| `@alias` | `String` | Set an alias that would replace the label value when it matches. | -| `@domain` | `MetricsDomain` | Set the label domain, restricting this rule to a single domain. | -| `@label` | `String` | Set the label name. The match will apply to the values related to this key. | -| `@type` | `MatchType` | Set the type of matching to apply. | -| `@value` | `String` | Set the matched value. | - -# MicrometerMetricsOptions - -Vert.x micrometer configuration. - -It is required to set either - -influxDbOptions - -, - -prometheusOptions - -or - -jmxMetricsOptions - -(or, programmatically, - -micrometerRegistry - -) in order to actually report metrics. - -| | | | -| ---------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@disabledMetricsCategories` | `Array of MetricsDomain` | Sets metrics types that are disabled. | -| `@enabled` | `Boolean` | Set whether metrics will be enabled on the Vert.x instance. Metrics are not enabled by default. | -| `@influxDbOptions` | `VertxInfluxDbOptions` | Set InfluxDB options. Setting a registry backend option is mandatory in order to effectively report metrics. | -| `@jmxMetricsOptions` | `VertxJmxMetricsOptions` | Set JMX metrics options. Setting a registry backend option is mandatory in order to effectively report metrics. | -| `@jvmMetricsEnabled` | `Boolean` | Whether JVM metrics should be collected. Defaults to `false`. | -| `@labelMatches` | `Array of Match` | Set a list of rules for label matching. | -| `@labelMatchs` | `Array of Match` | Add a rule for label matching. | -| `@labels` | `Array of Label` | Sets enabled labels. These labels can be fine-tuned later on using Micrometer's Meter filters (see http://micrometer.io/docs/concepts\#\_meter\_filters) | -| `@prometheusOptions` | `VertxPrometheusOptions` | Set Prometheus options. Setting a registry backend option is mandatory in order to effectively report metrics. | -| `@registryName` | `String` | Set a name for the metrics registry, so that a new registry will be created and associated with this name. If `registryName` is not provided (or null), a default registry will be used. If the same name is given to several Vert.x instances (within the same JVM), they will share the same registry. | - -# VertxInfluxDbOptions - -Vert.x InfluxDb micrometer configuration. - -| | | | -| ------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@batchSize` | `Number (int)` | Maximum number of measurements sent per request to the InfluxDB server. When the maximum is reached, several requests are made. Default is 10000. | -| `@compressed` | `Boolean` | Activate or deactivate GZIP compression. It is activated by default. | -| `@connectTimeout` | `Number (int)` | Connection timeout for InfluxDB server connections, in seconds. Default is 1 second. | -| `@db` | `String` | Database name used to store metrics. Default is "default". | -| `@enabled` | `Boolean` | Set true to enable InfluxDB reporting | -| `@numThreads` | `Number (int)` | Number of threads to use by the push scheduler. Default is 2. | -| `@password` | `String` | Password used for authenticated connections | -| `@readTimeout` | `Number (int)` | Read timeout for InfluxDB server connections, in seconds. Default is 10 seconds. | -| `@retentionPolicy` | `String` | InfluxDB retention policy | -| `@step` | `Number (int)` | Push interval steps, in seconds. Default is 10 seconds. | -| `@uri` | `String` | URI of the InfluxDB server. Example: http://influx:8086. | -| `@userName` | `String` | Username used for authenticated connections | - -# VertxJmxMetricsOptions - -Options for Prometheus metrics backend. - -| | | | -| ---------- | -------------- | ------------------------------------------------------- | -| Name | Type | Description | -| `@domain` | `String` | Set the JMX domain under which to publish metrics | -| `@enabled` | `Boolean` | Set true to enable Prometheus reporting | -| `@step` | `Number (int)` | Push interval steps, in seconds. Default is 10 seconds. | - -# VertxPrometheusOptions - -Options for Prometheus metrics backend. - -| | | | -| ------------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@embeddedServerEndpoint` | `String` | Set metrics endpoint. Use conjointly with the embedded server options. Defaults to /metrics. | -| `@embeddedServerOptions` | `HttpServerOptions` | HTTP server options for the embedded server | -| `@enabled` | `Boolean` | Set true to enable Prometheus reporting | -| `@publishQuantiles` | `Boolean` | Set true to publish histogram stats, necessary to compute quantiles. Note that it generates many new timeseries for stats, which is why it is deactivated by default. | -| `@startEmbeddedServer` | `Boolean` | When true, an embedded server will init to expose metrics with Prometheus format. | diff --git a/docs/manual/@vertx/micrometer-metrics/enums.md b/docs/manual/@vertx/micrometer-metrics/enums.md deleted file mode 100644 index c2df2868f..000000000 --- a/docs/manual/@vertx/micrometer-metrics/enums.md +++ /dev/null @@ -1,45 +0,0 @@ -# Label - -List of labels used in various Vert.x metrics. Labels that may not have -bounded values are disabled by default. - -| | | -| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `LOCAL` | Local address in client-host or host-client connections (used in net, http and datagram domains) | -| `REMOTE` | Remote address in client-host or host-client connections (used in net and http domains) | -| `HTTP_PATH` | Path of the URI for client or server requests (used in http domain) | -| `HTTP_METHOD` | Method (GET, POST, PUT, etc.) of an HTTP requests (used in http domain) | -| `HTTP_CODE` | HTTP response code (used in http domain) | -| `CLASS_NAME` | Class name. When used in error counters (in net, http, datagram and eventbus domains) it relates to an exception that occurred. When used in verticle domain, it relates to the verticle class name. | -| `EB_ADDRESS` | Event bus address | -| `EB_SIDE` | Event bus side of the metric, it can be either "local" or "remote" | -| `EB_FAILURE` | Event bus failure name from a ReplyFailure object | -| `POOL_TYPE` | Pool type, such as "worker" or "datasource" (used in pools domain) | -| `POOL_NAME` | Pool name (used in pools domain) | - -# MatchType - -The type of match. - -| | | -| -------- | ----------- | -| Name | Description | -| `EQUALS` | \- | -| `REGEX` | \- | - -# MetricsDomain - -Metric domains with their associated prefixes. - -| | | -| ----------------- | ------------------------ | -| Name | Description | -| `NET_SERVER` | Net server metrics. | -| `NET_CLIENT` | Net client metrics. | -| `HTTP_SERVER` | Http server metrics. | -| `HTTP_CLIENT` | Http client metrics. | -| `DATAGRAM_SOCKET` | Datagram socket metrics. | -| `EVENT_BUS` | Event bus metrics. | -| `NAMED_POOLS` | Named pools metrics. | -| `VERTICLES` | Verticle metrics. | diff --git a/docs/manual/@vertx/micrometer-metrics/index.md b/docs/manual/@vertx/micrometer-metrics/index.md deleted file mode 100644 index 2a256d359..000000000 --- a/docs/manual/@vertx/micrometer-metrics/index.md +++ /dev/null @@ -1,670 +0,0 @@ -This project is an implementation of the Vert.x Metrics Service Provider -Interface (SPI). It uses [Micrometer](http://micrometer.io/) for -managing metrics and reporting to several backends. - -# Features - - - Vert.x core tools monitoring: TCP/HTTP client and servers, - `DatagramSocket` , `EventBus` and pools - - - User defined metrics through Micrometer - - - Reporting to any backend supported by Micrometer - - - Built-in options for [InfluxDB](https://www.influxdata.com/), - [Prometheus](https://prometheus.io/) and JMX reporting. - -# InfluxDB - -## Prerequisites - -Follow the [instructions to get InfluxDb up and -running](https://docs.influxdata.com/influxdb/latest/introduction/getting_started/). - -## Getting started - -The modules *vertx-micrometer-metrics* and *micrometer-registry-influx* -must be present in the classpath. - -Maven users should add this to their project POM file: - -``` xml - - io.vertx - vertx-micrometer-metrics - ${maven.version} - - - io.micrometer - micrometer-registry-influx - ${micrometer.version} - -``` - -And Gradle users, to their build file: - -``` groovy -compile 'io.vertx:vertx-micrometer-metrics:${maven.version}' -compile 'io.micrometer:micrometer-registry-influx:${micrometer.version}' -``` - -## Configuration examples - -Vert.x does not enable SPI implementations by default. You must enable -metric collection in the Vert.x options. - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setInfluxDbOptions(new VertxInfluxDbOptions() - .setEnabled(true)) - .setEnabled(true))); -``` - -### Using a specific URI and database name - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setInfluxDbOptions(new VertxInfluxDbOptions() - .setEnabled(true) - .setUri("http://influxdb.example.com:8888") - .setDb("sales-department")) - .setEnabled(true))); -``` - -### With authentication - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setInfluxDbOptions(new VertxInfluxDbOptions() - .setEnabled(true) - .setUserName("username") - .setPassword("password")) - .setEnabled(true))); -``` - -# Prometheus - -## Prerequisites - -Follow the [instructions to get Prometheus up and -running](https://prometheus.io/docs/prometheus/latest/getting_started/). - -## Getting started - -The modules *vertx-micrometer-metrics* and -*micrometer-registry-prometheus* must be present in the classpath. You -may also probably need *vertx-web*, to expose the metrics. - -Maven users should add this to their project POM file: - -``` xml - - io.vertx - vertx-micrometer-metrics - ${maven.version} - - - io.micrometer - micrometer-registry-prometheus - ${micrometer.version} - -``` - -And Gradle users, to their build file: - -``` groovy -compile 'io.vertx:vertx-micrometer-metrics:${maven.version}' -compile 'io.micrometer:micrometer-registry-prometheus:${micrometer.version}' -``` - -## Configuration examples - -Vert.x does not enable SPI implementations by default. You must enable -metric collection in the Vert.x options - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setPrometheusOptions(new VertxPrometheusOptions() - .setEnabled(true)) - .setEnabled(true))); -``` - -### Using an embedded HTTP server with custom endpoint - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setPrometheusOptions(new VertxPrometheusOptions() - .setEnabled(true) - .setStartEmbeddedServer(true) - .setEmbeddedServerOptions(new HttpServerOptions() - .setPort(8080)) - .setEmbeddedServerEndpoint("/metrics/vertx")) - .setEnabled(true))); -``` - -If the embedded server endpoint is not specified, it defaults to -*/metrics*. - -### Binding metrics to an existing Vert.x Web router - -``` js -import { Vertx } from "@vertx/core" -import { Router } from "@vertx/web" -import { PrometheusScrapingHandler } from "@vertx/micrometer-metrics" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setPrometheusOptions(new VertxPrometheusOptions() - .setEnabled(true)) - .setEnabled(true))); - -// Later on, creating a router -let router = Router.router(vertx); -router.route("/metrics").handler(PrometheusScrapingHandler.create()); -vertx.createHttpServer().requestHandler(router).listen(8080); -``` - -# JMX - -## Getting started - -The modules *vertx-micrometer-metrics* and *micrometer-registry-jmx* -must be present in the classpath. - -Maven users should add this to their project POM file: - -``` xml - - io.vertx - vertx-micrometer-metrics - ${maven.version} - - - io.micrometer - micrometer-registry-jmx - ${micrometer.version} - -``` - -And Gradle users, to their build file: - -``` groovy -compile 'io.vertx:vertx-micrometer-metrics:${maven.version}' -compile 'io.micrometer:micrometer-registry-jmx:${micrometer.version}' -``` - -## Configuration examples - -Vert.x does not enable SPI implementations by default. You must enable -metric collection in the Vert.x options - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setJmxMetricsOptions(new VertxJmxMetricsOptions() - .setEnabled(true)) - .setEnabled(true))); -``` - -### With step and domain - -In Micrometer, `step` refers to the reporting period, in seconds. -`domain` is the JMX domain under which MBeans are registered. - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setJmxMetricsOptions(new VertxJmxMetricsOptions() - .setEnabled(true) - .setStep(5) - .setDomain("my.metrics.domain")) - .setEnabled(true))); -``` - -# Other backends or combinations - -Even if not all backends supported by Micrometer are implemented in -Vert.x options, it is still possible to create any Micrometer registry -and pass it to Vert.x. - -The list of available backends includes Graphite, Ganglia, Atlas, -[etc](http://micrometer.io/docs). It also enables the [Micrometer -Composite -Registry](http://micrometer.io/docs/concepts#_composite_registries) in -order to report the same metrics to multiple backends. - -In this example, metrics are reported both for JMX and Graphite: - -``` js -import { Vertx } from "@vertx/core" -let myRegistry = new (Java.type("io.micrometer.core.instrument.composite.CompositeMeterRegistry"))(); -myRegistry.add(new (Java.type("io.micrometer.jmx.JmxMeterRegistry"))((s) => { - null; -}, Java.type("io.micrometer.core.instrument.Clock").SYSTEM)); -myRegistry.add(new (Java.type("io.micrometer.graphite.GraphiteMeterRegistry"))((s) => { - null; -}, Java.type("io.micrometer.core.instrument.Clock").SYSTEM)); - -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setMicrometerRegistry(myRegistry) - .setEnabled(true))); -``` - -# Advanced usage - -Please refer to `MicrometerMetricsOptions` for an exhaustive list of -options. - -## Averages and quantiles in Prometheus - -By default, when using the Prometheus registry, histogram-kind metrics -will not contain averages or quantile stats. - -Averages don’t come out of the box but they are typically [computed at -query -time](https://prometheus.io/docs/practices/histograms/#count-and-sum-of-observations), -with `promql`. Example, for HTTP client response time average during the -last 5 minutes: - -``` - rate(vertx_http_client_responseTime_seconds_sum[5m]) -/ - rate(vertx_http_client_responseTime_seconds_count[5m]) -``` - -To compute quantiles, there are two options available. The first is to -activate quantile stats globally and make them usable for Prometheus -function `histogram_quantile`: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setPrometheusOptions(new VertxPrometheusOptions() - .setEnabled(true) - .setPublishQuantiles(true)) - .setEnabled(true))); -``` - -And then, for example the `promql` query for the HTTP client response -time, 99th percentile over the last 5 minutes: - -``` - histogram_quantile(0.99, sum(rate(vertx_http_client_responseTime_seconds_bucket[5m])) by (le)) -``` - -The advantage of this option is that it can be leveraged in `promql`, -aggregable across dimensions. The downside is that it creates a lot of -timeseries for stats under the hood. - -The second option is to create limited stats, non-aggregable across -dimensions. It requires to access directly the Micrometer / Prometheus -registry: - -``` js -let registry = Java.type("io.vertx.micrometer.backends.BackendRegistries").getDefaultNow(); -registry.config().meterFilter(new (Java.type("io.micrometer.core.instrument.config.MeterFilter"))()); -``` - -See also, more on histograms and percentiles: - - - from [Micrometer - doc](https://micrometer.io/docs/concepts#_histograms_and_percentiles) - - - from [Prometheus - doc](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram_quantile) - -Furthermore, you can check some [full working -examples](https://github.com/vert-x3/vertx-examples/tree/master/micrometer-metrics-examples). -They come along with few instructions to setup with Prometheus and view -dashboards in Grafana. - -## Disable some metric domains - -Restricting the Vert.x modules being monitored can be done using -`disabledMetricsCategories`. - -For a full list of domains, see `MetricsDomain` - -## User-defined metrics - -The Micrometer registries are accessible, in order to create new metrics -or fetch the existing ones. By default, an unique registry is used and -will be shared across the Vert.x instances of the JVM: - -``` js -let registry = Java.type("io.vertx.micrometer.backends.BackendRegistries").getDefaultNow(); -``` - -It is also possible to have separate registries per Vertx instance, by -giving a registry name in metrics options. Then it can be retrieved -specifically: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setInfluxDbOptions(new VertxInfluxDbOptions() - .setEnabled(true)) - .setRegistryName("my registry") - .setEnabled(true))); - -// Later on: -let registry = Java.type("io.vertx.micrometer.backends.BackendRegistries").getNow("my registry"); -``` - -As an example, here is a custom timer that will track the execution time -of a piece of code that is regularly called: - -``` js -let registry = Java.type("io.vertx.micrometer.backends.BackendRegistries").getDefaultNow(); -let timer = Java.type("io.micrometer.core.instrument.Timer").builder("my.timer").description("a description of what this timer does").register(registry); - -vertx.setPeriodic(1000, (l) => { - timer.record(() => { - // Running here some operation to monitor - }); -}); -``` - -For more examples, documentation about the Micrometer registry and how -to create metrics, check [Micrometer -doc](http://micrometer.io/docs/concepts#_registry). - -## Reusing an existing registry - -It is possible to reuse an existing Micrometer registry (or -`CollectorRegistry` from the Prometheus Java client), and inject it into -the Vert.x metrics options: - -``` js -import { Vertx } from "@vertx/core" -// This registry might be used to collect metrics other than Vert.x ones -let registry = new (Java.type("io.micrometer.prometheus.PrometheusMeterRegistry"))(Java.type("io.micrometer.prometheus.PrometheusConfig").DEFAULT); - -// You could also reuse an existing registry from the Prometheus Java client: -let prometheusClientRegistry = new (Java.type("io.prometheus.client.CollectorRegistry"))(); -registry = new (Java.type("io.micrometer.prometheus.PrometheusMeterRegistry"))(Java.type("io.micrometer.prometheus.PrometheusConfig").DEFAULT, prometheusClientRegistry, Java.type("io.micrometer.core.instrument.Clock").SYSTEM); - -// It's reused in MicrometerMetricsOptions. -// Prometheus options configured here, such as "setPublishQuantiles(true)", will affect the whole registry. -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setPrometheusOptions(new VertxPrometheusOptions() - .setEnabled(true) - .setPublishQuantiles(true)) - .setMicrometerRegistry(registry) - .setEnabled(true))); -``` - -## JVM or other instrumentations - -Since plain access to Micrometer registries is provided, it is possible -to leverage the Micrometer API. For instance, to instrument the JVM: - -``` js -let registry = Java.type("io.vertx.micrometer.backends.BackendRegistries").getDefaultNow(); - -new (Java.type("io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics"))().bindTo(registry); -new (Java.type("io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics"))().bindTo(registry); -new (Java.type("io.micrometer.core.instrument.binder.jvm.JvmGcMetrics"))().bindTo(registry); -new (Java.type("io.micrometer.core.instrument.binder.system.ProcessorMetrics"))().bindTo(registry); -new (Java.type("io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics"))().bindTo(registry); -``` - -*From [Micrometer documentation](http://micrometer.io/docs/ref/jvm).* - -## Labels and matchers - -Vert.x Micrometer Metrics defines a set of labels (aka tags or fields) -that are used to provide dimensionality to a metric. For instance, -metrics related to event bus messages have an *address* label, which -allows then to query timeseries for a specific event bus address, or -compare timeseries per address, or perform any kind of aggregation that -the query API allows. - -While setting up metrics options, you can specify which labels you want -to enable or not: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setPrometheusOptions(new VertxPrometheusOptions() - .setEnabled(true)) - .setLabels(Java.type("java.util.EnumSet").of(Label.REMOTE, Label.LOCAL, Label.HTTP_CODE, Label.HTTP_PATH)) - .setEnabled(true))); -``` - -The full list of labels is detailed here: `Label`. - -> **Warning** -> -> Enabling labels may result in a high cardinality in values, which can -> cause troubles on the metrics backend and affect performances. So it -> must be used with care. In general, it is fine to enable labels when -> the set of possible values is bounded. - -For that reason, labels enabled by default are restricted to the ones -with known bounded values. - -It is possible to interact with labels further than just -enabling/disabling. There are two ways for that: - -### Using Matchers - -`Match` objects can be used to filter or rename some label value by -matching it with either an exact string or a regular expression (the -former being more efficient). - -Here is an example to restrict HTTP server metrics to those with label -*local=localhost:8080* only: - -``` js -import { Vertx } from "@vertx/core" -let vertx = Vertx.vertx(new VertxOptions() - .setMetricsOptions(new MicrometerMetricsOptions() - .setPrometheusOptions(new VertxPrometheusOptions() - .setEnabled(true)) - .setLabelMatchs([new Match() - .setDomain("HTTP_SERVER") - .setLabel("local") - .setValue("localhost:8080")]) - .setEnabled(true))); -``` - -When an *alias* is specified in the Match, it will be used to rename -value instead of filtering. - -Matchers are especially useful to control labelling through -configuration as they are set via `MicrometerMetricsOptions`. - -### Using Micrometer’s MeterFilter - -Micrometer’s [MeterFilter -API](http://micrometer.io/docs/concepts#_meter_filters) can be accessed -directly in order to define rules on labels. Compared to Matchers, it -offers more features in manipulating the labels, but cannot be defined -from configuration. So both have their advantages. - -Here is an example to replace the actual `path` label of HTTP requests -with a generic form using regex: - -``` js -let registry = Java.type("io.vertx.micrometer.backends.BackendRegistries").getDefaultNow(); -let pattern = Java.type("java.util.regex.Pattern").compile("/foo/bar/.*"); - -registry.config().meterFilter(Java.type("io.micrometer.core.instrument.config.MeterFilter").replaceTagValues(Label.HTTP_PATH.toString(), (actualPath) => { - let m = pattern.matcher(actualPath); - if (m.matches()) { - return "/foo/bar/:id" - } - return actualPath -}, "")); -``` - -> **Note** -> -> Matchers use MeterFilters under the hood. - -## Snapshots - -A `MetricsService` can be created out of a `Measured` object in order to -take a snapshot of its related metrics and measurements. The snapshot is -returned as a `JsonObject`. - -A well known *Measured* object is simply `Vertx`: - -``` js -import { MetricsService } from "@vertx/micrometer-metrics" -let metricsService = MetricsService.create(vertx); -let metrics = metricsService.getMetricsSnapshot(); -console.log(metrics); -``` - -Other components, such as an `EventBus` or a `HttpServer` are -measurable: - -``` js -import { MetricsService } from "@vertx/micrometer-metrics" -let server = vertx.createHttpServer(); -let metricsService = MetricsService.create(server); -let metrics = metricsService.getMetricsSnapshot(); -console.log(metrics); -``` - -Finally it is possible to filter the returned metrics from their base -names: - -``` js -import { MetricsService } from "@vertx/micrometer-metrics" -let metricsService = MetricsService.create(vertx); -// Client + server -let metrics = metricsService.getMetricsSnapshot("vertx.http"); -console.log(metrics); -``` - -# Vert.x core tools metrics - -This section lists all the metrics generated by monitoring the Vert.x -core tools. - -> **Note** -> -> The metric backends may have different conventions or rules for naming -> metrics. The names described below are given with underscore -> separators, but the actual names may vary depending on the backend -> used. - -## Net Client - -| Metric name | Labels | Type | Description | -| -------------------------------- | -------------------------- | ------- | ---------------------------------------------------------- | -| `vertx_net_client_connections` | `local`, `remote` | Gauge | Number of connections to the remote host currently opened. | -| `vertx_net_client_bytesReceived` | `local`, `remote` | Summary | Number of bytes received from the remote host. | -| `vertx_net_client_bytesSent` | `local`, `remote` | Summary | Number of bytes sent to the remote host. | -| `vertx_net_client_errors` | `local`, `remote`, `class` | Counter | Number of errors. | - -## HTTP Client - -| Metric name | Labels | Type | Description | -| --------------------------------- | ------------------------------------------- | ------- | ---------------------------------------------------------- | -| `vertx_http_client_connections` | `local`, `remote` | Gauge | Number of connections to the remote host currently opened. | -| `vertx_http_client_bytesReceived` | `local`, `remote` | Summary | Number of bytes received from the remote host. | -| `vertx_http_client_bytesSent` | `local`, `remote` | Summary | Number of bytes sent to the remote host. | -| `vertx_http_client_errors` | `local`, `remote`, `class` | Counter | Number of errors. | -| `vertx_http_client_requests` | `local`, `remote`, `path`, `method` | Gauge | Number of requests waiting for a response. | -| `vertx_http_client_requestCount` | `local`, `remote`, `path`, `method` | Counter | Number of requests sent. | -| `vertx_http_client_responseTime` | `local`, `remote`, `path`, `method`, `code` | Timer | Response time. | -| `vertx_http_client_responseCount` | `local`, `remote`, `path`, `method`, `code` | Counter | Number of received responses. | -| `vertx_http_client_wsConnections` | `local`, `remote` | Gauge | Number of websockets currently opened. | - -## Net Server - -| Metric name | Labels | Type | Description | -| -------------------------------- | -------------------------- | ------- | ----------------------------------------------- | -| `vertx_net_server_connections` | `local`, `remote` | Gauge | Number of opened connections to the Net Server. | -| `vertx_net_server_bytesReceived` | `local`, `remote` | Summary | Number of bytes received by the Net Server. | -| `vertx_net_server_bytesSent` | `local`, `remote` | Summary | Number of bytes sent by the Net Server. | -| `vertx_net_server_errors` | `local`, `remote`, `class` | Counter | Number of errors. | - -## HTTP Server - -| Metric name | Labels | Type | Description | -| ------------------------------------- | ------------------------------------------- | ------- | ------------------------------------------------ | -| `vertx_http_server_connections` | `local`, `remote` | Gauge | Number of opened connections to the HTTP Server. | -| `vertx_http_server_bytesReceived` | `local`, `remote` | Summary | Number of bytes received by the HTTP Server. | -| `vertx_http_server_bytesSent` | `local`, `remote` | Summary | Number of bytes sent by the HTTP Server. | -| `vertx_http_server_errors` | `local`, `remote`, `class` | Counter | Number of errors. | -| `vertx_http_server_requests` | `local`, `remote`, `path`, `method` | Gauge | Number of requests being processed. | -| `vertx_http_server_requestCount` | `local`, `remote`, `path`, `method`, `code` | Counter | Number of processed requests. | -| `vertx_http_server_requestResetCount` | `local`, `remote`, `path`, `method` | Counter | Number of requests reset. | -| `vertx_http_server_processingTime` | `local`, `remote`, `path`, `method`, `code` | Timer | Request processing time. | -| `vertx_http_client_wsConnections` | `local`, `remote` | Gauge | Number of websockets currently opened. | - -## Datagram socket - -| Metric name | Labels | Type | Description | -| ------------------------------ | ------- | ------- | ------------------------------------------------------------------------ | -| `vertx_datagram_bytesReceived` | `local` | Summary | Total number of bytes received on the `:` listening address. | -| `vertx_datagram_bytesSent` | (none) | Summary | Total number of bytes sent to the remote host. | -| `vertx_datagram_errors` | `class` | Counter | Total number of errors. | - -## Event Bus - -| Metric name | Labels | Type | Description | -| ------------------------------- | ------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `vertx_eventbus_handlers` | `address` | Gauge | Number of event bus handlers in use. | -| `vertx_eventbus_errors` | `address`,`class` | Counter | Number of errors. | -| `vertx_eventbus_bytesWritten` | `address` | Summary | Total number of bytes sent while sending messages to event bus cluster peers. | -| `vertx_eventbus_bytesRead` | `address` | Summary | Total number of bytes received while reading messages from event bus cluster peers. | -| `vertx_eventbus_pending` | `address`,`side` (local/remote) | Gauge | Number of messages not processed yet. One message published will count for `N` pending if `N` handlers are registered to the corresponding address. | -| `vertx_eventbus_published` | `address`,`side` (local/remote) | Counter | Number of messages published (publish / subscribe). | -| `vertx_eventbus_discarded` | `address`,`side` (local/remote) | Counter | Number of discarded messages (e.g. still pending messages while handler is unregistered, or overflowing messages). | -| `vertx_eventbus_sent` | `address`,`side` (local/remote) | Counter | Number of messages sent (point-to-point). | -| `vertx_eventbus_received` | `address`,`side` (local/remote) | Counter | Number of messages received. | -| `vertx_eventbus_delivered` | `address`,`side` (local/remote) | Counter | Number of messages delivered to handlers. | -| `vertx_eventbus_replyFailures` | `address`,`failure` | Counter | Number of message reply failures. | -| `vertx_eventbus_processingTime` | `address` | Timer | Processing time for handlers listening to the `address`. | - -# Vert.x pool metrics - -This section lists all the metrics generated by monitoring Vert.x pools. - -There are two types currently supported: - - - *worker* (see `WorkerExecutor`) - - - *datasource* (created with Vert.x JDBC client) - -> **Note** -> -> Vert.x creates two worker pools upfront, *worker-thread* and -> *internal-blocking*. - -| Metric name | Labels | Type | Description | -| ------------------------ | ----------------------- | ------- | ------------------------------------------------------------------------------------------------- | -| `vertx_pool_queue_delay` | `pool_type`,`pool_name` | Timer | Time waiting for a resource (queue time). | -| `vertx_pool_queue_size` | `pool_type`,`pool_name` | Gauge | Number of elements waiting for a resource. | -| `vertx_pool_usage` | `pool_type`,`pool_name` | Timer | Time using a resource (i.e. processing time for worker pools). | -| `vertx_pool_inUse` | `pool_type`,`pool_name` | Gauge | Number of resources used. | -| `vertx_pool_completed` | `pool_type`,`pool_name` | Counter | Number of elements done with the resource (i.e. total number of tasks executed for worker pools). | -| `vertx_pool_ratio` | `pool_type`,`pool_name` | Gauge | Pool usage ratio, only present if maximum pool size could be determined. | - -# Verticle metrics - -| Metric name | Labels | Type | Description | -| ------------------------- | ------ | ----- | -------------------------------------- | -| `vertx_verticle_deployed` | `name` | Gauge | Number of verticle instances deployed. | diff --git a/docs/manual/@vertx/mongo-client/dataobjects.md b/docs/manual/@vertx/mongo-client/dataobjects.md deleted file mode 100644 index 50087c69d..000000000 --- a/docs/manual/@vertx/mongo-client/dataobjects.md +++ /dev/null @@ -1,194 +0,0 @@ -# AggregateOptions - -Options used to configure aggregate operations. - -| | | | -| --------------- | --------------- | ---------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@allowDiskUse` | `Boolean` | Set the flag if writing to temporary files is enabled. | -| `@batchSize` | `Number (int)` | Set the batch size for methods loading found data in batches. | -| `@maxAwaitTime` | `Number (long)` | The maximum amount of time for the server to wait on new documents to satisfy a $changeStream aggregation. | -| `@maxTime` | `Number (long)` | Set the time limit in milliseconds for processing operations on a cursor. | - -# BulkOperation - -Contains all data needed for one operation of a bulk write operation. - -| | | | -| ----------- | ------------------- | ------------------------------------------------------------------------ | -| Name | Type | Description | -| `@document` | `Json object` | Sets the document, used by insert, replace, and update operations | -| `@filter` | `Json object` | Sets the filter document, used by replace, update, and delete operations | -| `@multi` | `Boolean` | Sets the multi flag, used by update and delete operations | -| `@type` | `BulkOperationType` | Sets the operation type | -| `@upsert` | `Boolean` | Sets the upsert flag, used by update and replace operations | - -# BulkWriteOptions - -Options for configuring bulk write operations. - -| | | | -| -------------- | ------------- | ---------------------- | -| Name | Type | Description | -| `@ordered` | `Boolean` | Set the ordered option | -| `@writeOption` | `WriteOption` | Set the write option | - -# FindOptions - -Options used to configure find operations. - -| | | | -| ------------ | -------------- | ------------------------------------------------------------- | -| Name | Type | Description | -| `@batchSize` | `Number (int)` | Set the batch size for methods loading found data in batches. | -| `@fields` | `Json object` | Set the fields | -| `@limit` | `Number (int)` | Set the limit | -| `@skip` | `Number (int)` | Set the skip | -| `@sort` | `Json object` | Set the sort document | - -# IndexOptions - -Options used to configure index. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@background

Boolean

Create the index in the background

@bits

Number (Integer)

Gets the number of precision of the stored geohash value of the location data in 2d indexes.

@bucketSize

Number (Double)

Gets the specified the number of units within which to group the location values for geoHaystack Indexes

@defaultLanguage

String

Gets the language for a text index.

-

The language that determines the list of stop words and the rules for the stemmer and tokenizer.

@languageOverride

String

Gets the name of the field that contains the language string.

-

For text indexes, the name of the field, in the collection's documents, that contains the override language for the document.

@max

Number (Double)

Gets the upper inclusive boundary for the longitude and latitude values for 2d indexes..

@min

Number (Double)

Gets the lower inclusive boundary for the longitude and latitude values for 2d indexes..

@name

String

Gets the name of the index.

@partialFilterExpression

Json object

Get the filter expression for the documents to be included in the index or null if not set

@sparse

Boolean

If true, the index only references documents with the specified field

@sphereVersion

Number (Integer)

Gets the 2dsphere index version number.

@storageEngine

Json object

Gets the storage engine options document for this index.

@textVersion

Number (Integer)

The text index version number.

@unique

Boolean

Gets if the index should be unique.

@version

Number (Integer)

Gets the index version number.

@weights

Json object

Gets the weighting object for use with a text index

-

A document that represents field and weight pairs. The weight is an integer ranging from 1 to 99,999 and denotes the significance of the field relative to the other indexed fields in terms of the score.

- -# MongoClientBulkWriteResult - -Result propagated from mongodb driver bulk write result. - -| | | | -| ---------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@deletedCount` | `Number (long)` | Returns the number of deleted documents | -| `@insertedCount` | `Number (long)` | Returns the number of inserted documents | -| `@matchedCount` | `Number (long)` | Returns the number of matched documents | -| `@modifiedCount` | `Number (long)` | Returns the number of modified documents | -| `@upserts` | `Array of Json object` | An unmodifiable list of upsert data. Each entry has the index of the request that lead to the upsert, and the generated ID of the upsert. | - -# MongoClientDeleteResult - -Result propagated from mongodb driver delete result. - -| | | | -| --------------- | --------------- | ----------------------------------- | -| Name | Type | Description | -| `@removedCount` | `Number (long)` | Get the number of removed documents | - -# MongoClientUpdateResult - -Result propagated from mongodb driver update result. - -| | | | -| ---------------- | --------------- | -------------------------------------------- | -| Name | Type | Description | -| `@docMatched` | `Number (long)` | Get the number of documents that're matched | -| `@docModified` | `Number (long)` | Get the number of documents that're modified | -| `@docUpsertedId` | `Json object` | Get the document id that's upserted | - -# UpdateOptions - -Options for configuring updates. - -| | | | -| ----------------------- | ------------- | --------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@multi` | `Boolean` | Set whether multi is enabled | -| `@returningNewDocument` | `Boolean` | Set whether new document property is enabled. Valid only on findOneAnd\* methods. | -| `@upsert` | `Boolean` | Set whether upsert is enabled | -| `@writeOption` | `WriteOption` | Set the write option | diff --git a/docs/manual/@vertx/mongo-client/index.md b/docs/manual/@vertx/mongo-client/index.md deleted file mode 100644 index 8f5c542df..000000000 --- a/docs/manual/@vertx/mongo-client/index.md +++ /dev/null @@ -1,980 +0,0 @@ -A Vert.x client allowing applications to interact with a MongoDB -instance, whether that’s saving, retrieving, searching, or deleting -documents. Mongo is a great match for persisting data in a Vert.x -application as it natively handles JSON (BSON) documents. - -**Features** - - - Completely non-blocking - - - Custom codec to support fast serialization to/from Vert.x JSON - - - Supports a majority of the configuration options from the MongoDB - Java Driver - -This client is based on the [MongoDB Async -Driver](http://mongodb.github.io/mongo-java-driver/3.2/driver-async/getting-started). - -# Using Vert.x MongoDB Client - -To use this project, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-mongo-client - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-mongo-client:${maven.version}' -``` - -# Creating a client - -You can create a client in several ways: - -## Using the default shared pool - -In most cases you will want to share a pool between different client -instances. - -E.g. you scale your application by deploying multiple instances of your -verticle and you want each verticle instance to share the same pool so -you don’t end up with multiple pools - -The simplest way to do this is as follows: - -``` js -import { MongoClient } from "@vertx/mongo-client" -let client = MongoClient.createShared(vertx, config); -``` - -The first call to `MongoClient.createShared` will actually create the -pool, and the specified config will be used. - -Subsequent calls will return a new client instance that uses the same -pool, so the configuration won’t be used. - -## Specifying a pool source name - -You can create a client specifying a pool source name as follows - -``` js -import { MongoClient } from "@vertx/mongo-client" -let client = MongoClient.createShared(vertx, config, "MyPoolName"); -``` - -If different clients are created using the same Vert.x instance and -specifying the same pool name, they will share the same pool. - -The first call to `MongoClient.createShared` will actually create the -pool, and the specified config will be used. - -Subsequent calls will return a new client instance that uses the same -pool, so the configuration won’t be used. - -Use this way of creating if you wish different groups of clients to have -different pools, e.g. they’re interacting with different databases. - -## Creating a client with a non shared data pool - -In most cases you will want to share a pool between different client -instances. However, it’s possible you want to create a client instance -that doesn’t share its pool with any other client. - -In that case you can use `MongoClient.create`. - -``` js -import { MongoClient } from "@vertx/mongo-client" -let client = MongoClient.create(vertx, config); -``` - -This is equivalent to calling `MongoClient.createShared` with a unique -pool name each time. - -# Using the API - -The client API is represented by `MongoClient`. - -## Saving documents - -To save a document you use `save`. - -If the document has no `\_id` field, it is inserted, otherwise, it is -*upserted*. Upserted means it is inserted if it doesn’t already exist, -otherwise it is updated. - -If the document is inserted and has no id, then the id field generated -will be returned to the result handler. - -Here’s an example of saving a document and getting the id back - -``` js -// Document has no id -let document = { - "title" : "The Hobbit" -}; -mongoClient.save("books", document, (res) => { - if (res.succeeded()) { - let id = res.result(); - console.log("Saved book with id " + id); - } else { - res.cause().printStackTrace(); - } -}); -``` - -And here’s an example of saving a document which already has an id. - -``` js -// Document has an id already -let document = { - "title" : "The Hobbit", - "_id" : "123244" -}; -mongoClient.save("books", document, (res) => { - if (res.succeeded()) { - // ... - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Inserting documents - -To insert a document you use `insert`. - -If the document is inserted and has no id, then the id field generated -will be returned to the result handler. - -``` js -// Document has an id already -let document = { - "title" : "The Hobbit" -}; -mongoClient.insert("books", document, (res) => { - if (res.succeeded()) { - let id = res.result(); - console.log("Inserted book with id " + id); - } else { - res.cause().printStackTrace(); - } -}); -``` - -If a document is inserted with an id, and a document with that id -already exists, the insert will fail: - -``` js -// Document has an id already -let document = { - "title" : "The Hobbit", - "_id" : "123244" -}; -mongoClient.insert("books", document, (res) => { - if (res.succeeded()) { - //... - } else { - // Will fail if the book with that id already exists. - } -}); -``` - -## Updating documents - -To update a documents you use `updateCollection`. - -This updates one or multiple documents in a collection. The json object -that is passed in the `updateCollection` parameter must contain [Update -Operators](http://docs.mongodb.org/manual/reference/operator/update-field/) -and determines how the object is updated. - -The json object specified in the query parameter determines which -documents in the collection will be updated. - -Here’s an example of updating a document in the books collection: - -``` js -// Match any documents with title=The Hobbit -let query = { - "title" : "The Hobbit" -}; -// Set the author field -let update = { - "$set" : { - "author" : "J. R. R. Tolkien" - } -}; -mongoClient.updateCollection("books", query, update, (res) => { - if (res.succeeded()) { - console.log("Book updated !"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -To specify if the update should upsert or update multiple documents, use -`updateCollectionWithOptions` and pass in an instance of -`UpdateOptions`. - -This has the following fields: - - - `multi` - set to true to update multiple documents - - - `upsert` - set to true to insert the document if the query doesn’t match - - - `writeConcern` - the write concern for this operation - - - -``` js -// Match any documents with title=The Hobbit -let query = { - "title" : "The Hobbit" -}; -// Set the author field -let update = { - "$set" : { - "author" : "J. R. R. Tolkien" - } -}; -let options = new UpdateOptions() - .setMulti(true); -mongoClient.updateCollectionWithOptions("books", query, update, options, (res) => { - if (res.succeeded()) { - console.log("Book updated !"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Replacing documents - -To replace documents you use `replaceDocuments`. - -This is similar to the update operation, however it does not take any -operator. Instead it replaces the entire document with the one provided. - -Here’s an example of replacing a document in the books collection - -``` js -let query = { - "title" : "The Hobbit" -}; -let replace = { - "title" : "The Lord of the Rings", - "author" : "J. R. R. Tolkien" -}; -mongoClient.replaceDocuments("books", query, replace, (res) => { - if (res.succeeded()) { - console.log("Book replaced !"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Bulk operations - -To execute multiple insert, update, replace, or delete operations at -once, use `bulkWrite`. - -You can pass a list of `BulkOperations`, with each working similar to -the matching single operation. You can pass as many operations, even of -the same type, as you wish. - -To specify if the bulk operation should be executed in order, and with -what write option, use `bulkWriteWithOptions` and pass an instance of -`BulkWriteOptions`. For more explanation what ordered means, see -[Execution of -Operations](https://docs.mongodb.com/manual/reference/method/db.collection.bulkWrite/#execution-of-operations). - -## Finding documents - -To find documents you use `find`. - -The `query` parameter is used to match the documents in the collection. - -Here’s a simple example with an empty query that will match all books: - -``` js -// empty query = match any -let query = { -}; -mongoClient.find("books", query, (res) => { - if (res.succeeded()) { - res.result().forEach(json => { - console.log(JSON.stringify(json)); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Here’s another example that will match all books by Tolkien: - -``` js -// will match all Tolkien books -let query = { - "author" : "J. R. R. Tolkien" -}; -mongoClient.find("books", query, (res) => { - if (res.succeeded()) { - res.result().forEach(json => { - console.log(JSON.stringify(json)); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -The matching documents are returned as a list of json objects in the -result handler. - -To specify things like what fields to return, how many results to -return, etc use `findWithOptions` and pass in the an instance of -`FindOptions`. - -This has the following fields: - - - `fields` - The fields to return in the results. Defaults to `null`, meaning all - fields will be returned - - - `sort` - The fields to sort by. Defaults to `null`. - - - `limit` - The limit of the number of results to return. Default to `-1`, - meaning all results will be returned. - - - `skip` - The number of documents to skip before returning the results. - Defaults to `0`. - -## Finding documents in batches - -When dealing with large data sets, it is not advised to use the `find` -and `findWithOptions` methods. In order to avoid inflating the whole -response into memory, use `findBatch`: - -``` js -// will match all Tolkien books -let query = { - "author" : "J. R. R. Tolkien" -}; -mongoClient.findBatch("book", query).exceptionHandler((throwable) => { - throwable.printStackTrace(); -}).endHandler((v) => { - console.log("End of research"); -}).handler((doc) => { - console.log("Found doc: " + JSON.stringify(doc)); -}); -``` - -The matching documents are emitted one by one by the `ReadStream` -handler. - -`FindOptions` has an extra parameter `batchSize` which you can use to -set the number of documents to load at once: - -``` js -// will match all Tolkien books -let query = { - "author" : "J. R. R. Tolkien" -}; -let options = new FindOptions() - .setBatchSize(100); -mongoClient.findBatchWithOptions("book", query, options).exceptionHandler((throwable) => { - throwable.printStackTrace(); -}).endHandler((v) => { - console.log("End of research"); -}).handler((doc) => { - console.log("Found doc: " + JSON.stringify(doc)); -}); -``` - -By default, `batchSize` is set to 20. - -## Finding a single document - -To find a single document you use `findOne`. - -This works just like `find` but it returns just the first matching -document. - -## Removing documents - -To remove documents use `removeDocuments`. - -The `query` parameter is used to match the documents in the collection -to determine which ones to remove. - -Here’s an example of removing all Tolkien books: - -``` js -let query = { - "author" : "J. R. R. Tolkien" -}; -mongoClient.removeDocuments("books", query, (res) => { - if (res.succeeded()) { - console.log("Never much liked Tolkien stuff!"); - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Removing a single document - -To remove a single document you use `removeDocument`. - -This works just like `removeDocuments` but it removes just the first -matching document. - -## Counting documents - -To count documents use `count`. - -Here’s an example that counts the number of Tolkien books. The number is -passed to the result handler. - -``` js -let query = { - "author" : "J. R. R. Tolkien" -}; -mongoClient.count("books", query, (res) => { - if (res.succeeded()) { - let num = res.result(); - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Managing MongoDB collections - -All MongoDB documents are stored in collections. - -To get a list of all collections you can use `getCollections` - -``` js -mongoClient.getCollections((res) => { - if (res.succeeded()) { - let collections = res.result(); - } else { - res.cause().printStackTrace(); - } -}); -``` - -To create a new collection you can use `createCollection` - -``` js -mongoClient.createCollection("mynewcollectionr", (res) => { - if (res.succeeded()) { - // Created ok! - } else { - res.cause().printStackTrace(); - } -}); -``` - -To drop a collection you can use `dropCollection` - -> **Note** -> -> Dropping a collection will delete all documents within it\! - -``` js -mongoClient.dropCollection("mynewcollectionr", (res) => { - if (res.succeeded()) { - // Dropped ok! - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Running other MongoDB commands - -You can run arbitrary MongoDB commands with `runCommand`. - -Commands can be used to run more advanced MongoDB features, such as -using MapReduce. For more information see the mongo docs for supported -[Commands](http://docs.mongodb.org/manual/reference/command). - -Here’s an example of running an aggregate command. Note that the command -name must be specified as a parameter and also be contained in the JSON -that represents the command. This is because JSON is not ordered but -BSON is ordered and MongoDB expects the first BSON entry to be the name -of the command. In order for us to know which of the entries in the JSON -is the command name it must be specified as a parameter. - -``` js -let command = { - "aggregate" : "collection_name", - "pipeline" : [ - ] -}; -mongoClient.runCommand("aggregate", command, (res) => { - if (res.succeeded()) { - let resArr = res.result().result; - // etc - } else { - res.cause().printStackTrace(); - } -}); -``` - -## MongoDB Extended JSON support - -For now, only `date`, `oid` and `binary` types are supported (see -[MongoDB Extended -JSON](http://docs.mongodb.org/manual/reference/mongodb-extended-json)). - -Here’s an example of inserting a document with a `date` field: - -``` js -let document = { - "title" : "The Hobbit", - "publicationDate" : { - "$date" : "1937-09-21T00:00:00+00:00" - } -}; -mongoService.save("publishedBooks", document, (res) => { - if (res.succeeded()) { - let id = res.result(); - mongoService.findOne("publishedBooks", { - "_id" : id - }, null, (res2) => { - if (res2.succeeded()) { - console.log("To retrieve ISO-8601 date : " + res2.result().publicationDate.$date); - } else { - res2.cause().printStackTrace(); - } - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Here’s an example (in Java) of inserting a document with a binary field -and reading it back - -``` js -byte[] binaryObject = new byte[40]; -JsonObject document = new JsonObject() - .put("name", "Alan Turing") - .put("binaryStuff", new JsonObject().put("$binary", binaryObject)); -mongoService.save("smartPeople", document, res -> { - if (res.succeeded()) { - String id = res.result(); - mongoService.findOne("smartPeople", new JsonObject().put("_id", id), null, res2 -> { - if (res2.succeeded()) { - byte[] reconstitutedBinaryObject = res2.result().getJsonObject("binaryStuff").getBinary("$binary"); - //This could now be de-serialized into an object in real life - } else { - res2.cause().printStackTrace(); - } - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Here’s an example of inserting a base 64 encoded string, typing it as -binary a binary field, and reading it back - -``` js -//This could be a the byte contents of a pdf file, etc converted to base 64 -let base64EncodedString = "a2FpbHVhIGlzIHRoZSAjMSBiZWFjaCBpbiB0aGUgd29ybGQ="; -let document = { - "name" : "Alan Turing", - "binaryStuff" : { - "$binary" : base64EncodedString - } -}; -mongoService.save("smartPeople", document, (res) => { - if (res.succeeded()) { - let id = res.result(); - mongoService.findOne("smartPeople", { - "_id" : id - }, null, (res2) => { - if (res2.succeeded()) { - let reconstitutedBase64EncodedString = res2.result().binaryStuff.$binary; - //This could now converted back to bytes from the base 64 string - } else { - res2.cause().printStackTrace(); - } - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Here’s an example of inserting an object ID and reading it back - -``` js -let individualId = new (Java.type("org.bson.types.ObjectId"))().toHexString(); -let document = { - "name" : "Stephen Hawking", - "individualId" : { - "$oid" : individualId - } -}; -mongoService.save("smartPeople", document, (res) => { - if (res.succeeded()) { - let id = res.result(); - let query = { - "_id" : id - }; - mongoService.findOne("smartPeople", query, null, (res2) => { - if (res2.succeeded()) { - let reconstitutedIndividualId = res2.result().individualId.$oid; - } else { - res2.cause().printStackTrace(); - } - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -## Getting distinct values - -Here’s an example of getting distinct value - -``` js -let document = { - "title" : "The Hobbit" -}; -mongoClient.save("books", document, (res) => { - if (res.succeeded()) { - mongoClient.distinct("books", "title", Java.type("java.lang.String").class.getName(), (res2) => { - console.log("Title is : " + res2.result()[0]); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - -Here’s an example of getting distinct value in batch mode - -``` js -let document = { - "title" : "The Hobbit" -}; -mongoClient.save("books", document, (res) => { - if (res.succeeded()) { - mongoClient.distinctBatch("books", "title", Java.type("java.lang.String").class.getName()).handler((book) => { - console.log("Title is : " + book.title); - }); - } else { - res.cause().printStackTrace(); - } -}); -``` - - - Here’s an example of getting distinct value with query - - - -``` js -let document = { - "title" : "The Hobbit", - "publicationDate" : { - "$date" : "1937-09-21T00:00:00+00:00" - } -}; -let query = { - "publicationDate" : { - "$gte" : { - "$date" : "1937-09-21T00:00:00+00:00" - } - } -}; -mongoClient.save("books", document, (res) => { - if (res.succeeded()) { - mongoClient.distinctWithQuery("books", "title", Java.type("java.lang.String").class.getName(), query, (res2) => { - console.log("Title is : " + res2.result()[0]); - }); - } -}); -``` - -Here’s an example of getting distinct value in batch mode with query - -``` js -let document = { - "title" : "The Hobbit", - "publicationDate" : { - "$date" : "1937-09-21T00:00:00+00:00" - } -}; -let query = { - "publicationDate" : { - "$gte" : { - "$date" : "1937-09-21T00:00:00+00:00" - } - } -}; -mongoClient.save("books", document, (res) => { - if (res.succeeded()) { - mongoClient.distinctBatchWithQuery("books", "title", Java.type("java.lang.String").class.getName(), query).handler((book) => { - console.log("Title is : " + book.title); - }); - } -}); -``` - -# Configuring the client - -The client is configured with a json object. - -The following configuration is supported by the mongo client: - - - `db_name` - Name of the database in the MongoDB instance to use. Defaults to - `default_db` - - - `useObjectId` - Toggle this option to support persisting and retrieving ObjectId’s - as strings. If `true`, hex-strings will be saved as native Mongodb - ObjectId types in the document collection. This will allow the - sorting of documents based on creation time. You can also derive the - creation time from the hex-string using ObjectId::getDate(). Set to - `false` for other types of your choosing. If set to false, or left - to default, hex strings will be generated as the document \_id if - the \_id is omitted from the document. Defaults to `false`. - -The mongo client tries to support most options that are allowed by the -driver. There are two ways to configure mongo for use by the driver, -either by a connection string or by separate configuration options. - -> **Note** -> -> If the connection string is used the mongo client will ignore any -> driver configuration options. - - - `connection_string` - The connection string the driver uses to create the client. E.g. - `mongodb://localhost:27017`. For more information on the format of - the connection string please consult the driver documentation. - -**Specific driver configuration options** - -``` js -{ - // Single Cluster Settings - "host" : "127.0.0.1", // string - "port" : 27017, // int - - // Multiple Cluster Settings - "hosts" : [ - { - "host" : "cluster1", // string - "port" : 27000 // int - }, - { - "host" : "cluster2", // string - "port" : 28000 // int - }, - ... - ], - "replicaSet" : "foo", // string - "serverSelectionTimeoutMS" : 30000, // long - - // Connection Pool Settings - "maxPoolSize" : 50, // int - "minPoolSize" : 25, // int - "maxIdleTimeMS" : 300000, // long - "maxLifeTimeMS" : 3600000, // long - "waitQueueMultiple" : 10, // int - "waitQueueTimeoutMS" : 10000, // long - "maintenanceFrequencyMS" : 2000, // long - "maintenanceInitialDelayMS" : 500, // long - - // Credentials / Auth - "username" : "john", // string - "password" : "passw0rd", // string - "authSource" : "some.db" // string - // Auth mechanism - "authMechanism" : "GSSAPI", // string - "gssapiServiceName" : "myservicename", // string - - // Socket Settings - "connectTimeoutMS" : 300000, // int - "socketTimeoutMS" : 100000, // int - "sendBufferSize" : 8192, // int - "receiveBufferSize" : 8192, // int - "keepAlive" : true // boolean - - // Heartbeat socket settings - "heartbeat.socket" : { - "connectTimeoutMS" : 300000, // int - "socketTimeoutMS" : 100000, // int - "sendBufferSize" : 8192, // int - "receiveBufferSize" : 8192, // int - "keepAlive" : true // boolean - } - - // Server Settings - "heartbeatFrequencyMS" : 1000 // long - "minHeartbeatFrequencyMS" : 500 // long -} -``` - -**Driver option descriptions** - - - `host` - The host the MongoDB instance is running. Defaults to `127.0.0.1`. - This is ignored if `hosts` is specified - - - `port` - The port the MongoDB instance is listening on. Defaults to `27017`. - This is ignored if `hosts` is specified - - - `hosts` - An array representing the hosts and ports to support a MongoDB - cluster (sharding / replication) - - - `host` - A host in the cluster - - - `port` - The port a host in the cluster is listening on - - - `replicaSet` - The name of the replica set, if the MongoDB instance is a member of - a replica set - - - `serverSelectionTimeoutMS` - The time in milliseconds that the mongo driver will wait to select a - server for an operation before raising an error. - - - `maxPoolSize` - The maximum number of connections in the connection pool. The - default value is `100` - - - `minPoolSize` - The minimum number of connections in the connection pool. The - default value is `0` - - - `maxIdleTimeMS` - The maximum idle time of a pooled connection. The default value is - `0` which means there is no limit - - - `maxLifeTimeMS` - The maximum time a pooled connection can live for. The default value - is `0` which means there is no limit - - - `waitQueueMultiple` - The maximum number of waiters for a connection to become available - from the pool. Default value is `500` - - - `waitQueueTimeoutMS` - The maximum time that a thread may wait for a connection to become - available. Default value is `120000` (2 minutes) - - - `maintenanceFrequencyMS` - The time period between runs of the maintenance job. Default is `0`. - - - `maintenanceInitialDelayMS` - The period of time to wait before running the first maintenance job - on the connection pool. Default is `0`. - - - `username` - The username to authenticate. Default is `null` (meaning no - authentication required) - - - `password` - The password to use to authenticate. - - - `authSource` - The database name associated with the user’s credentials. Default - value is the `db_name` value. - - - `authMechanism` - The authentication mechanism to use. See - \[Authentication\]() - for more details. - - - `gssapiServiceName` - The Kerberos service name if `GSSAPI` is specified as the - `authMechanism`. - - - `connectTimeoutMS` - The time in milliseconds to attempt a connection before timing out. - Default is `10000` (10 seconds) - - - `socketTimeoutMS` - The time in milliseconds to attempt a send or receive on a socket - before the attempt times out. Default is `0` meaning there is no - timeout - - - `sendBufferSize` - Sets the send buffer size (SO\_SNDBUF) for the socket. Default is - `0`, meaning it will use the OS default for this option. - - - `receiveBufferSize` - Sets the receive buffer size (SO\_RCVBUF) for the socket. Default is - `0`, meaning it will use the OS default for this option. - - - `keepAlive` - Sets the keep alive (SO\_KEEPALIVE) for the socket. Default is - `false` - - - `heartbeat.socket` - Configures the socket settings for the cluster monitor of the - MongoDB java driver. - - - `heartbeatFrequencyMS` - The frequency that the cluster monitor attempts to reach each - server. Default is `5000` (5 seconds) - - - `minHeartbeatFrequencyMS` - The minimum heartbeat frequency. The default value is `1000` (1 - second) - - - `ssl` - Enable ssl between the vertx-mongo-client and mongo - - - `trustAll` - When using ssl, trust *ALL* certificates. **WARNING** - Trusting - *ALL* certificates will open you up to potential security issues - such as MITM attacks. - - - `caPath` - Set a path to a file that contains a certificate that will be used - as a source of trust when making SSL connections to mongo. - -> **Note** -> -> Most of the default values listed above use the default values of the -> MongoDB Java Driver. Please consult the driver documentation for up to -> date information. diff --git a/docs/manual/@vertx/mysql-client/connections.md b/docs/manual/@vertx/mysql-client/connections.md deleted file mode 100644 index f66f73cad..000000000 --- a/docs/manual/@vertx/mysql-client/connections.md +++ /dev/null @@ -1,25 +0,0 @@ -# Using connections - -When you need to execute sequential queries (without a transaction), you -can create a new connection or borrow one from the pool: - -``` js -Code not translatable -``` - -Prepared queries can be created: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE ?", (ar1) => { - if (ar1.succeeded()) { - let prepared = ar1.result(); - prepared.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - // All rows - let rows = ar2.result(); - } - }); - } -}); -``` diff --git a/docs/manual/@vertx/mysql-client/cursor.md b/docs/manual/@vertx/mysql-client/cursor.md deleted file mode 100644 index 9b5b87507..000000000 --- a/docs/manual/@vertx/mysql-client/cursor.md +++ /dev/null @@ -1,74 +0,0 @@ -# Cursors and streaming - -By default prepared query execution fetches all rows, you can use a -`Cursor` to control the amount of rows you want to read: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE age > ?", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Create a cursor - let cursor = pq.cursor(Tuple.of(18)); - - // Read 50 rows - cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - - // Check for more ? - if (cursor.hasMore()) { - // Repeat the process... - } else { - // No more rows - close the cursor - cursor.close(); - } - } - }); - } -}); -``` - -Cursors shall be closed when they are released prematurely: - -``` js -cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - // Close the cursor - cursor.close(); - } -}); -``` - -A stream API is also available for cursors, which can be more -convenient, specially with the Rxified version. - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE age > ?", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Fetch 50 rows at a time - let stream = pq.createStream(50, Tuple.of(18)); - - // Use the stream - stream.exceptionHandler((err) => { - console.log("Error: " + err.getMessage()); - }); - stream.endHandler((v) => { - console.log("End of stream"); - }); - stream.handler((row) => { - console.log("User: " + row.getString("last_name")); - }); - } -}); -``` - -The stream read the rows by batch of `50` and stream them, when the rows -have been passed to the handler, a new batch of `50` is read and so on. - -The stream can be resumed or paused, the loaded rows will remain in -memory until they are delivered and the cursor will stop iterating. diff --git a/docs/manual/@vertx/mysql-client/dataobjects.md b/docs/manual/@vertx/mysql-client/dataobjects.md deleted file mode 100644 index b31704fc7..000000000 --- a/docs/manual/@vertx/mysql-client/dataobjects.md +++ /dev/null @@ -1,311 +0,0 @@ -# MySQLAuthOptions - -Authentication options for MySQL authentication which can be used for -CHANGE\_USER command. - -| | | | -| -------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@charset` | `String` | Set the charset for the connection. | -| `@collation` | `String` | Set the collation for the connection. | -| `@database` | `String` | Specify the default database for the re-authentication. | -| `@password` | `String` | Specify the user password to be used for the authentication. | -| `@properties` | `String` | Set connection attributes which will be sent to server at the re-authentication. | -| `@serverRsaPublicKeyPath` | `String` | Set the path of server RSA public key which is mostly used for encrypting password under insecure connections when performing authentication. | -| `@serverRsaPublicKeyValue` | `Buffer` | Set the value of server RSA public key which is mostly used for encrypting password under insecure connections when performing authentication. | -| `@user` | `String` | Specify the user account to be used for the authentication. | - -# MySQLConnectOptions - -Connect options for configuring link or link. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@cachePreparedStatements

Boolean

-

@characterEncoding

String

Set the Java charset for encoding string values, this value is UTF-8 by default.

@charset

String

Set the charset for the connection.

@collation

String

Set the collation for the connection.

@connectTimeout

Number (int)

-

@crlPaths

Array of String

-

@crlValues

Array of Buffer

-

@database

String

-

@enabledCipherSuites

Array of String

-

@enabledSecureTransportProtocols

Array of String

-

@host

String

-

@hostnameVerificationAlgorithm

String

-

@idleTimeout

Number (int)

-

@idleTimeoutUnit

TimeUnit

-

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

-

@localAddress

String

-

@logActivity

Boolean

-

@metricsName

String

-

@openSslEngineOptions

OpenSSLEngineOptions

-

@password

String

-

@pemKeyCertOptions

PemKeyCertOptions

-

@pemTrustOptions

PemTrustOptions

-

@pfxKeyCertOptions

PfxOptions

-

@pfxTrustOptions

PfxOptions

-

@port

Number (int)

-

@preparedStatementCacheMaxSize

Number (int)

-

@preparedStatementCacheSqlLimit

Number (int)

-

@properties

String

-

@proxyOptions

ProxyOptions

-

@receiveBufferSize

Number (int)

-

@reconnectAttempts

Number (int)

-

@reconnectInterval

Number (long)

-

@reuseAddress

Boolean

-

@reusePort

Boolean

-

@sendBufferSize

Number (int)

-

@serverRsaPublicKeyPath

String

Set the path of server RSA public key which is mostly used for encrypting password under insecure connections when performing authentication.

@serverRsaPublicKeyValue

Buffer

Set the value of server RSA public key which is mostly used for encrypting password under insecure connections when performing authentication.

@soLinger

Number (int)

-

@ssl

Boolean

-

@sslHandshakeTimeout

Number (long)

-

@sslHandshakeTimeoutUnit

TimeUnit

-

@sslMode

SslMode

Set the link for the client, this option can be used to specify the desired security state of the connection to the server.

@tcpCork

Boolean

-

@tcpFastOpen

Boolean

-

@tcpKeepAlive

Boolean

-

@tcpNoDelay

Boolean

-

@tcpQuickAck

Boolean

-

@trafficClass

Number (int)

-

@trustAll

Boolean

-

@trustStoreOptions

JksOptions

-

@useAffectedRows

Boolean

Sets how affected rows are calculated on update/delete/insert, if set to true an update that effectively does not change any data returns zero affected rows.

-

See mysql-affected-rows for details.

@useAlpn

Boolean

-

@usePooledBuffers

Boolean

-

@user

String

-

diff --git a/docs/manual/@vertx/mysql-client/enums.md b/docs/manual/@vertx/mysql-client/enums.md deleted file mode 100644 index 0d903e753..000000000 --- a/docs/manual/@vertx/mysql-client/enums.md +++ /dev/null @@ -1,25 +0,0 @@ -# MySQLSetOption - -MySQL set options which can be used by link. - -| | | -| ----------------------------------- | ----------- | -| Name | Description | -| `MYSQL_OPTION_MULTI_STATEMENTS_ON` | \- | -| `MYSQL_OPTION_MULTI_STATEMENTS_OFF` | \- | - -# SslMode - -This parameter specifies the desired security state of the connection to -the server. More information can be found in - -MySQL Reference Manual - -| | | -| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `DISABLED` | establish an unencrypted connection. | -| `PREFERRED` | establish an encrypted connection if the server supports encrypted connections, falling back to an unencrypted connection if an encrypted connection cannot be established. | -| `REQUIRED` | establish an encrypted connection if the server supports encrypted connections. The connection attempt fails if an encrypted connection cannot be established. | -| `VERIFY_CA` | Like REQUIRED, but additionally verify the server Certificate Authority (CA) certificate against the configured CA certificates. The connection attempt fails if no valid matching CA certificates are found. | -| `VERIFY_IDENTITY` | Like VERIFY\_CA, but additionally perform host name identity verification by checking the host name the client uses for connecting to the server against the identity in the certificate that the server sends to the client. | diff --git a/docs/manual/@vertx/mysql-client/index.md b/docs/manual/@vertx/mysql-client/index.md deleted file mode 100644 index dc2214882..000000000 --- a/docs/manual/@vertx/mysql-client/index.md +++ /dev/null @@ -1,1339 +0,0 @@ -The Reactive MySQL Client is a client for MySQL with a straightforward -API focusing on scalability and low overhead. - -**Features** - - - Event driven - - - Lightweight - - - Built-in connection pooling - - - Prepared queries caching - - - Cursor support - - - Row streaming - - - RxJava 1 and RxJava 2 - - - Direct memory to object without unnecessary copies - - - Java 8 Date and Time - - - Stored Procedures support - - - TLS/SSL support - - - MySQL utilities commands support - - - Working with MySQL and MariaDB - - - Rich collation and charset support - - - Unix domain socket - -# Usage - -To use the Reactive MySQL Client add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - ${maven.groupId} - ${maven.artifactId} - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile '${maven.groupId}:${maven.artifactId}:${maven.version}' -} -``` - -# Getting started - -Here is the simplest way to connect, query and disconnect - -``` js -import { MySQLPool } from "@vertx/mysql-client" - -// Connect options -let connectOptions = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the client pool -let client = MySQLPool.pool(connectOptions, poolOptions); - -// A simple query -client.query("SELECT * FROM users WHERE id='julien'").execute((ar) => { - if (ar.succeeded()) { - let result = ar.result(); - console.log("Got " + result.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } - - // Now close the pool - client.close(); -}); -``` - -# Connecting to MySQL - -Most of the time you will use a pool to connect to MySQL: - -``` js -import { MySQLPool } from "@vertx/mysql-client" - -// Connect options -let connectOptions = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pooled client -let client = MySQLPool.pool(connectOptions, poolOptions); -``` - -The pooled client uses a connection pool and any operation will borrow a -connection from the pool to execute the operation and release it to the -pool. - -If you are running with Vert.x you can pass it your Vertx instance: - -``` js -import { MySQLPool } from "@vertx/mysql-client" - -// Connect options -let connectOptions = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); -// Create the pooled client -let client = MySQLPool.pool(vertx, connectOptions, poolOptions); -``` - -You need to release the pool when you don’t need it anymore: - -``` js -// Close the pool and all the associated resources -pool.close(); -``` - -When you need to execute several operations on the same connection, you -need to use a client `connection`. - -You can easily get one from the pool: - -``` js -import { MySQLPool } from "@vertx/mysql-client" - -// Connect options -let connectOptions = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pooled client -let client = MySQLPool.pool(vertx, connectOptions, poolOptions); - -// Get a connection from the pool -client.getConnection((ar1) => { - - if (ar1.succeeded()) { - - console.log("Connected"); - - // Obtain our connection - let conn = ar1.result(); - - // All operations execute on the same connection - conn.query("SELECT * FROM users WHERE id='julien'").execute((ar2) => { - if (ar2.succeeded()) { - conn.query("SELECT * FROM users WHERE id='emad'").execute((ar3) => { - // Release the connection to the pool - conn.close(); - }); - } else { - // Release the connection to the pool - conn.close(); - } - }); - } else { - console.log("Could not connect: " + ar1.cause().getMessage()); - } -}); -``` - -Once you are done with the connection you must close it to release it to -the pool, so it can be reused. - -## Unix Domain Socket - -Sometimes for simplicity, security or performance reasons, it is -required to connect via a [Unix Domain -Socket](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_socket). - -Since the JVM does not support domain sockets, first you must add native -transport extensions to your project. - - - Maven (in your `pom.xml`): - - - -``` xml - - io.netty - netty-transport-native-epoll - ${netty.version} - linux-x86_64 - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile 'io.netty:netty-transport-native-epoll:${netty.version}:linux-x86_64' -} -``` - -> **Note** -> -> The native `epoll` support for ARM64 can also be added with the -> classifier `linux-aarch64`. - -> **Note** -> -> If there are Mac users in your team, add -> `netty-transport-native-kqueue` with the classifier `osx-x86_64`. - -Then set the path to the domain socket in `MySQLConnectOptions#setHost`: - -``` js -import { MySQLPool } from "@vertx/mysql-client" -// Connect Options -// Socket file name /var/run/mysqld/mysqld.sock -let connectOptions = new MySQLConnectOptions() - .setHost("/var/run/mysqld/mysqld.sock") - .setDatabase("the-db"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pooled client -let client = MySQLPool.pool(connectOptions, poolOptions); - -// Create the pooled client with a vertx instance -// Make sure the vertx instance has enabled native transports -// vertxOptions.setPreferNativeTransport(true); -let client2 = MySQLPool.pool(vertx, connectOptions, poolOptions); -``` - -More information about native transports can be found in the \[Vert.x -documentation\](). - -# Configuration - -There are several alternatives for you to configure the client. - -## Data Object - -A simple way to configure the client is to specify a -`MySQLConnectOptions` data object. - -``` js -import { MySQLPool } from "@vertx/mysql-client" - -// Data object -let connectOptions = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool Options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pool from the data object -let pool = MySQLPool.pool(vertx, connectOptions, poolOptions); - -pool.getConnection((ar) => { - // Handling your connection -}); -``` - -### collations and character sets - -The Reactive MySQL client supports configuring collations or character -sets and map them to a correlative `java.nio.charset.Charset`. For -example, you can specify charset for a connection like - -``` js -let connectOptions = new MySQLConnectOptions(); - -// set connection character set to utf8 instead of the default charset utf8mb4 -connectOptions.charset = "utf8"; -``` - -The Reactive MySQL Client will take `utf8mb4` as the default charset. -String values like password and error messages are always decoded in -`UTF-8` charset. - -`characterEncoding` option is used to determine which Java charset will -be used to encode String values such as query string and parameter -values, the charset is `UTF-8` by default and if it’s set to `null` then -the client will use the default Java charset instead. - -You can also specify collation for a connection like - -``` js -let connectOptions = new MySQLConnectOptions(); - -// set connection collation to utf8_general_ci instead of the default collation utf8mb4_general_ci -// setting a collation will override the charset option -connectOptions.charset = "gbk"; -connectOptions.collation = "utf8_general_ci"; -``` - -Note setting a collation on the data object will override the -**charset** and **characterEncoding** option. - -You can execute SQL `SHOW COLLATION;` or `SHOW CHARACTER SET;` to get -the supported collations and charsets by the server. - -More information about MySQL charsets and collations can be found in the -[MySQL Reference -Manual](https://dev.mysql.com/doc/refman/8.0/en/charset.html). - -### connection attributes - -You can also configure the connection attributes with the -`setProperties` or `addProperty` methods. Note `setProperties` will -override the default client properties. - -``` js -Code not translatable -``` - -More information about client connection attributes can be found in the -[MySQL Reference -Manual](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-connection-attribute-tables.html). - -### useAffectedRows - -You can configure the `useAffectedRows` option to decide whether to set -`CLIENT_FOUND_ROWS` flag when connecting to the server. If the -`CLIENT_FOUND_ROWS` flag is specified then the affected rows count is -the numeric value of rows found rather than affected. - -More information about this can be found in the [MySQL Reference -Manual](https://dev.mysql.com/doc/refman/8.0/en/mysql-affected-rows.html) - -## connection URI - -Apart from configuring with a `MySQLConnectOptions` data object, We also -provide you an alternative way to connect when you want to configure -with a connection URI: - -``` js -import { MySQLPool } from "@vertx/mysql-client" -import { MySQLConnection } from "@vertx/mysql-client" - -// Connection URI -let connectionUri = "mysql://dbuser:secretpassword@database.server.com:3211/mydb"; - -// Create the pool from the connection URI -let pool = MySQLPool.pool(connectionUri); - -// Create the connection from the connection URI -MySQLConnection.connect(vertx, connectionUri, (res) => { - // Handling your connection -}); -``` - -More information about connection string formats can be found in the -[MySQL Reference -Manual](https://dev.mysql.com/doc/refman/8.0/en/connecting-using-uri-or-key-value-pairs.html#connecting-using-uri). - -Currently, the client supports the following parameter keywords in -connection uri (keys are case-insensitive): - - - host - - - port - - - user - - - password - - - schema - - - socket - - - useAffectedRows - -# Running queries - -When you don’t need a transaction or run single queries, you can run -queries directly on the pool; the pool will use one of its connection to -run the query and return the result to you. - -Here is how to run simple queries: - -``` js -client.query("SELECT * FROM users WHERE id='julien'").execute((ar) => { - if (ar.succeeded()) { - let result = ar.result(); - console.log("Got " + result.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Prepared queries - -You can do the same with prepared queries. - -The SQL string can refer to parameters by position, using the database -syntax \`?\` - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT * FROM users WHERE id=?").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -Query methods provides an asynchronous `RowSet` instance that works for -*SELECT* queries - -``` js -client.preparedQuery("SELECT first_name, last_name FROM users").execute((ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - rows.forEach(row => { - console.log("User " + row.getString(0) + " " + row.getString(1)); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -or *UPDATE*/*INSERT* queries: - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("INSERT INTO users (first_name, last_name) VALUES (?, ?)").execute(Tuple.of("Julien", "Viet"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log(rows.rowCount()); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -The `Row` gives you access to your data by index - -``` js -console.log("User " + row.getString(0) + " " + row.getString(1)); -``` - -or by name - -``` js -console.log("User " + row.getString("first_name") + " " + row.getString("last_name")); -``` - -The client will not do any magic here and the column name is identified -with the name in the table regardless of how your SQL text is. - -You can access a wide variety of of types - -``` js -let firstName = row.getString("first_name"); -let male = row.getBoolean("male"); -let age = row.getInteger("age"); - -// ... -``` - -You can use cached prepared statements to execute one-shot prepared -queries: - -``` js -import { Tuple } from "@vertx/sql-client" - -// Enable prepare statements caching -connectOptions.cachePreparedStatements = true; -client.preparedQuery("SELECT * FROM users WHERE id = ?").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -You can create a `PreparedStatement` and manage the lifecycle by -yourself. - -``` js -import { Tuple } from "@vertx/sql-client" -sqlConnection.prepare("SELECT * FROM users WHERE id = ?", (ar) => { - if (ar.succeeded()) { - let preparedStatement = ar.result(); - preparedStatement.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - console.log("Got " + rows.size() + " rows "); - preparedStatement.close(); - } else { - console.log("Failure: " + ar2.cause().getMessage()); - } - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Batches - -You can execute prepared batch - -``` js -import { Tuple } from "@vertx/sql-client" - -// Add commands to the batch -let batch = []; -batch.push(Tuple.of("julien", "Julien Viet")); -batch.push(Tuple.of("emad", "Emad Alblueshi")); - -// Execute the prepared batch -client.preparedQuery("INSERT INTO USERS (id, name) VALUES (?, ?)").executeBatch(batch, (res) => { - if (res.succeeded()) { - - // Process rows - let rows = res.result(); - } else { - console.log("Batch failed " + res.cause()); - } -}); -``` - -# MySQL LAST\_INSERT\_ID - -You can get the auto incremented value if you insert a record into the -table. - -``` js -import { MySQLClient } from "@vertx/mysql-client" -client.query("INSERT INTO test(val) VALUES ('v1')").execute((ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - let lastInsertId = rows.property(MySQLClient.LAST_INSERTED_ID); - console.log("Last inserted id is: " + lastInsertId); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -More information can be found in [How to Get the Unique ID for the Last -Inserted -Row](https://dev.mysql.com/doc/refman/8.0/en/getting-unique-id.html). - -# Using connections - -When you need to execute sequential queries (without a transaction), you -can create a new connection or borrow one from the pool: - -``` js -Code not translatable -``` - -Prepared queries can be created: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE ?", (ar1) => { - if (ar1.succeeded()) { - let prepared = ar1.result(); - prepared.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - // All rows - let rows = ar2.result(); - } - }); - } -}); -``` - -# Using transactions - -## Transactions with connections - -You can execute transaction using SQL `BEGIN`/`COMMIT`/`ROLLBACK`, if -you do so you must use a `SqlConnection` and manage it yourself. - -Or you can use the transaction API of `SqlConnection`: - -``` js -pool.getConnection((res) => { - if (res.succeeded()) { - - // Transaction must use a connection - let conn = res.result(); - - // Begin the transaction - let tx = conn.begin(); - - // Various statements - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - // Return the connection to the pool - conn.close(); - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } -}); -``` - -When the database server reports the current transaction is failed (e.g -the infamous *current transaction is aborted, commands ignored until end -of transaction block*), the transaction is rollbacked and the -`abortHandler` is called: - -``` js -tx.abortHandler((v) => { - console.log("Transaction failed => rollbacked"); -}); -``` - -## Simplified transaction API - -When you use a pool, you can start a transaction directly on the pool. - -It borrows a connection from the pool, begins the transaction and -releases the connection to the pool when the transaction ends. - -``` js -// Acquire a transaction and begin the transaction -pool.begin((res) => { - if (res.succeeded()) { - - // Get the transaction - let tx = res.result(); - - // Various statements - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - // the connection will automatically return to the pool - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - }); - } - }); - } else { - // No need to close connection as transaction will abort and be returned to the pool - } - }); - } -}); -``` - -> **Note** -> -> this code will not close the connection because it will always be -> released back to the pool when the transaction - -# Cursors and streaming - -By default prepared query execution fetches all rows, you can use a -`Cursor` to control the amount of rows you want to read: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE age > ?", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Create a cursor - let cursor = pq.cursor(Tuple.of(18)); - - // Read 50 rows - cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - - // Check for more ? - if (cursor.hasMore()) { - // Repeat the process... - } else { - // No more rows - close the cursor - cursor.close(); - } - } - }); - } -}); -``` - -Cursors shall be closed when they are released prematurely: - -``` js -cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - // Close the cursor - cursor.close(); - } -}); -``` - -A stream API is also available for cursors, which can be more -convenient, specially with the Rxified version. - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE age > ?", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Fetch 50 rows at a time - let stream = pq.createStream(50, Tuple.of(18)); - - // Use the stream - stream.exceptionHandler((err) => { - console.log("Error: " + err.getMessage()); - }); - stream.endHandler((v) => { - console.log("End of stream"); - }); - stream.handler((row) => { - console.log("User: " + row.getString("last_name")); - }); - } -}); -``` - -The stream read the rows by batch of `50` and stream them, when the rows -have been passed to the handler, a new batch of `50` is read and so on. - -The stream can be resumed or paused, the loaded rows will remain in -memory until they are delivered and the cursor will stop iterating. - -# MySQL type mapping - -Currently the client supports the following MySQL types - - - BOOL,BOOLEAN (`java.lang.Byte`) - - - TINYINT (`java.lang.Byte`) - - - TINYINT UNSIGNED(`java.lang.Short`) - - - SMALLINT (`java.lang.Short`) - - - SMALLINT UNSIGNED(`java.lang.Integer`) - - - MEDIUMINT (`java.lang.Integer`) - - - MEDIUMINT UNSIGNED(`java.lang.Integer`) - - - INT,INTEGER (`java.lang.Integer`) - - - INTEGER UNSIGNED(`java.lang.Long`) - - - BIGINT (`java.lang.Long`) - - - BIGINT UNSIGNED(`io.vertx.sqlclient.data.Numeric`) - - - FLOAT (`java.lang.Float`) - - - FLOAT UNSIGNED(`java.lang.Float`) - - - DOUBLE (`java.lang.Double`) - - - DOUBLE UNSIGNED(`java.lang.Double`) - - - BIT (`java.lang.Long`) - - - NUMERIC (`io.vertx.sqlclient.data.Numeric`) - - - NUMERIC UNSIGNED(`io.vertx.sqlclient.data.Numeric`) - - - DATE (`java.time.LocalDate`) - - - DATETIME (`java.time.LocalDateTime`) - - - TIME (`java.time.Duration`) - - - TIMESTAMP (`java.time.LocalDateTime`) - - - YEAR (`java.lang.Short`) - - - CHAR (`java.lang.String`) - - - VARCHAR (`java.lang.String`) - - - BINARY (`io.vertx.core.buffer.Buffer`) - - - VARBINARY (`io.vertx.core.buffer.Buffer`) - - - TINYBLOB (`io.vertx.core.buffer.Buffer`) - - - TINYTEXT (`java.lang.String`) - - - BLOB (`io.vertx.core.buffer.Buffer`) - - - TEXT (`java.lang.String`) - - - MEDIUMBLOB (`io.vertx.core.buffer.Buffer`) - - - MEDIUMTEXT (`java.lang.String`) - - - LONGBLOB (`io.vertx.core.buffer.Buffer`) - - - LONGTEXT (`java.lang.String`) - - - ENUM (`java.lang.String`) - - - SET (`java.lang.String`) - - - JSON (`io.vertx.core.json.JsonObject`, - `io.vertx.core.json.JsonArray`, `Number`, `Boolean`, `String`, - `io.vertx.sqlclient.Tuple#JSON_NULL`) - -Tuple decoding uses the above types when storing values - -Note: In Java there is no specific representations for unsigned numeric -values, so this client will convert an unsigned value to the correlated -Java type. - -## Implicit type conversion - -The Reactive MySQL Client supports implicit type conversions when -executing a prepared statement. Suppose you have a `TIME` column in your -table, the two examples below will both work here. - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT * FROM students WHERE updated_time = ?").execute(Tuple.of(Java.type("java.time.LocalTime").of(19, 10, 25)), (ar) => { - // handle the results -}); -// this will also work with implicit type conversion -client.preparedQuery("SELECT * FROM students WHERE updated_time = ?").execute(Tuple.of("19:10:25"), (ar) => { - // handle the results -}); -``` - -The MySQL data type for encoding will be inferred from the parameter -values and here is the type mapping - -| Parameter value type | encoding MySQL type | -| --------------------------- | --------------------- | -| null | MYSQL\_TYPE\_NULL | -| java.lang.Byte | MYSQL\_TYPE\_TINY | -| java.lang.Boolean | MYSQL\_TYPE\_TINY | -| java.lang.Short | MYSQL\_TYPE\_SHORT | -| java.lang.Integer | MYSQL\_TYPE\_LONG | -| java.lang.Long | MYSQL\_TYPE\_LONGLONG | -| java.lang.Double | MYSQL\_TYPE\_DOUBLE | -| java.lang.Float | MYSQL\_TYPE\_FLOAT | -| java.time.LocalDate | MYSQL\_TYPE\_DATE | -| java.time.Duration | MYSQL\_TYPE\_TIME | -| java.time.LocalTime | MYSQL\_TYPE\_TIME | -| io.vertx.core.buffer.Buffer | MYSQL\_TYPE\_BLOB | -| java.time.LocalDateTime | MYSQL\_TYPE\_DATETIME | -| default | MYSQL\_TYPE\_STRING | - -## Handling BOOLEAN - -In MySQL `BOOLEAN` and `BOOL` data types are synonyms for `TINYINT(1)`. -A value of zero is considered false, non-zero values are considered -true. A `BOOLEAN` data type value is stored in `Row` or `Tuple` as -`java.lang.Byte` type, you can call `Row#getValue` to retrieve it as a -`java.lang.Byte` value, or you can call `Row#getBoolean` to retrieve it -as `java.lang.Boolean` value. - -``` js -client.query("SELECT graduated FROM students WHERE id = 0").execute((ar) => { - if (ar.succeeded()) { - let rowSet = ar.result(); - rowSet.forEach(row => { - let pos = row.getColumnIndex("graduated"); - let value = row.get(Java.type("java.lang.Byte").class, pos); - let graduated = row.getBoolean("graduated"); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -When you want to execute a prepared statement with a param of a -`BOOLEAN` value, you can simply add the `java.lang.Boolean` value to the -params list. - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("UPDATE students SET graduated = ? WHERE id = 0").execute(Tuple.of(true), (ar) => { - if (ar.succeeded()) { - console.log("Updated with the boolean value"); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Handling JSON - -MySQL `JSON` data type is represented by the following Java types: - - - `String` - - - `Number` - - - `Boolean` - - - `io.vertx.core.json.JsonObject` - - - `io.vertx.core.json.JsonArray` - - - `io.vertx.sqlclient.Tuple#JSON_NULL` for representing the JSON null - literal - - - -``` js -Code not translatable -``` - -## Handling BIT - -The `BIT` data type is mapped to `java.lang.Long` type, but Java has no -notion of unsigned numeric values, so if you want to insert or update a -record with the max value of `BIT(64)`, you can do some tricks setting -the parameter to `-1L`. - -## Handling TIME - -MySQL `TIME` data type can be used to represent either time of a day or -a time interval which ranges from `-838:59:59` to `838:59:59`. In -Reactive MySQL client the `TIME` data type is mapped to -`java.time.Duration` natively, but you can also retrieve it as a -`java.time.LocalTime` via `Row#getLocalTime` accessor. - -## Handling NUMERIC - -The `Numeric` Java type is used to represent the MySQL `NUMERIC` type. - -``` js -let numeric = row.get(Java.type("io.vertx.sqlclient.data.Numeric").class, 0); -if (numeric.isNaN()) { - // Handle NaN -} else { - let value = numeric.bigDecimalValue(); -} -``` - -# Collector queries - -You can use Java collectors with the query API: - -``` js -Code not translatable -``` - -The collector processing must not keep a reference on the `Row` as there -is a single row used for processing the entire set. - -The Java `Collectors` provides many interesting predefined collectors, -for example you can create easily create a string directly from the row -set: - -``` js -Code not translatable -``` - -# MySQL Stored Procedure - -You can run stored procedures in queries. The result will be retrieved -from the server following the [MySQL -protocol](https://dev.mysql.com/doc/dev/mysql-server/8.0.12/page_protocol_command_phase_sp.html) -without any magic here. - -``` js -client.query("CREATE PROCEDURE multi() BEGIN\n SELECT 1;\n SELECT 1;\n INSERT INTO ins VALUES (1);\n INSERT INTO ins VALUES (2);\nEND;").execute((ar1) => { - if (ar1.succeeded()) { - // create stored procedure success - client.query("CALL multi();").execute((ar2) => { - if (ar2.succeeded()) { - // handle the result - let result1 = ar2.result(); - let row1 = result1.iterator().next(); - console.log("First result: " + row1.getInteger(0)); - - let result2 = result1.next(); - let row2 = result2.iterator().next(); - console.log("Second result: " + row2.getInteger(0)); - - let result3 = result2.next(); - console.log("Affected rows: " + result3.rowCount()); - } else { - console.log("Failure: " + ar2.cause().getMessage()); - } - }); - } else { - console.log("Failure: " + ar1.cause().getMessage()); - } -}); -``` - -Note: Prepared statements binding OUT parameters is not supported for -now. - -# MySQL LOCAL INFILE - -This client supports for handling the LOCAL INFILE Request, if you want -to load data from a local file into the server, you can use query `LOAD -DATA LOCAL INFILE '' INTO TABLE ;`. More information -can be found in the [MySQL Reference -Manual](https://dev.mysql.com/doc/refman/8.0/en/load-data.html). - -# Authentication - -MySQL 8.0 introduces a new authentication method named -`caching_sha2_password` and it’s the default one to authenticate. In -order to connect to the server using this new authentication method, you -need either use a secure connection(i.e. enable TLS/SSL) or exchange the -encrypted password using an RSA key pair to avoid leaks of password. The -RSA key pair is automatically exchanged during the communication, but -the server RSA public key may be hacked during the process since it’s -transferred on a insecure connection. So if you’re on a insecure -connection and want to avoid the risk of exposing the server RSA public -key, you can set the server RSA public key like this: - -``` js -import { Buffer } from "@vertx/core" - -let options1 = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret") - .setServerRsaPublicKeyPath("tls/files/public_key.pem"); - -let options2 = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret") - .setServerRsaPublicKeyValue(Buffer.buffer("-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3yvG5s0qrV7jxVlp0sMj\nxP0a6BuLKCMjb0o88hDsJ3xz7PpHNKazuEAfPxiRFVAV3edqfSiXoQw+lJf4haEG\nHQe12Nfhs+UhcAeTKXRlZP/JNmI+BGoBduQ1rCId9bKYbXn4pvyS/a1ft7SwFkhx\naogCur7iIB0WUWvwkQ0fEj/Mlhw93lLVyx7hcGFq4FOAKFYr3A0xrHP1IdgnD8QZ\n0fUbgGLWWLOossKrbUP5HWko1ghLPIbfmU6o890oj1ZWQewj1Rs9Er92/UDj/JXx\n7ha1P+ZOgPBlV037KDQMS6cUh9vTablEHsMLhDZanymXzzjBkL+wH/b9cdL16LkQ\n5QIDAQAB\n-----END PUBLIC KEY-----\n")); -``` - -More information about the `caching_sha2_password` authentication method -can be found in the [MySQL Reference -Manual](https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html). - -# Using SSL/TLS - -To configure the client to use SSL connection, you can configure the -`MySQLConnectOptions` like a Vert.x `NetClient`. All [SSL -modes](https://dev.mysql.com/doc/refman/8.0/en/connection-options.html#option_general_ssl-mode) -are supported and you are able to configure `sslmode`. The client is in -`DISABLED` SSL mode by default. `ssl` parameter is kept as a mere -shortcut for setting `sslmode`. `setSsl(true)` is equivalent to -`setSslMode(VERIFY_CA)` and `setSsl(false)` is equivalent to -`setSslMode(DISABLED)`. - -``` js -import { MySQLConnection } from "@vertx/mysql-client" - -let options = new MySQLConnectOptions() - .setPort(3306) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret") - .setSslMode("VERIFY_CA") - .setPemTrustOptions(new PemTrustOptions() - .setCertPaths(["/path/to/cert.pem"])); - -MySQLConnection.connect(vertx, options, (res) => { - if (res.succeeded()) { - // Connected with SSL - } else { - console.log("Could not connect " + res.cause()); - } -}); -``` - -More information can be found in the [Vert.x -documentation](http://vertx.io/docs/vertx-core/java/#ssl). - -# MySQL utility command - -Sometimes you want to use MySQL utility commands and we provide support -for this. More information can be found in the [MySQL utility -commands](https://dev.mysql.com/doc/dev/mysql-server/8.0.12/page_protocol_command_phase_utility.html). - -## COM\_PING - -You can use `COM_PING` command to check if the server is alive. The -handler will be notified if the server responds to the PING, otherwise -the handler will never be called. - -``` js -connection.ping((ar) => { - console.log("The server has responded to the PING"); -}); -``` - -## COM\_RESET\_CONNECTION - -You can reset the session state with `COM_RESET_CONNECTION` command, -this will reset the connection state like: - user variables - temporary -tables - prepared statements - -``` js -connection.resetConnection((ar) => { - if (ar.succeeded()) { - console.log("Connection has been reset now"); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## COM\_CHANGE\_USER - -You can change the user of the current connection, this will perform a -re-authentication and reset the connection state like -`COM_RESET_CONNECTION`. - -``` js -let authenticationOptions = new MySQLAuthOptions() - .setUser("newuser") - .setPassword("newpassword") - .setDatabase("newdatabase"); -connection.changeUser(authenticationOptions, (ar) => { - if (ar.succeeded()) { - console.log("User of current connection has been changed."); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## COM\_INIT\_DB - -You can use `COM_INIT_DB` command to change the default schema of the -connection. - -``` js -connection.specifySchema("newschema", (ar) => { - if (ar.succeeded()) { - console.log("Default schema changed to newschema"); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## COM\_STATISTICS - -You can use `COM_STATISTICS` command to get a human readable string of -some internal status variables in MySQL server. - -``` js -connection.getInternalStatistics((ar) => { - if (ar.succeeded()) { - console.log("Statistics: " + ar.result()); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## COM\_DEBUG - -You can use `COM_DEBUG` command to dump debug info to the MySQL server’s -STDOUT. - -``` js -connection.debug((ar) => { - if (ar.succeeded()) { - console.log("Debug info dumped to server's STDOUT"); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## COM\_SET\_OPTION - -You can use `COM_SET_OPTION` command to set options for the current -connection. Currently only `CLIENT_MULTI_STATEMENTS` can be set. - -For example, you can disable `CLIENT_MULTI_STATEMENTS` with this -command. - -``` js -connection.setOption(MySQLSetOption.MYSQL_OPTION_MULTI_STATEMENTS_OFF, (ar) => { - if (ar.succeeded()) { - console.log("CLIENT_MULTI_STATEMENTS is off now"); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -# MySQL and MariaDB version support matrix - -| MySQL | MariaDB | | | -| ------- | --------- | ------- | --------- | -| Version | Supported | Version | Supported | -| `5.5` | ✔ | `10.1` | ✔ | -| `5.6` | ✔ | `10.2` | ✔ | -| `5.7` | ✔ | `10.3` | ✔ | -| `8.0` | ✔ | `10.4` | ✔ | - -Known issues: - - - Reset connection utility command does not work in MySQL 5.5, 5.6 and - MariaDB 10.1 - - - Change user utility command is not supported with MariaDB 10.2 and - 10.3 - -# Pitfalls & Good Practices - -Here are some good practices for you to avoid common pitfalls when using -the Reactive MySQL Client. - -## prepared statement count limit - -Sometimes you might meet the notorious error `Can’t create more than -max_prepared_stmt_count statements (current value: 16382)`, this is -because the server has reached the limit of total number of prepared -statement. - -You can adjust the server system variable `max_prepared_stmt_count` but -it has an upper bound value so you can’t get rid of the error in this -way. - -The best way to alleviate this is enabling prepared statement caching, -so the prepared statements with the same SQL string could be reused and -the client does not have to create a brand new prepared statement for -every request. The prepared statement will be automatically closed after -the statement is executed. In this way the chances of reaching the limit -could be greatly reduced though it could not be totally eliminated. - -You can also manage the lifecycle of prepared statements manually by -creating a `PreparedStatement` object via `SqlConnection#prepare` -interface so that you can choose when to deallocate the statement -handle, or even use the [SQL syntax prepared -statement](https://dev.mysql.com/doc/refman/8.0/en/sql-prepared-statements.html). - -## demystifying prepared batch - -There is time when you want to batch insert data into the database, you -can use `PreparedQuery#executeBatch` which provides a simple API to -handle this. Keep in mind that MySQL does not natively support batching -protocol so the API is only a sugar by executing the prepared statement -one after another, which means more network round trips are required -comparing to inserting multiple rows by executing one prepared statement -with a list of values. - -## tricky DATE & TIME data types - -Handling MYSQL DATE and TIME data types especially with time zones is -tricky therefore the Reactive MySQL Client does no magic transformation -for those values. - - - MySQL DATETIME data type does not contain time zone info, so what - you get is identical to what you set no matter what time zone is in - the current session. - - - MySQL TIMESTAMP data type contains time zone info, so when you set - or get the value it’s always transformed by the server with the - timezone set in the current session. diff --git a/docs/manual/@vertx/mysql-client/queries.md b/docs/manual/@vertx/mysql-client/queries.md deleted file mode 100644 index 628835568..000000000 --- a/docs/manual/@vertx/mysql-client/queries.md +++ /dev/null @@ -1,157 +0,0 @@ -# Running queries - -When you don’t need a transaction or run single queries, you can run -queries directly on the pool; the pool will use one of its connection to -run the query and return the result to you. - -Here is how to run simple queries: - -``` js -client.query("SELECT * FROM users WHERE id='julien'").execute((ar) => { - if (ar.succeeded()) { - let result = ar.result(); - console.log("Got " + result.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Prepared queries - -You can do the same with prepared queries. - -The SQL string can refer to parameters by position, using the database -syntax {PREPARED\_PARAMS} - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT * FROM users WHERE id=?").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -Query methods provides an asynchronous `RowSet` instance that works for -*SELECT* queries - -``` js -client.preparedQuery("SELECT first_name, last_name FROM users").execute((ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - rows.forEach(row => { - console.log("User " + row.getString(0) + " " + row.getString(1)); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -or *UPDATE*/*INSERT* queries: - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("INSERT INTO users (first_name, last_name) VALUES (?, ?)").execute(Tuple.of("Julien", "Viet"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log(rows.rowCount()); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -The `Row` gives you access to your data by index - -``` js -console.log("User " + row.getString(0) + " " + row.getString(1)); -``` - -or by name - -``` js -console.log("User " + row.getString("first_name") + " " + row.getString("last_name")); -``` - -The client will not do any magic here and the column name is identified -with the name in the table regardless of how your SQL text is. - -You can access a wide variety of of types - -``` js -let firstName = row.getString("first_name"); -let male = row.getBoolean("male"); -let age = row.getInteger("age"); - -// ... -``` - -You can use cached prepared statements to execute one-shot prepared -queries: - -``` js -import { Tuple } from "@vertx/sql-client" - -// Enable prepare statements caching -connectOptions.cachePreparedStatements = true; -client.preparedQuery("SELECT * FROM users WHERE id = ?").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -You can create a `PreparedStatement` and manage the lifecycle by -yourself. - -``` js -import { Tuple } from "@vertx/sql-client" -sqlConnection.prepare("SELECT * FROM users WHERE id = ?", (ar) => { - if (ar.succeeded()) { - let preparedStatement = ar.result(); - preparedStatement.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - console.log("Got " + rows.size() + " rows "); - preparedStatement.close(); - } else { - console.log("Failure: " + ar2.cause().getMessage()); - } - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Batches - -You can execute prepared batch - -``` js -import { Tuple } from "@vertx/sql-client" - -// Add commands to the batch -let batch = []; -batch.push(Tuple.of("julien", "Julien Viet")); -batch.push(Tuple.of("emad", "Emad Alblueshi")); - -// Execute the prepared batch -client.preparedQuery("INSERT INTO USERS (id, name) VALUES (?, ?)").executeBatch(batch, (res) => { - if (res.succeeded()) { - - // Process rows - let rows = res.result(); - } else { - console.log("Batch failed " + res.cause()); - } -}); -``` diff --git a/docs/manual/@vertx/mysql-client/transactions.md b/docs/manual/@vertx/mysql-client/transactions.md deleted file mode 100644 index d91723423..000000000 --- a/docs/manual/@vertx/mysql-client/transactions.md +++ /dev/null @@ -1,102 +0,0 @@ -# Using transactions - -## Transactions with connections - -You can execute transaction using SQL `BEGIN`/`COMMIT`/`ROLLBACK`, if -you do so you must use a `SqlConnection` and manage it yourself. - -Or you can use the transaction API of `SqlConnection`: - -``` js -pool.getConnection((res) => { - if (res.succeeded()) { - - // Transaction must use a connection - let conn = res.result(); - - // Begin the transaction - let tx = conn.begin(); - - // Various statements - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - // Return the connection to the pool - conn.close(); - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } -}); -``` - -When the database server reports the current transaction is failed (e.g -the infamous *current transaction is aborted, commands ignored until end -of transaction block*), the transaction is rollbacked and the -`abortHandler` is called: - -``` js -tx.abortHandler((v) => { - console.log("Transaction failed => rollbacked"); -}); -``` - -## Simplified transaction API - -When you use a pool, you can start a transaction directly on the pool. - -It borrows a connection from the pool, begins the transaction and -releases the connection to the pool when the transaction ends. - -``` js -// Acquire a transaction and begin the transaction -pool.begin((res) => { - if (res.succeeded()) { - - // Get the transaction - let tx = res.result(); - - // Various statements - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - // the connection will automatically return to the pool - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - }); - } - }); - } else { - // No need to close connection as transaction will abort and be returned to the pool - } - }); - } -}); -``` - -> **Note** -> -> this code will not close the connection because it will always be -> released back to the pool when the transaction diff --git a/docs/manual/@vertx/mysql-postgresql-client/index.md b/docs/manual/@vertx/mysql-postgresql-client/index.md deleted file mode 100644 index e3ef61e82..000000000 --- a/docs/manual/@vertx/mysql-postgresql-client/index.md +++ /dev/null @@ -1,367 +0,0 @@ -The Async MySQL / PostgreSQL Client is responsible for providing an -interface for Vert.x applications that need to interact with a MySQL or -PostgreSQL database. - -It uses Mauricio Linhares [async -driver](https://github.com/mauricio/postgresql-async) to interact with -the MySQL or PostgreSQL databases in a non blocking way. - -# Using the MySQL and PostgreSQL client - -This section describes how to configure your project to be able to use -the MySQL / PostgreSQL client in your application. - -## In a regular application - -To use this client, you need to add the following jar to your -`CLASSPATH`: - - - ${maven.artifactId} ${maven.version} (the client) - - - scala-library 2.11.4 - - - the postgress-async-2.11 and mysdql-async-2.11 from - - - - joda time - -All these jars are downloadable from Maven Central. - -## In an application packaged in a fat jar - -If you are building a *Fat-jar* using Maven or Gradle, just add the -following dependencies: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-mysql-postgresql-client - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-mysql-postgresql-client:${maven.version}' -``` - -## In an application using a vert.x distributions - -If you are using a vert.x distribution, add the jar files listed above -to the `$VERTX_HOME/lib` directory. - -Alternatively, you can edit the `vertx-stack.json` file located in -`$VERTX_HOME`, and set `"included": true` for the -`vertx-mysql-postgresql-client` dependency. Once done, launch: `vertx -resolve --dir=lib --stack= -./vertx-stack.json`. It downloads the client and its dependencies. - -# Creating a client - -There are several ways to create a client. Let’s go through them all. - -## Using default shared pool - -In most cases you will want to share a pool between different client -instances. - -E.g. you scale your application by deploying multiple instances of your -verticle and you want each verticle instance to share the same pool so -you don’t end up with multiple pools - -You do this as follows: - -``` java -import { MySQLClient } from "@vertx/mysql-postgresql" -import { PostgreSQLClient } from "@vertx/mysql-postgresql" - -// To create a MySQL client: - -let mySQLClientConfig = { - "host" : "mymysqldb.mycompany" -}; -let mySQLClient = MySQLClient.createShared(vertx, mySQLClientConfig); - -// To create a PostgreSQL client: - -let postgreSQLClientConfig = { - "host" : "mypostgresqldb.mycompany" -}; -let postgreSQLClient = PostgreSQLClient.createShared(vertx, postgreSQLClientConfig); -``` - -The first call to `MySQLClient.createShared` or -`PostgreSQLClient.createShared` will actually create the data source, -and the specified config will be used. - -Subsequent calls will return a new client instance that uses the same -data source, so the configuration won’t be used. - -## Specifying a pool name - -You can create a client specifying a pool name as follows - -``` java -import { MySQLClient } from "@vertx/mysql-postgresql" -import { PostgreSQLClient } from "@vertx/mysql-postgresql" - -// To create a MySQL client: - -let mySQLClientConfig = { - "host" : "mymysqldb.mycompany" -}; -let mySQLClient = MySQLClient.createShared(vertx, mySQLClientConfig, "MySQLPool1"); - -// To create a PostgreSQL client: - -let postgreSQLClientConfig = { - "host" : "mypostgresqldb.mycompany" -}; -let postgreSQLClient = PostgreSQLClient.createShared(vertx, postgreSQLClientConfig, "PostgreSQLPool1"); -``` - -If different clients are created using the same Vert.x instance and -specifying the same pool name, they will share the same data source. - -The first call to `MySQLClient.createShared` or -`PostgreSQLClient.createShared` will actually create the data source, -and the specified config will be used. - -Subsequent calls will return a new client instance that uses the same -pool, so the configuration won’t be used. - -Use this way of creating if you wish different groups of clients to have -different pools, e.g. they’re interacting with different databases. - -## Creating a client with a non shared data source - -In most cases you will want to share a pool between different client -instances. However, it’s possible you want to create a client instance -that doesn’t share its pool with any other client. - -In that case you can use `MySQLClient.createNonShared` or -`PostgreSQLClient.createNonShared` - -``` java -import { MySQLClient } from "@vertx/mysql-postgresql" -import { PostgreSQLClient } from "@vertx/mysql-postgresql" - -// To create a MySQL client: - -let mySQLClientConfig = { - "host" : "mymysqldb.mycompany" -}; -let mySQLClient = MySQLClient.createNonShared(vertx, mySQLClientConfig); - -// To create a PostgreSQL client: - -let postgreSQLClientConfig = { - "host" : "mypostgresqldb.mycompany" -}; -let postgreSQLClient = PostgreSQLClient.createNonShared(vertx, postgreSQLClientConfig); -``` - -This is equivalent to calling `MySQLClient.createShared` or -`PostgreSQLClient.createShared` with a unique pool name each time. - -# Closing the client - -You can hold on to the client for a long time (e.g. the life-time of -your verticle), but once you have finished with it, you should close it -using `close` or `close` - -# Getting a connection - -Use `getConnection` to get a connection. - -This will return the connection in the handler when one is ready from -the pool. - -``` java -// Now do stuff with it: - -client.getConnection((res) => { - if (res.succeeded()) { - - let connection = res.result(); - - // Got a connection - - } else { - // Failed to get connection - deal with it - } -}); -``` - -Once you’ve finished with the connection make sure you close it -afterwards. - -The connection is an instance of `SQLConnection` which is a common -interface used by other SQL clients. - -You can learn how to use it in the [common sql -interface](http://vertx.io/docs/vertx-sql-common/js/) documentation. - -## Configuring reconnections - -This service is able to recover from temporary database outages, such as -those which occur during a database restart or brief loss of network -connectivity. You can configure the expected behaviour when acquiring -connections via the following properties: - - - `maxConnectionRetries` - - - `connectionRetryDelay` - -When the internal connection pool attempts to acquire an open connection -and fails, it will retry up to `maxConnectionRetries` times, with a -delay of `connectionRetryDelay` milliseconds between each attempt. If -all attempts fail, any clients waiting for connections from the pool -will be notified with an Error, indicating that a Connection could not -be acquired. Note that clients will not be notified with an Error until -a full round of attempts fail, which may be some time after the initial -connection attempt. - -If `maxConnectionRetries` is set to `0`, the internal connection pool -will not perform any reconnection (default). If `maxConnectionRetries` -is set to `-1`, the internal connection pool will attempt to acquire new -connections indefinitely, so any call to `getConnection` may be -indefinitely waiting for a successful acquisition. - -Once a full round of acquisition attempts fails, the internal connection -pool will remain active, and will try again to acquire connections in -response to future requests for connections. - -Note that if a database restart occurs, a pool may contain previously -acquired but now stale Connections that will only be detected and purged -lazily, when the pool attempts to reuse them. - -## Note about date and timestamps - -Whenever you get dates back from the database, this service will -implicitly convert them into ISO 8601 (`yyyy-MM-ddTHH:mm:ss.SSS`) -formatted strings. MySQL usually discards milliseconds, so you will -regularly see `.000`. - -## Note about last inserted ids - -When inserting new rows into a table, you might want to retrieve -auto-incremented ids from the database. The JDBC API usually lets you -retrieve the last inserted id from a connection. If you use MySQL, it -will work the way it does like the JDBC API. In PostgreSQL you can add -the ["RETURNING" -clause](http://www.postgresql.org/docs/current/static/sql-insert.html) -to get the latest inserted ids. Use one of the `query` methods to get -access to the returned columns. - -## Note about stored procedures - -The `call` and `callWithParams` methods are not implemented currently. - -# Configuration - -Both the PostgreSql and MySql clients take the same configuration: - - { - "host" : , - "port" : , - "maxPoolSize" : , - "username" : , - "password" : , - "database" : , - "charset" : , - "connectTimeout" : , - "testTimeout" : , - "queryTimeout" : , - "maxConnectionRetries" : , - "connectionRetryDelay" : , - "sslMode" : <"disable"|"prefer"|"require"|"verify-ca"|"verify-full">, - "sslRootCert" : - } - - - `host` - The host of the database. Defaults to `localhost`. - - - `port` - The port of the database. Defaults to `5432` for PostgreSQL and - `3306` for MySQL. - - - `maxPoolSize` - The number of connections that may be kept open. Defaults to `10`. - - - `username` - The username to connect to the database. Defaults to `vertx`. - - - `password` - The password to connect to the database. Defaults to `password`. - - - `database` - The name of the database you want to connect to. Defaults to - `testdb`. - - - `charset` - The name of the character set you want to use for the connection. - Defaults to `UTF-8`. - - - `connectTimeout` - The timeout to wait for connecting to the database. Defaults to - `10000` (= 10 seconds). - - - `testTimeout` - The timeout for connection tests performed by pools. Defaults to - `10000` (= 10 seconds). - - - `queryTimeout` - The timeout to wait for a query in milliseconds. Default is not set. - - - `maxConnectionRetries` - Maximum number of connection retries. Defaults to `0` (no - retries). - Special values: - - - \-1 - Unlimited number of connection retries - - - 0 - No connection retries will be done - - - `connectionRetryDelay` - Delay in milliseconds between each retry attempt. Defaults to `5000` - (= 5 seconds). - - - `sslMode` - If you want to enable SSL support you should enable this parameter. - For example to connect Heroku you will need to use **prefer**. - - - "disable" - only try a non-SSL connection - - - "prefer" - first try an SSL connection; if that fails, try a non-SSL - connection - - - "require" - only try an SSL connection, but don’t verify Certificate - Authority - - - "verify-ca" - only try an SSL connection, and verify that the server - certificate is issued by a trusted certificate authority (CA) - - - "verify-full" - only try an SSL connection, verify that the server certificate - is issued by a trusted CA and that the server host name matches - that in the certificate - - - `sslRootCert` - Path to SSL root certificate file. Is used if you want to verify - privately issued certificate. Refer to - [postgresql-async](https://github.com/mauricio/postgresql-async) - documentation for more details. diff --git a/docs/manual/@vertx/pg-client/connections.md b/docs/manual/@vertx/pg-client/connections.md deleted file mode 100644 index 3d6120732..000000000 --- a/docs/manual/@vertx/pg-client/connections.md +++ /dev/null @@ -1,25 +0,0 @@ -# Using connections - -When you need to execute sequential queries (without a transaction), you -can create a new connection or borrow one from the pool: - -``` js -Code not translatable -``` - -Prepared queries can be created: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE $1", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - pq.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - // All rows - let rows = ar2.result(); - } - }); - } -}); -``` diff --git a/docs/manual/@vertx/pg-client/cursor.md b/docs/manual/@vertx/pg-client/cursor.md deleted file mode 100644 index 32cf39feb..000000000 --- a/docs/manual/@vertx/pg-client/cursor.md +++ /dev/null @@ -1,81 +0,0 @@ -# Cursors and streaming - -By default prepared query execution fetches all rows, you can use a -`Cursor` to control the amount of rows you want to read: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE $1", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Cursors require to run within a transaction - let tx = connection.begin(); - - // Create a cursor - let cursor = pq.cursor(Tuple.of("julien")); - - // Read 50 rows - cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - - // Check for more ? - if (cursor.hasMore()) { - // Repeat the process... - } else { - // No more rows - commit the transaction - tx.commit(); - } - } - }); - } -}); -``` - -Cursors shall be closed when they are released prematurely: - -``` js -cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - // Close the cursor - cursor.close(); - } -}); -``` - -A stream API is also available for cursors, which can be more -convenient, specially with the Rxified version. - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE $1", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Streams require to run within a transaction - let tx = connection.begin(); - - // Fetch 50 rows at a time - let stream = pq.createStream(50, Tuple.of("julien")); - - // Use the stream - stream.exceptionHandler((err) => { - console.log("Error: " + err.getMessage()); - }); - stream.endHandler((v) => { - tx.commit(); - console.log("End of stream"); - }); - stream.handler((row) => { - console.log("User: " + row.getString("last_name")); - }); - } -}); -``` - -The stream read the rows by batch of `50` and stream them, when the rows -have been passed to the handler, a new batch of `50` is read and so on. - -The stream can be resumed or paused, the loaded rows will remain in -memory until they are delivered and the cursor will stop iterating. diff --git a/docs/manual/@vertx/pg-client/dataobjects.md b/docs/manual/@vertx/pg-client/dataobjects.md deleted file mode 100644 index 034dd65a1..000000000 --- a/docs/manual/@vertx/pg-client/dataobjects.md +++ /dev/null @@ -1,161 +0,0 @@ -# Box - -Rectangular box data type in Postgres represented by pairs of links that -are opposite corners of the box. - -| | | | -| ------------------- | ------- | ----------- | -| Name | Type | Description | -| `@lowerLeftCorner` | `Point` | \- | -| `@upperRightCorner` | `Point` | \- | - -# Circle - -Circle data type in Postgres represented by a center link and radius. - -| | | | -| -------------- | ----------------- | ----------- | -| Name | Type | Description | -| `@centerPoint` | `Point` | \- | -| `@radius` | `Number (double)` | \- | - -# Interval - -Postgres Interval is date and time based such as 120 years 3 months 332 -days 20 hours 20 minutes 20.999999 seconds - -| | | | -| --------------- | -------------- | ----------- | -| Name | Type | Description | -| `@days` | `Number (int)` | \- | -| `@hours` | `Number (int)` | \- | -| `@microseconds` | `Number (int)` | \- | -| `@minutes` | `Number (int)` | \- | -| `@months` | `Number (int)` | \- | -| `@seconds` | `Number (int)` | \- | -| `@years` | `Number (int)` | \- | - -# Line - -Line data type in Postgres represented by the linear equation Ax + By + -C = 0, where A and B are not both zero. - -| | | | -| ---- | ----------------- | ----------- | -| Name | Type | Description | -| `@a` | `Number (double)` | \- | -| `@b` | `Number (double)` | \- | -| `@c` | `Number (double)` | \- | - -# LineSegment - -Finite line segment data type in Postgres represented by pairs of links -that are the endpoints of the segment. - -| | | | -| ----- | ------- | ----------- | -| Name | Type | Description | -| `@p1` | `Point` | \- | -| `@p2` | `Point` | \- | - -# Path - -Path data type in Postgres represented by lists of connected points. -Paths can be open, where the first and last points in the list are -considered not connected, or closed, where the first and last points are -considered connected. - -| | | | -| --------- | ---------------- | ----------- | -| Name | Type | Description | -| `@open` | `Boolean` | \- | -| `@points` | `Array of Point` | \- | - -# PgConnectOptions - -| | | | -| ---------------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@cachePreparedStatements` | `Boolean` | \- | -| `@connectTimeout` | `Number (int)` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@database` | `String` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@host` | `String` | \- | -| `@hostnameVerificationAlgorithm` | `String` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@localAddress` | `String` | \- | -| `@logActivity` | `Boolean` | \- | -| `@metricsName` | `String` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@password` | `String` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@pipeliningLimit` | `Number (int)` | \- | -| `@port` | `Number (int)` | \- | -| `@preparedStatementCacheMaxSize` | `Number (int)` | \- | -| `@preparedStatementCacheSqlLimit` | `Number (int)` | \- | -| `@properties` | `String` | \- | -| `@proxyOptions` | `ProxyOptions` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reconnectAttempts` | `Number (int)` | \- | -| `@reconnectInterval` | `Number (long)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@sslMode` | `SslMode` | Set link for the client, this option can be used to provide different levels of secure protection. | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@trafficClass` | `Number (int)` | \- | -| `@trustAll` | `Boolean` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | -| `@user` | `String` | \- | -| `@usingDomainSocket` | `Boolean` | \- | - -# PgNotification - -A notification emited by Postgres. - -| | | | -| ------------ | -------------- | ---------------------- | -| Name | Type | Description | -| `@channel` | `String` | Set the channel value. | -| `@payload` | `String` | Set the payload value. | -| `@processId` | `Number (int)` | Set the process id. | - -# Point - -A Postgresql point. - -| | | | -| ---- | ----------------- | ----------- | -| Name | Type | Description | -| `@x` | `Number (double)` | \- | -| `@y` | `Number (double)` | \- | - -# Polygon - -Polygon data type in Postgres represented by lists of points (the -vertexes of the polygon). Polygons are very similar to closed paths, but -are stored differently and have their own set of support routines. - -| | | | -| --------- | ---------------- | ----------- | -| Name | Type | Description | -| `@points` | `Array of Point` | \- | diff --git a/docs/manual/@vertx/pg-client/enums.md b/docs/manual/@vertx/pg-client/enums.md deleted file mode 100644 index 16cc4e462..000000000 --- a/docs/manual/@vertx/pg-client/enums.md +++ /dev/null @@ -1,18 +0,0 @@ -# SslMode - -The different values for the sslmode parameter provide different levels -of protection. See more information in - -Protection Provided in Different Modes - -. - -| | | -| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `DISABLE` | only try a non-SSL connection. | -| `ALLOW` | first try a non-SSL connection; if that fails, try an SSL connection. | -| `PREFER` | first try an SSL connection; if that fails, try a non-SSL connection. | -| `REQUIRE` | only try an SSL connection. If a root CA file is present, verify the certificate in the same way as if verify-ca was specified. | -| `VERIFY_CA` | only try an SSL connection, and verify that the server certificate is issued by a trusted certificate authority (CA). | -| `VERIFY_FULL` | only try an SSL connection, verify that the server certificate is issued by a trusted CA and that the requested server host name matches that in the certificate. | diff --git a/docs/manual/@vertx/pg-client/index.md b/docs/manual/@vertx/pg-client/index.md deleted file mode 100644 index ac3e81d0c..000000000 --- a/docs/manual/@vertx/pg-client/index.md +++ /dev/null @@ -1,1249 +0,0 @@ -The Reactive PostgreSQL Client is a client for PostgreSQL with a -straightforward API focusing on scalability and low overhead. - -The client is reactive and non blocking, allowing to handle many -database connections with a single thread. - - - Event driven - - - Lightweight - - - Built-in connection pooling - - - Prepared queries caching - - - Publish / subscribe using PostgreSQL `NOTIFY/LISTEN` - - - Batch and cursor - - - Row streaming - - - Command pipeling - - - RxJava 1 and RxJava 2 - - - Direct memory to object without unnecessary copies - - - Java 8 Date and Time - - - SSL/TLS - - - Unix domain socket - - - HTTP/1.x CONNECT, SOCKS4a or SOCKS5 proxy support - -# Usage - -To use the Reactive PostgreSQL Client add the following dependency to -the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - ${maven.groupId} - ${maven.artifactId} - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile '${maven.groupId}:${maven.artifactId}:${maven.version}' -} -``` - -# Getting started - -Here is the simplest way to connect, query and disconnect - -``` js -import { PgPool } from "@vertx/pg-client" - -// Connect options -let connectOptions = new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the client pool -let client = PgPool.pool(connectOptions, poolOptions); - -// A simple query -client.query("SELECT * FROM users WHERE id='julien'").execute((ar) => { - if (ar.succeeded()) { - let result = ar.result(); - console.log("Got " + result.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } - - // Now close the pool - client.close(); -}); -``` - -# Connecting to PostgreSQL - -Most of the time you will use a pool to connect to PostgreSQL: - -``` js -import { PgPool } from "@vertx/pg-client" - -// Connect options -let connectOptions = new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pooled client -let client = PgPool.pool(connectOptions, poolOptions); -``` - -The pooled client uses a connection pool and any operation will borrow a -connection from the pool to execute the operation and release it to the -pool. - -If you are running with Vert.x you can pass it your Vertx instance: - -``` js -import { PgPool } from "@vertx/pg-client" - -// Connect options -let connectOptions = new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); -// Create the pooled client -let client = PgPool.pool(vertx, connectOptions, poolOptions); -``` - -You need to release the pool when you don’t need it anymore: - -``` js -// Close the pool and all the associated resources -pool.close(); -``` - -When you need to execute several operations on the same connection, you -need to use a client `connection`. - -You can easily get one from the pool: - -``` js -import { PgPool } from "@vertx/pg-client" - -// Connect options -let connectOptions = new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pooled client -let client = PgPool.pool(vertx, connectOptions, poolOptions); - -// Get a connection from the pool -client.getConnection((ar1) => { - - if (ar1.succeeded()) { - - console.log("Connected"); - - // Obtain our connection - let conn = ar1.result(); - - // All operations execute on the same connection - conn.query("SELECT * FROM users WHERE id='julien'").execute((ar2) => { - if (ar2.succeeded()) { - conn.query("SELECT * FROM users WHERE id='emad'").execute((ar3) => { - // Release the connection to the pool - conn.close(); - }); - } else { - // Release the connection to the pool - conn.close(); - } - }); - } else { - console.log("Could not connect: " + ar1.cause().getMessage()); - } -}); -``` - -Once you are done with the connection you must close it to release it to -the pool, so it can be reused. - -Sometimes you want to improve performance via Unix domain socket -connection, we achieve this with Vert.x Native transports. - -Make sure you have added the required `netty-transport-native` -dependency in your classpath and enabled the Unix domain socket option. - -``` js -import { PgPool } from "@vertx/pg-client" - -// Connect Options -// Socket file name will be /var/run/postgresql/.s.PGSQL.5432 -let connectOptions = new PgConnectOptions() - .setHost("/var/run/postgresql") - .setPort(5432) - .setDatabase("the-db"); - -// Pool options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pooled client -let client = PgPool.pool(connectOptions, poolOptions); - -// Create the pooled client with a vertx instance -// Make sure the vertx instance has enabled native transports -let client2 = PgPool.pool(vertx, connectOptions, poolOptions); -``` - -More information can be found in the \[Vert.x -documentation\](). - -# Configuration - -There are several alternatives for you to configure the client. - -## data object - -A simple way to configure the client is to specify a `PgConnectOptions` -data object. - -``` js -import { PgPool } from "@vertx/pg-client" - -// Data object -let connectOptions = new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret"); - -// Pool Options -let poolOptions = new PoolOptions() - .setMaxSize(5); - -// Create the pool from the data object -let pool = PgPool.pool(vertx, connectOptions, poolOptions); - -pool.getConnection((ar) => { - // Handling your connection -}); -``` - -You can also configure the generic properties with the `setProperties` -or `addProperty` methods. Note `setProperties` will override the default -client properties. - -For example, you can set a default schema for the connection with adding -a `search_path` property. - -``` js -Code not translatable -``` - -More information about the available properties can be found in the -[PostgreSQL -Manuals](https://www.postgresql.org/docs/current/runtime-config-client.html). - -## connection uri - -Apart from configuring with a `PgConnectOptions` data object, We also -provide you an alternative way to connect when you want to configure -with a connection URI: - -``` js -import { PgPool } from "@vertx/pg-client" -import { PgConnection } from "@vertx/pg-client" - -// Connection URI -let connectionUri = "postgresql://dbuser:secretpassword@database.server.com:3211/mydb"; - -// Create the pool from the connection URI -let pool = PgPool.pool(connectionUri); - -// Create the connection from the connection URI -PgConnection.connect(vertx, connectionUri, (res) => { - // Handling your connection -}); -``` - -More information about connection string formats can be found in the -[PostgreSQL -Manuals](https://www.postgresql.org/docs/9.6/static/libpq-connect.html#LIBPQ-CONNSTRING). - -Currently the client supports the following parameter key words in -connection uri - - - host - - - hostaddr - - - port - - - user - - - password - - - dbname - - - sslmode - - - properties including(application\_name, fallback\_application\_name, - search\_path) - -Note: configuring properties in connection URI will override the default -properties. - -## environment variables - -You can also use environment variables to set default connection setting -values, this is useful when you want to avoid hard-coding database -connection information. You can refer to the [official -documentation](https://www.postgresql.org/docs/9.6/static/libpq-envars.html) -for more details. The following parameters are supported: - - - `PGHOST` - - - `PGHOSTADDR` - - - `PGPORT` - - - `PGDATABASE` - - - `PGUSER` - - - `PGPASSWORD` - - - `PGSSLMODE` - -If you don’t specify a data object or a connection URI string to -connect, environment variables will take precedence over them. - -``` js -$ PGUSER=user \ - PGHOST=the-host \ - PGPASSWORD=secret \ - PGDATABASE=the-db \ - PGPORT=5432 \ - PGSSLMODE=DISABLE -``` - -``` js -import { PgPool } from "@vertx/pg-client" -import { PgConnection } from "@vertx/pg-client" - -// Create the pool from the environment variables -let pool = PgPool.pool(); - -// Create the connection from the environment variables -PgConnection.connect(vertx, (res) => { - // Handling your connection -}); -``` - -## SASL SCRAM-SHA-256 authentication mechanism. - -To use the sasl SCRAM-SHA-256 authentication add the following -dependency to the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - com.ongres.scram - client - 1.0.0-beta.2 - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile 'com.ongres.scram:client:1.0.0-beta.2' -} -``` - -Note that SCRAM-SHA-256-PLUS (added in Postgresql 11) is not supported. - -# Running queries - -When you don’t need a transaction or run single queries, you can run -queries directly on the pool; the pool will use one of its connection to -run the query and return the result to you. - -Here is how to run simple queries: - -``` js -client.query("SELECT * FROM users WHERE id='julien'").execute((ar) => { - if (ar.succeeded()) { - let result = ar.result(); - console.log("Got " + result.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Prepared queries - -You can do the same with prepared queries. - -The SQL string can refer to parameters by position, using the database -syntax \`$1\`, \`$2\`, etc…​ - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT * FROM users WHERE id=$1").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -Query methods provides an asynchronous `RowSet` instance that works for -*SELECT* queries - -``` js -client.preparedQuery("SELECT first_name, last_name FROM users").execute((ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - rows.forEach(row => { - console.log("User " + row.getString(0) + " " + row.getString(1)); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -or *UPDATE*/*INSERT* queries: - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("INSERT INTO users (first_name, last_name) VALUES ($1, $2)").execute(Tuple.of("Julien", "Viet"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log(rows.rowCount()); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -The `Row` gives you access to your data by index - -``` js -console.log("User " + row.getString(0) + " " + row.getString(1)); -``` - -or by name - -``` js -console.log("User " + row.getString("first_name") + " " + row.getString("last_name")); -``` - -The client will not do any magic here and the column name is identified -with the name in the table regardless of how your SQL text is. - -You can access a wide variety of of types - -``` js -let firstName = row.getString("first_name"); -let male = row.getBoolean("male"); -let age = row.getInteger("age"); - -// ... -``` - -You can use cached prepared statements to execute one-shot prepared -queries: - -``` js -import { Tuple } from "@vertx/sql-client" - -// Enable prepare statements caching -connectOptions.cachePreparedStatements = true; -client.preparedQuery("SELECT * FROM users WHERE id = $1").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -You can create a `PreparedStatement` and manage the lifecycle by -yourself. - -``` js -import { Tuple } from "@vertx/sql-client" -sqlConnection.prepare("SELECT * FROM users WHERE id = $1", (ar) => { - if (ar.succeeded()) { - let preparedStatement = ar.result(); - preparedStatement.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - console.log("Got " + rows.size() + " rows "); - preparedStatement.close(); - } else { - console.log("Failure: " + ar2.cause().getMessage()); - } - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Batches - -You can execute prepared batch - -``` js -import { Tuple } from "@vertx/sql-client" - -// Add commands to the batch -let batch = []; -batch.push(Tuple.of("julien", "Julien Viet")); -batch.push(Tuple.of("emad", "Emad Alblueshi")); - -// Execute the prepared batch -client.preparedQuery("INSERT INTO USERS (id, name) VALUES ($1, $2)").executeBatch(batch, (res) => { - if (res.succeeded()) { - - // Process rows - let rows = res.result(); - } else { - console.log("Batch failed " + res.cause()); - } -}); -``` - -You can fetch generated keys with a 'RETURNING' clause in your query: - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("INSERT INTO color (color_name) VALUES ($1), ($2), ($3) RETURNING color_id").execute(Tuple.of("white", "red", "blue"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log(rows.rowCount()); - rows.forEach(row => { - console.log("generated key: " + row.getInteger("color_id")); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -# Using connections - -When you need to execute sequential queries (without a transaction), you -can create a new connection or borrow one from the pool: - -``` js -Code not translatable -``` - -Prepared queries can be created: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE $1", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - pq.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - // All rows - let rows = ar2.result(); - } - }); - } -}); -``` - -# Using transactions - -## Transactions with connections - -You can execute transaction using SQL `BEGIN`/`COMMIT`/`ROLLBACK`, if -you do so you must use a `SqlConnection` and manage it yourself. - -Or you can use the transaction API of `SqlConnection`: - -``` js -pool.getConnection((res) => { - if (res.succeeded()) { - - // Transaction must use a connection - let conn = res.result(); - - // Begin the transaction - let tx = conn.begin(); - - // Various statements - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - // Return the connection to the pool - conn.close(); - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } -}); -``` - -When the database server reports the current transaction is failed (e.g -the infamous *current transaction is aborted, commands ignored until end -of transaction block*), the transaction is rollbacked and the -`abortHandler` is called: - -``` js -tx.abortHandler((v) => { - console.log("Transaction failed => rollbacked"); -}); -``` - -## Simplified transaction API - -When you use a pool, you can start a transaction directly on the pool. - -It borrows a connection from the pool, begins the transaction and -releases the connection to the pool when the transaction ends. - -``` js -// Acquire a transaction and begin the transaction -pool.begin((res) => { - if (res.succeeded()) { - - // Get the transaction - let tx = res.result(); - - // Various statements - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - // the connection will automatically return to the pool - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - }); - } - }); - } else { - // No need to close connection as transaction will abort and be returned to the pool - } - }); - } -}); -``` - -> **Note** -> -> this code will not close the connection because it will always be -> released back to the pool when the transaction - -# Cursors and streaming - -By default prepared query execution fetches all rows, you can use a -`Cursor` to control the amount of rows you want to read: - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE $1", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Cursors require to run within a transaction - let tx = connection.begin(); - - // Create a cursor - let cursor = pq.cursor(Tuple.of("julien")); - - // Read 50 rows - cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - - // Check for more ? - if (cursor.hasMore()) { - // Repeat the process... - } else { - // No more rows - commit the transaction - tx.commit(); - } - } - }); - } -}); -``` - -Cursors shall be closed when they are released prematurely: - -``` js -cursor.read(50, (ar2) => { - if (ar2.succeeded()) { - // Close the cursor - cursor.close(); - } -}); -``` - -A stream API is also available for cursors, which can be more -convenient, specially with the Rxified version. - -``` js -import { Tuple } from "@vertx/sql-client" -connection.prepare("SELECT * FROM users WHERE first_name LIKE $1", (ar1) => { - if (ar1.succeeded()) { - let pq = ar1.result(); - - // Streams require to run within a transaction - let tx = connection.begin(); - - // Fetch 50 rows at a time - let stream = pq.createStream(50, Tuple.of("julien")); - - // Use the stream - stream.exceptionHandler((err) => { - console.log("Error: " + err.getMessage()); - }); - stream.endHandler((v) => { - tx.commit(); - console.log("End of stream"); - }); - stream.handler((row) => { - console.log("User: " + row.getString("last_name")); - }); - } -}); -``` - -The stream read the rows by batch of `50` and stream them, when the rows -have been passed to the handler, a new batch of `50` is read and so on. - -The stream can be resumed or paused, the loaded rows will remain in -memory until they are delivered and the cursor will stop iterating. - -Note: PostreSQL destroys cursors at the end of a transaction, so the -cursor API shall be used within a transaction, otherwise you will likely -get the `34000` PostgreSQL error. - -# PostgreSQL type mapping - -Currently the client supports the following PostgreSQL types - - - BOOLEAN (`java.lang.Boolean`) - - - INT2 (`java.lang.Short`) - - - INT4 (`java.lang.Integer`) - - - INT8 (`java.lang.Long`) - - - FLOAT4 (`java.lang.Float`) - - - FLOAT8 (`java.lang.Double`) - - - CHAR (`java.lang.String`) - - - VARCHAR (`java.lang.String`) - - - TEXT (`java.lang.String`) - - - ENUM (`java.lang.String`) - - - NAME (`java.lang.String`) - - - SERIAL2 (`java.lang.Short`) - - - SERIAL4 (`java.lang.Integer`) - - - SERIAL8 (`java.lang.Long`) - - - NUMERIC (`io.vertx.sqlclient.data.Numeric`) - - - UUID (`java.util.UUID`) - - - DATE (`java.time.LocalDate`) - - - TIME (`java.time.LocalTime`) - - - TIMETZ (`java.time.OffsetTime`) - - - TIMESTAMP (`java.time.LocalDateTime`) - - - TIMESTAMPTZ (`java.time.OffsetDateTime`) - - - INTERVAL (`io.vertx.pgclient.data.Interval`) - - - BYTEA (`io.vertx.core.buffer.Buffer`) - - - JSON (`io.vertx.core.json.JsonObject`, - `io.vertx.core.json.JsonArray`, `Number`, `Boolean`, `String`, - `io.vertx.sqlclient.Tuple#JSON_NULL`) - - - JSONB (`io.vertx.core.json.JsonObject`, - `io.vertx.core.json.JsonArray`, `Number`, `Boolean`, `String`, - `io.vertx.sqlclient.Tuple#JSON_NULL`) - - - POINT (`io.vertx.pgclient.data.Point`) - - - LINE (`io.vertx.pgclient.data.Line`) - - - LSEG (`io.vertx.pgclient.data.LineSegment`) - - - BOX (`io.vertx.pgclient.data.Box`) - - - PATH (`io.vertx.pgclient.data.Path`) - - - POLYGON (`io.vertx.pgclient.data.Polygon`) - - - CIRCLE (`io.vertx.pgclient.data.Circle`) - - - TSVECTOR (`java.lang.String`) - - - TSQUERY (`java.lang.String`) - -Tuple decoding uses the above types when storing values, it also -performs on the flu conversion the actual value when possible: - -``` js -pool.query("SELECT 1::BIGINT \"VAL\"").execute((ar) => { - let rowSet = ar.result(); - let row = rowSet.iterator().next(); - - // Stored as java.lang.Long - let value = row.getValue(0); - - // Convert to java.lang.Integer - let intValue = row.getInteger(0); -}); -``` - -Tuple encoding uses the above type mapping for encoding, unless the type -is numeric in which case `java.lang.Number` is used instead: - -``` js -pool.query("SELECT 1::BIGINT \"VAL\"").execute((ar) => { - let rowSet = ar.result(); - let row = rowSet.iterator().next(); - - // Stored as java.lang.Long - let value = row.getValue(0); - - // Convert to java.lang.Integer - let intValue = row.getInteger(0); -}); -``` - -Arrays of these types are supported. - -## Handling JSON - -PostgreSQL `JSON` and `JSONB` types are represented by the following -Java types: - - - `String` - - - `Number` - - - `Boolean` - - - `io.vertx.core.json.JsonObject` - - - `io.vertx.core.json.JsonArray` - - - `io.vertx.sqlclient.Tuple#JSON_NULL` for representing the JSON null - literal - - - -``` js -Code not translatable -``` - -## Handling NUMERIC - -The `Numeric` Java type is used to represent the PostgreSQL `NUMERIC` -type. - -``` js -let numeric = row.get(Java.type("io.vertx.sqlclient.data.Numeric").class, 0); -if (numeric.isNaN()) { - // Handle NaN -} else { - let value = numeric.bigDecimalValue(); -} -``` - -# Handling arrays - -Arrays are available on `Tuple` and `Row`: - -``` js -Code not translatable -``` - -# Handling custom types - -Strings are used to represent custom types, both sent to and returned -from Postgres. - -You can read from PostgreSQL and get the custom type as a string - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT address, (address).city FROM address_book WHERE id=$1").execute(Tuple.of(3), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - rows.forEach(row => { - console.log("Full Address " + row.getString(0) + ", City " + row.getString(1)); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -You can also write to PostgreSQL by providing a string - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("INSERT INTO address_book (id, address) VALUES ($1, $2)").execute(Tuple.of(3, "('Anytown', 'Second Ave', false)"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log(rows.rowCount()); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -# Handling text search - -Text search is handling using java `String` - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT to_tsvector( $1 ) @@ to_tsquery( $2 )").execute(Tuple.of("fat cats ate fat rats", "fat & rat"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - rows.forEach(row => { - console.log("Match : " + row.getBoolean(0)); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -`tsvector` and `tsquery` can be fetched from db using java `String` - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT to_tsvector( $1 ), to_tsquery( $2 )").execute(Tuple.of("fat cats ate fat rats", "fat & rat"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - rows.forEach(row => { - console.log("Vector : " + row.getString(0) + ", query : " + row.getString(1)); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -# Collector queries - -You can use Java collectors with the query API: - -``` js -Code not translatable -``` - -The collector processing must not keep a reference on the `Row` as there -is a single row used for processing the entire set. - -The Java `Collectors` provides many interesting predefined collectors, -for example you can create easily create a string directly from the row -set: - -``` js -Code not translatable -``` - -# Pub/sub - -PostgreSQL supports pub/sub communication channels. - -You can set a `notificationHandler` to receive PostgreSQL notifications: - -``` js -connection.notificationHandler((notification) => { - console.log("Received " + notification.payload + " on channel " + notification.channel); -}); - -connection.query("LISTEN some-channel").execute((ar) => { - console.log("Subscribed to channel"); -}); -``` - -The `PgSubscriber` is a channel manager managing a single connection -that provides per channel subscription: - -``` js -import { PgSubscriber } from "@vertx/pg-client" - -let subscriber = PgSubscriber.subscriber(vertx, new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret")); - -// You can set the channel before connect -subscriber.channel("channel1").handler((payload) => { - console.log("Received " + payload); -}); - -subscriber.connect((ar) => { - if (ar.succeeded()) { - - // Or you can set the channel after connect - subscriber.channel("channel2").handler((payload) => { - console.log("Received " + payload); - }); - } -}); -``` - -The channel name that is given to the channel method will be the exact -name of the channel as held by PostgreSQL for sending notifications. -Note this is different than the representation of the channel name in -SQL, and internally `PgSubscriber` will prepare the submitted channel -name as a quoted identifier: - -``` js -import { PgSubscriber } from "@vertx/pg-client" - -let subscriber = PgSubscriber.subscriber(vertx, new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret")); - -subscriber.connect((ar) => { - if (ar.succeeded()) { - // Complex channel name - name in PostgreSQL requires a quoted ID - subscriber.channel("Complex.Channel.Name").handler((payload) => { - console.log("Received " + payload); - }); - subscriber.channel("Complex.Channel.Name").subscribeHandler((subscribed) => { - subscriber.actualConnection().query("NOTIFY \"Complex.Channel.Name\", 'msg'").execute((notified) => { - console.log("Notified \"Complex.Channel.Name\""); - }); - }); - - // PostgreSQL simple ID's are forced lower-case - subscriber.channel("simple_channel").handler((payload) => { - console.log("Received " + payload); - }); - subscriber.channel("simple_channel").subscribeHandler((subscribed) => { - // The following simple channel identifier is forced to lower case - subscriber.actualConnection().query("NOTIFY Simple_CHANNEL, 'msg'").execute((notified) => { - console.log("Notified simple_channel"); - }); - }); - - // The following channel name is longer than the current - // (NAMEDATALEN = 64) - 1 == 63 character limit and will be truncated - subscriber.channel("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbb").handler((payload) => { - console.log("Received " + payload); - }); - } -}); -``` - -You can provide a reconnect policy as a function that takes the number -of `retries` as argument and returns an `amountOfTime` value: - - - when `amountOfTime < 0`: the subscriber is closed and there is no - retry - - - when `amountOfTime = 0`: the subscriber retries to connect - immediately - - - when `amountOfTime > 0`: the subscriber retries after `amountOfTime` - milliseconds - - - -``` js -import { PgSubscriber } from "@vertx/pg-client" - -let subscriber = PgSubscriber.subscriber(vertx, new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret")); - -// Reconnect at most 10 times after 100 ms each -subscriber.reconnectPolicy((retries) => { - if (retries < 10) { - return 100 - } else { - return -1 - } -}); -``` - -The default policy is to not reconnect. - -# Cancelling Request - -PostgreSQL supports cancellation of requests in progress. You can cancel -inflight requests using `cancelRequest`. Cancelling a request opens a -new connection to the server and cancels the request and then close the -connection. - -``` js -connection.query("SELECT pg_sleep(20)").execute((ar) => { - if (ar.succeeded()) { - // imagine this is a long query and is still running - console.log("Query success"); - } else { - // the server will abort the current query after cancelling request - console.log("Failed to query due to " + ar.cause().getMessage()); - } -}); -connection.cancelRequest((ar) => { - if (ar.succeeded()) { - console.log("Cancelling request has been sent"); - } else { - console.log("Failed to send cancelling request"); - } -}); -``` - -> The cancellation signal might or might not have any effect — for -> example, if it arrives after the backend has finished processing the -> query, then it will have no effect. If the cancellation is effective, -> it results in the current command being terminated early with an error -> message. - -More information can be found in the [official -documentation](https://www.postgresql.org/docs/11/protocol-flow.html#id-1.10.5.7.9). - -# Using SSL/TLS - -To configure the client to use SSL connection, you can configure the -`PgConnectOptions` like a Vert.x `NetClient`. All [SSL -modes](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) -are supported and you are able to configure `sslmode`. The client is in -`DISABLE` SSL mode by default. `ssl` parameter is kept as a mere -shortcut for setting `sslmode`. `setSsl(true)` is equivalent to -`setSslMode(VERIFY_CA)` and `setSsl(false)` is equivalent to -`setSslMode(DISABLE)`. - -``` js -import { PgConnection } from "@vertx/pg-client" - -let options = new PgConnectOptions() - .setPort(5432) - .setHost("the-host") - .setDatabase("the-db") - .setUser("user") - .setPassword("secret") - .setSslMode("VERIFY_CA") - .setPemTrustOptions(new PemTrustOptions() - .setCertPaths(["/path/to/cert.pem"])); - -PgConnection.connect(vertx, options, (res) => { - if (res.succeeded()) { - // Connected with SSL - } else { - console.log("Could not connect " + res.cause()); - } -}); -``` - -More information can be found in the [Vert.x -documentation](http://vertx.io/docs/vertx-core/java/#ssl). - -# Using a proxy - -You can also configure the client to use an HTTP/1.x CONNECT, SOCKS4a or -SOCKS5 proxy. - -More information can be found in the [Vert.x -documentation](http://vertx.io/docs/vertx-core/java/#_using_a_proxy_for_client_connections). diff --git a/docs/manual/@vertx/pg-client/queries.md b/docs/manual/@vertx/pg-client/queries.md deleted file mode 100644 index df9c455f4..000000000 --- a/docs/manual/@vertx/pg-client/queries.md +++ /dev/null @@ -1,157 +0,0 @@ -# Running queries - -When you don’t need a transaction or run single queries, you can run -queries directly on the pool; the pool will use one of its connection to -run the query and return the result to you. - -Here is how to run simple queries: - -``` js -client.query("SELECT * FROM users WHERE id='julien'").execute((ar) => { - if (ar.succeeded()) { - let result = ar.result(); - console.log("Got " + result.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Prepared queries - -You can do the same with prepared queries. - -The SQL string can refer to parameters by position, using the database -syntax {PREPARED\_PARAMS} - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("SELECT * FROM users WHERE id=$1").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -Query methods provides an asynchronous `RowSet` instance that works for -*SELECT* queries - -``` js -client.preparedQuery("SELECT first_name, last_name FROM users").execute((ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - rows.forEach(row => { - console.log("User " + row.getString(0) + " " + row.getString(1)); - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -or *UPDATE*/*INSERT* queries: - -``` js -import { Tuple } from "@vertx/sql-client" -client.preparedQuery("INSERT INTO users (first_name, last_name) VALUES ($1, $2)").execute(Tuple.of("Julien", "Viet"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log(rows.rowCount()); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -The `Row` gives you access to your data by index - -``` js -console.log("User " + row.getString(0) + " " + row.getString(1)); -``` - -or by name - -``` js -console.log("User " + row.getString("first_name") + " " + row.getString("last_name")); -``` - -The client will not do any magic here and the column name is identified -with the name in the table regardless of how your SQL text is. - -You can access a wide variety of of types - -``` js -let firstName = row.getString("first_name"); -let male = row.getBoolean("male"); -let age = row.getInteger("age"); - -// ... -``` - -You can use cached prepared statements to execute one-shot prepared -queries: - -``` js -import { Tuple } from "@vertx/sql-client" - -// Enable prepare statements caching -connectOptions.cachePreparedStatements = true; -client.preparedQuery("SELECT * FROM users WHERE id = $1").execute(Tuple.of("julien"), (ar) => { - if (ar.succeeded()) { - let rows = ar.result(); - console.log("Got " + rows.size() + " rows "); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -You can create a `PreparedStatement` and manage the lifecycle by -yourself. - -``` js -import { Tuple } from "@vertx/sql-client" -sqlConnection.prepare("SELECT * FROM users WHERE id = $1", (ar) => { - if (ar.succeeded()) { - let preparedStatement = ar.result(); - preparedStatement.query().execute(Tuple.of("julien"), (ar2) => { - if (ar2.succeeded()) { - let rows = ar2.result(); - console.log("Got " + rows.size() + " rows "); - preparedStatement.close(); - } else { - console.log("Failure: " + ar2.cause().getMessage()); - } - }); - } else { - console.log("Failure: " + ar.cause().getMessage()); - } -}); -``` - -## Batches - -You can execute prepared batch - -``` js -import { Tuple } from "@vertx/sql-client" - -// Add commands to the batch -let batch = []; -batch.push(Tuple.of("julien", "Julien Viet")); -batch.push(Tuple.of("emad", "Emad Alblueshi")); - -// Execute the prepared batch -client.preparedQuery("INSERT INTO USERS (id, name) VALUES ($1, $2)").executeBatch(batch, (res) => { - if (res.succeeded()) { - - // Process rows - let rows = res.result(); - } else { - console.log("Batch failed " + res.cause()); - } -}); -``` diff --git a/docs/manual/@vertx/pg-client/transactions.md b/docs/manual/@vertx/pg-client/transactions.md deleted file mode 100644 index d91723423..000000000 --- a/docs/manual/@vertx/pg-client/transactions.md +++ /dev/null @@ -1,102 +0,0 @@ -# Using transactions - -## Transactions with connections - -You can execute transaction using SQL `BEGIN`/`COMMIT`/`ROLLBACK`, if -you do so you must use a `SqlConnection` and manage it yourself. - -Or you can use the transaction API of `SqlConnection`: - -``` js -pool.getConnection((res) => { - if (res.succeeded()) { - - // Transaction must use a connection - let conn = res.result(); - - // Begin the transaction - let tx = conn.begin(); - - // Various statements - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - conn.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - // Return the connection to the pool - conn.close(); - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } else { - // Return the connection to the pool - conn.close(); - } - }); - } -}); -``` - -When the database server reports the current transaction is failed (e.g -the infamous *current transaction is aborted, commands ignored until end -of transaction block*), the transaction is rollbacked and the -`abortHandler` is called: - -``` js -tx.abortHandler((v) => { - console.log("Transaction failed => rollbacked"); -}); -``` - -## Simplified transaction API - -When you use a pool, you can start a transaction directly on the pool. - -It borrows a connection from the pool, begins the transaction and -releases the connection to the pool when the transaction ends. - -``` js -// Acquire a transaction and begin the transaction -pool.begin((res) => { - if (res.succeeded()) { - - // Get the transaction - let tx = res.result(); - - // Various statements - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Julien','Viet')").execute((ar1) => { - if (ar1.succeeded()) { - tx.query("INSERT INTO Users (first_name,last_name) VALUES ('Emad','Alblueshi')").execute((ar2) => { - if (ar2.succeeded()) { - // Commit the transaction - // the connection will automatically return to the pool - tx.commit((ar3) => { - if (ar3.succeeded()) { - console.log("Transaction succeeded"); - } else { - console.log("Transaction failed " + ar3.cause().getMessage()); - } - }); - } - }); - } else { - // No need to close connection as transaction will abort and be returned to the pool - } - }); - } -}); -``` - -> **Note** -> -> this code will not close the connection because it will always be -> released back to the pool when the transaction diff --git a/docs/manual/@vertx/rabbitmq-client/dataobjects.md b/docs/manual/@vertx/rabbitmq-client/dataobjects.md deleted file mode 100644 index 08f30a8eb..000000000 --- a/docs/manual/@vertx/rabbitmq-client/dataobjects.md +++ /dev/null @@ -1,33 +0,0 @@ -# QueueOptions - -Aimed to specify queue consumer settings when calling link - -| | | | -| ----------------------- | -------------- | ----------- | -| Name | Type | Description | -| `@autoAck` | `Boolean` | | -| `@keepMostRecent` | `Boolean` | | -| `@maxInternalQueueSize` | `Number (int)` | | - -# RabbitMQOptions - -RabbitMQ client options, most - -| | | | -| --------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@automaticRecoveryEnabled` | `Boolean` | Enables or disables automatic connection recovery. | -| `@connectionRetries` | `Number (Integer)` | Set the number of connection retries to attempt when connecting, the `null` value disables it. | -| `@connectionRetryDelay` | `Number (long)` | Set the delay in milliseconds between connection retries. | -| `@connectionTimeout` | `Number (int)` | Set the TCP connection timeout, in milliseconds, `zero` for infinite). | -| `@handshakeTimeout` | `Number (int)` | Set the AMQP 0-9-1 protocol handshake timeout, in milliseconds | -| `@host` | `String` | Set the default host to use for connections. | -| `@includeProperties` | `Boolean` | Set wether to include properties when a broker message is passed on the event bus | -| `@networkRecoveryInterval` | `Number (long)` | Set how long in milliseconds will automatic recovery wait before attempting to reconnect, default is `5000` | -| `@password` | `String` | Set the password to use when connecting to the broker. | -| `@port` | `Number (int)` | Set the default port to use for connections. | -| `@requestedChannelMax` | `Number (int)` | Set the initially requested maximum channel number, `zero` for unlimited. | -| `@requestedHeartbeat` | `Number (int)` | Set the initially requested heartbeat interval, in seconds, `zero` for none. | -| `@uri` | `String` | \- | -| `@user` | `String` | Set the AMQP user name to use when connecting to the broker. | -| `@virtualHost` | `String` | Set the virtual host to use when connecting to the broker. | diff --git a/docs/manual/@vertx/rabbitmq-client/index.md b/docs/manual/@vertx/rabbitmq-client/index.md deleted file mode 100644 index 57cd75cc9..000000000 --- a/docs/manual/@vertx/rabbitmq-client/index.md +++ /dev/null @@ -1,307 +0,0 @@ -A Vert.x client allowing applications to interact with a RabbitMQ broker -(AMQP 0.9.1) - -**This service is experimental and the APIs are likely to change before -settling down.** - -# Getting Started - -## Maven - -Add the following dependency to your maven project - -``` xml - - io.vertx - vertx-rabbitmq-client - ${maven.version} - -``` - -## Gradle - -Add the following dependency to your gradle project - -``` groovy -dependencies { - compile 'io.vertx:vertx-rabbitmq-client:${maven.version}' -} -``` - -## Create a client - -You can create a client instance as follows using a full amqp uri: - -``` js -import { RabbitMQClient } from "@vertx/rabbitmq" -let config = new RabbitMQOptions(); -// full amqp uri -config.uri = "amqp://xvjvsrrc:VbuL1atClKt7zVNQha0bnnScbNvGiqgb@moose.rmq.cloudamqp.com/xvjvsrrc"; -let client = RabbitMQClient.create(vertx, config); -``` - -Or you can also specify individual parameters manually: - -``` js -import { RabbitMQClient } from "@vertx/rabbitmq" -let config = new RabbitMQOptions(); -// Each parameter is optional -// The default parameter with be used if the parameter is not set -config.user = "user1"; -config.password = "password1"; -config.host = "localhost"; -config.port = 5672; -config.virtualHost = "vhost1"; -config.connectionTimeout = 6000; -config.requestedHeartbeat = 60; -config.handshakeTimeout = 6000; -config.requestedChannelMax = 5; -config.networkRecoveryInterval = 500; -config.automaticRecoveryEnabled = true; - -let client = RabbitMQClient.create(vertx, config); -``` - -You can set multiples addresses to connect to a cluster; - -``` js -import { RabbitMQClient } from "@vertx/rabbitmq" -let config = new RabbitMQOptions(); -config.user = "user1"; -config.password = "password1"; -config.virtualHost = "vhost1"; - -config.addresses = [Java.type("com.rabbitmq.client.Address").parseAddresses("firstHost,secondHost:5672")]; - -let client = RabbitMQClient.create(vertx, config); -``` - -## Declare exchange with additional config - -You can pass additional config parameters to RabbitMQ’s exchangeDeclare -method - -``` js -let config = { -}; - -config.x-dead-letter-exchange = "my.deadletter.exchange"; -config.alternate-exchange = "my.alternate.exchange"; -// ... -client.exchangeDeclare("my.exchange", "fanout", true, false, config, (onResult) => { - if (onResult.succeeded()) { - console.log("Exchange successfully declared with config"); - } else { - onResult.cause().printStackTrace(); - } -}); -``` - -## Declare queue with additional config - -You can pass additional config parameters to RabbitMQs queueDeclare -method - -``` js -let config = { -}; -config.x-message-ttl = 10000; - -client.queueDeclare("my-queue", true, false, true, config, (queueResult) => { - if (queueResult.succeeded()) { - console.log("Queue declared!"); - } else { - console.error("Queue failed to be declared!"); - queueResult.cause().printStackTrace(); - } -}); -``` - -# Operations - -The following are some examples of the operations supported by the -RabbitMQService API. Consult the javadoc/documentation for detailed -information on all API methods. - -## Publish - -Publish a message to a queue - -``` js -let message = { - "body" : "Hello RabbitMQ, from Vert.x !" -}; -client.basicPublish("", "my.queue", message, (pubResult) => { - if (pubResult.succeeded()) { - console.log("Message published !"); - } else { - pubResult.cause().printStackTrace(); - } -}); -``` - -## Publish with confirm - -Publish a message to a queue and confirm the broker acknowledged it. - -``` js -let message = { - "body" : "Hello RabbitMQ, from Vert.x !" -}; - -// Put the channel in confirm mode. This can be done once at init. -client.confirmSelect((confirmResult) => { - if (confirmResult.succeeded()) { - client.basicPublish("", "my.queue", message, (pubResult) => { - if (pubResult.succeeded()) { - // Check the message got confirmed by the broker. - client.waitForConfirms((waitResult) => { - if (waitResult.succeeded()) { - console.log("Message published !")} else { - waitResult.cause().printStackTrace()} - }); - } else { - pubResult.cause().printStackTrace(); - } - }); - } else { - confirmResult.cause().printStackTrace(); - } -}); -``` - -## Consume - -Consume messages from a queue. - -``` js -// Create a stream of messages from a queue -client.basicConsumer("my.queue", (rabbitMQConsumerAsyncResult) => { - if (rabbitMQConsumerAsyncResult.succeeded()) { - console.log("RabbitMQ consumer created !"); - let mqConsumer = rabbitMQConsumerAsyncResult.result(); - mqConsumer.handler((message) => { - console.log("Got message: " + message.body().toString()); - }); - } else { - rabbitMQConsumerAsyncResult.cause().printStackTrace(); - } -}); -``` - -At any moment of time you can pause or resume the stream. When stream is -paused you won’t receive any message. - -``` js -consumer.pause(); -consumer.resume(); -``` - -There are actually a set of options to specify when creating a -consumption stream. - -The `QueueOptions` lets you specify: - - - The size of internal queue with `setMaxInternalQueueSize` - - - Should the stream keep more recent messages when queue size is - exceed with `setKeepMostRecent` - - - -``` js -let options = new QueueOptions() - .setMaxInternalQueueSize(1000) - .setKeepMostRecent(true); - -client.basicConsumer("my.queue", options, (rabbitMQConsumerAsyncResult) => { - if (rabbitMQConsumerAsyncResult.succeeded()) { - console.log("RabbitMQ consumer created !"); - } else { - rabbitMQConsumerAsyncResult.cause().printStackTrace(); - } -}); -``` - -When you want to stop consuming message from a queue, you can do: - -``` js -rabbitMQConsumer.cancel((cancelResult) => { - if (cancelResult.succeeded()) { - console.log("Consumption successfully stopped"); - } else { - console.log("Tired in attempt to stop consumption"); - cancelResult.cause().printStackTrace(); - } -}); -``` - -You can get notified by the end handler when the queue won’t process any -more messages: - -``` js -rabbitMQConsumer.endHandler((v) => { - console.log("It is the end of the stream"); -}); -``` - -You can set the exception handler to be notified of any error that may -occur when a message is processed: - -``` js -consumer.exceptionHandler((e) => { - console.log("An exception occurred in the process of message handling"); - e.printStackTrace(); -}); -``` - -And finally, you may want to retrive a related to the consumer tag: - -``` js -let consumerTag = consumer.consumerTag(); -console.log("Consumer tag is: " + consumerTag); -``` - -## Get - -Will get a message from a queue - -``` js -client.basicGet("my.queue", true, (getResult) => { - if (getResult.succeeded()) { - let msg = getResult.result(); - console.log("Got message: " + msg.body); - } else { - getResult.cause().printStackTrace(); - } -}); -``` - -## Consume messages without auto-ack - -``` js -// Setup the rabbitmq consumer -client.basicConsumer("my.queue", new QueueOptions() - .setAutoAck(false), (consumeResult) => { - if (consumeResult.succeeded()) { - console.log("RabbitMQ consumer created !"); - let consumer = consumeResult.result(); - - // Set the handler which messages will be sent to - consumer.handler((msg) => { - let json = msg.body(); - console.log("Got message: " + json.body); - // ack - client.basicAck(json.deliveryTag, false, (asyncResult) => { - }); - }); - } else { - consumeResult.cause().printStackTrace(); - } -}); -``` - -# Running the tests - -You will need to have RabbitMQ installed and running with default ports -on localhost for this to work. diff --git a/docs/manual/@vertx/redis-client/dataobjects.md b/docs/manual/@vertx/redis-client/dataobjects.md deleted file mode 100644 index e5db9a8ca..000000000 --- a/docs/manual/@vertx/redis-client/dataobjects.md +++ /dev/null @@ -1,196 +0,0 @@ -# BitFieldGetCommand - -| | | | -| --------- | --------------- | ----------- | -| Name | Type | Description | -| `@offset` | `Number (long)` | \- | -| `@type` | `String` | \- | - -# BitFieldIncrbyCommand - -| | | | -| ------------ | --------------- | ----------- | -| Name | Type | Description | -| `@increment` | `Number (long)` | \- | -| `@offset` | `Number (long)` | \- | -| `@type` | `String` | \- | - -# BitFieldOptions - -| | | | -| --------- | ----------------------- | ----------- | -| Name | Type | Description | -| `@get` | `BitFieldGetCommand` | \- | -| `@incrby` | `BitFieldIncrbyCommand` | \- | -| `@set` | `BitFieldSetCommand` | \- | - -# BitFieldSetCommand - -| | | | -| --------- | --------------- | ----------- | -| Name | Type | Description | -| `@offset` | `Number (long)` | \- | -| `@type` | `String` | \- | -| `@value` | `Number (long)` | \- | - -# GeoMember - -| | | | -| ------------ | ----------------- | ---------------------------------------------------------- | -| Name | Type | Description | -| `@latitude` | `Number (Double)` | Set Latitude as per EPSG:900913 / EPSG:3785 / OSGEO:41001 | -| `@longitude` | `Number (Double)` | Set Longitude as per EPSG:900913 / EPSG:3785 / OSGEO:41001 | -| `@member` | `String` | Set the member name. | - -# GeoRadiusOptions - -| | | | -| ------------ | --------------- | ---------------------------------------------- | -| Name | Type | Description | -| `@count` | `Number (Long)` | Set the radius options limit the result count. | -| `@withCoord` | `Boolean` | Set the radius options to be coordinate based. | -| `@withDist` | `Boolean` | Set the radius options to be distance based. | -| `@withHash` | `Boolean` | Set the radius options to be hash based. | - -# KillFilter - -| | | | -| --------- | --------- | ----------------- | -| Name | Type | Description | -| `@addr` | `String` | Set ADDR filter | -| `@id` | `String` | Set ID filter | -| `@skipme` | `Boolean` | Set SKIPME filter | -| `@type` | `Type` | Set TYPE filter | - -# LimitOptions - -| | | | -| --------- | --------------- | ----------- | -| Name | Type | Description | -| `@count` | `Number (Long)` | \- | -| `@offset` | `Number (Long)` | \- | - -# MigrateOptions - -| | | | -| ---------- | --------- | ----------- | -| Name | Type | Description | -| `@copy` | `Boolean` | \- | -| `@replace` | `Boolean` | \- | - -# RangeLimitOptions - -| | | | -| ------------- | --------------- | ----------- | -| Name | Type | Description | -| `@count` | `Number (Long)` | \- | -| `@offset` | `Number (Long)` | \- | -| `@withscores` | `Boolean` | \- | - -# RedisOptions - -Redis Client Configuration options. - -| | | | -| ---------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@connectionString` | `String` | Sets a single connection string (endpoint) to use while connecting to the redis server. Will replace the previously configured connection strings. Does not support rediss (redis over ssl scheme) for now. | -| `@connectionStrings` | `Array of String` | Adds a connection string (endpoint) to use while connecting to the redis server. Only the cluster mode will consider more than 1 element. If more are provided, they are not considered by the client when in single server mode. Does not support rediss (redis over ssl scheme) for now. | -| `@endpoint` | `String` | Sets a single connection string to use while connecting to the redis server. Will replace the previously configured connection strings. | -| `@endpoints` | `Array of String` | Set the endpoints to use while connecting to the redis server. Only the cluster mode will consider more than 1 element. If more are provided, they are not considered by the client when in single server mode. | -| `@masterName` | `String` | Set the master name (only considered in HA mode). | -| `@maxNestedArrays` | `Number (int)` | Tune how much nested arrays are allowed on a redis response. This affects the parser performance. | -| `@maxPoolSize` | `Number (int)` | Tune the maximum size of the connection pool. When working with cluster or sentinel this value should be atleast the total number of cluster member (or number of sentinels + 1) | -| `@maxPoolWaiting` | `Number (int)` | Tune the maximum waiting requests for a connection from the pool. | -| `@maxWaitingHandlers` | `Number (int)` | The client will always work on pipeline mode, this means that messages can start queueing. You can control how much backlog you're willing to accept. This methods sets how much handlers is the client willing to queue. | -| `@netClientOptions` | `NetClientOptions` | Set the net client options to be used while connecting to the redis server. Use this to tune your connection. | -| `@poolCleanerInterval` | `Number (int)` | Tune how often in milliseconds should the connection pool cleaner execute. | -| `@poolRecycleTimeout` | `Number (int)` | Tune when a connection should be recycled in milliseconds. | -| `@role` | `RedisRole` | Set the role name (only considered in HA mode). | -| `@type` | `RedisClientType` | Set the desired client type to be created. | -| `@useSlave` | `RedisSlaves` | Set whether or not to use slave nodes (only considered in Cluster mode). | - -# RedisOptions - -| | | | -| ---------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@address` | `String` | Set the eventbus address prefix for \`PUB/SUB\`. \* @param address address prefix. | -| `@auth` | `String` | Set the password for authentication at connection time. | -| `@binary` | `Boolean` | Set the messages to/from redis as binary, default \`false\`. \* @param binary use binary messages | -| `@connectTimeout` | `Number (int)` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@domainSocket` | `Boolean` | Set the domain socket enabled option, default \`false\`. | -| `@domainSocketAddress` | `String` | Set the domain socket address where the Redis server is listening. | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@encoding` | `String` | Set the user defined character encoding, e.g.: \`iso-8859-1\`. \* @param encoding the user character encoding | -| `@host` | `String` | Set the host name where the Redis server is listening. \* @param host host name | -| `@hostnameVerificationAlgorithm` | `String` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@localAddress` | `String` | \- | -| `@logActivity` | `Boolean` | \- | -| `@masterName` | `String` | Set name of Redis master (used with Sentinel). | -| `@metricsName` | `String` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@port` | `Number (int)` | Set the tcp port where the Redis server is listening. | -| `@proxyOptions` | `ProxyOptions` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reconnectAttempts` | `Number (int)` | \- | -| `@reconnectInterval` | `Number (long)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@select` | `Number (Integer)` | Set the database to select at connection time. \* @param select database id | -| `@sendBufferSize` | `Number (int)` | \- | -| `@sentinels` | `Array of String` | Set the list of Sentinels. | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@trafficClass` | `Number (int)` | \- | -| `@trustAll` | `Boolean` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | - -# ScanOptions - -| | | | -| -------- | -------------- | ----------- | -| Name | Type | Description | -| `@count` | `Number (int)` | \- | -| `@match` | `String` | \- | - -# SetOptions - -| | | | -| ----- | --------------- | ----------- | -| Name | Type | Description | -| `@ex` | `Number (long)` | \- | -| `@nx` | `Boolean` | \- | -| `@px` | `Number (long)` | \- | -| `@xx` | `Boolean` | \- | - -# SortOptions - -| | | | -| ------------- | ----------------- | ----------- | -| Name | Type | Description | -| `@alpha` | `Boolean` | \- | -| `@by` | `String` | \- | -| `@descending` | `Boolean` | \- | -| `@gets` | `Array of String` | \- | -| `@store` | `String` | \- | diff --git a/docs/manual/@vertx/redis-client/enums.md b/docs/manual/@vertx/redis-client/enums.md deleted file mode 100644 index 142c1cd5e..000000000 --- a/docs/manual/@vertx/redis-client/enums.md +++ /dev/null @@ -1,162 +0,0 @@ -# AggregateOptions - -| | | -| ------ | ----------- | -| Name | Description | -| `NONE` | \- | -| `SUM` | \- | -| `MIN` | \- | -| `MAX` | \- | - -# BitFieldOverflowOptions - -| | | -| ------ | ----------- | -| Name | Description | -| `WRAP` | \- | -| `SAT` | \- | -| `FAIL` | \- | - -# BitOperation - -| | | -| ----- | ----------- | -| Name | Description | -| `AND` | \- | -| `OR` | \- | -| `XOR` | \- | -| `NOT` | \- | - -# ClientReplyOptions - -| | | -| ------ | ----------- | -| Name | Description | -| `ON` | \- | -| `OFF` | \- | -| `SKIP` | \- | - -# FailoverOptions - -| | | -| ---------- | ----------- | -| Name | Description | -| `FORCE` | \- | -| `TAKEOVER` | \- | - -# GeoUnit - -| | | -| ---- | ----------- | -| Name | Description | -| `m` | Meter | -| `km` | Kilometer | -| `mi` | Mile | -| `ft` | Feet | - -# InsertOptions - -| | | -| -------- | ----------- | -| Name | Description | -| `BEFORE` | \- | -| `AFTER` | \- | - -# ObjectCmd - -| | | -| ---------- | ----------- | -| Name | Description | -| `REFCOUNT` | \- | -| `ENCODING` | \- | -| `IDLETIME` | \- | - -# RangeOptions - -| | | -| ------------ | ----------- | -| Name | Description | -| `NONE` | \- | -| `WITHSCORES` | \- | - -# RedisClientType - -Define what kind of behavior is expected from the client. - -| | | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `STANDALONE` | The client should work in single server mode (the default). | -| `SENTINEL` | The client should work in sentinel mode. When this mode is active use the link to define which role to get the client connection to. | -| `CLUSTER` | The client should work in cluster mode. When this mode is active use the link to define when slave nodes can be used for read only queries. | - -# RedisRole - -Define which kind of role to be used in HA mode. - -| | | -| ---------- | ------------------------------- | -| Name | Description | -| `MASTER` | Use a MASTER node connection. | -| `SLAVE` | Use a SLAVE node connection. | -| `SENTINEL` | Use a SENTINEL node connection. | - -# RedisSlaves - -When should Redis Slave nodes be used for queries. - -| | | -| -------- | ------------------------------------------------------------- | -| Name | Description | -| `NEVER` | Never use SLAVES, queries are always run on a MASTER node. | -| `SHARE` | Queries can be randomly run on both MASTER and SLAVE nodes. | -| `ALWAYS` | Queries are always run on SLAVE nodes (never on MASTER node). | - -# ResetOptions - -| | | -| ------ | ----------- | -| Name | Description | -| `HARD` | \- | -| `SOFT` | \- | - -# ResponseType - -Define the response types that the client can receive from REDIS. - -| | | -| --------- | --------------------------------------------- | -| Name | Description | -| `SIMPLE` | C String simple String. | -| `ERROR` | C String simple String representing an error. | -| `INTEGER` | 64 bit integer value. | -| `BULK` | byte array value. | -| `MULTI` | List of multiple bulk responses. | - -# ScriptDebugOptions - -| | | -| ------ | ----------- | -| Name | Description | -| `YES` | \- | -| `SYNC` | \- | -| `NO` | \- | - -# ShutdownOptions - -| | | -| -------- | ----------- | -| Name | Description | -| `NONE` | \- | -| `SAVE` | \- | -| `NOSAVE` | \- | - -# SlotCmd - -| | | -| ----------- | ----------- | -| Name | Description | -| `IMPORTING` | \- | -| `MIGRATING` | \- | -| `STABLE` | \- | -| `NODE` | \- | diff --git a/docs/manual/@vertx/redis-client/index.md b/docs/manual/@vertx/redis-client/index.md deleted file mode 100644 index 813bae60e..000000000 --- a/docs/manual/@vertx/redis-client/index.md +++ /dev/null @@ -1,372 +0,0 @@ -Vert.x-redis is redis client to be used with Vert.x. - -This module allows data to be saved, retrieved, searched for, and -deleted in a Redis. Redis is an open source, advanced key-value store. -It is often referred to as a data structure server since keys can -contain strings, hashes, lists, sets and sorted sets. To use this module -you must have a Redis server instance running on your network. - -Redis has a rich API and it can be organized in the following groups: - - - Cluster - Commands related to cluster management, note that using - most of these commands you will need a redis server with version - \>=3.0.0 - - - Connection - Commands that allow you to switch DBs, connect, - disconnect and authenticate to a server. - - - Hashes - Commands that allow operations on hashes. - - - HyperLogLog - Commands to approximating the number of distinct - elements in a multiset, a HyperLogLog. - - - Keys - Commands to work with Keys. - - - List - Commands to work with Lists. - - - Pub/Sub - Commands to create queues and pub/sub clients. - - - Scripting - Commands to run Lua Scripts in redis. - - - Server - Commands to manage and get server configurations. - - - Sets - Commands to work with un ordered sets. - - - Sorted Sets - Commands to work with sorted sets. - - - Strings - Commands to work with Strings. - - - Transactions - Commands to handle transaction lifecycle. - - - Streams - Commands to handle streaming. - -# Using Vert.x-Redis - -To use the Vert.x Redis client, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - -io.vertx -vertx-redis-client -${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-redis-client:${maven.version}' -``` - -# Connecting to Redis - -The Redis client can operate in 3 distinct modes: - - - Simple client (probably what most users need). - - - Sentinel (when working with Redis in High Availability mode). - - - Cluster (when working with Redis in Clustered mode). - -The connection mode is selected by the factory method on the Redis -interface. Regardless of the mode the client can be configured using a -`RedisOptions` data object. By default some configuration values are -initialized with the following values: - - - `netClientOptions`: default is `TcpKeepAlive: true`, `TcpNoDelay: - true` - - - `endpoint`: default is `redis://localhost:6379` - - - `masterName`: default is `mymaster` - - - `role` default is `MASTER` - - - `slaves` default is `NEVER` - -In order to obtain a connection use the following code: - -``` js -import { Redis } from "@vertx/redis-client" -Redis.createClient(vertx, new RedisOptions()).connect((onConnect) => { - if (onConnect.succeeded()) { - let client = onConnect.result(); - } -}); -``` - -In the configuration contains a `password` and/or a `select` database, -these 2 commands will be executed automatically once a successful -connection is established to the server. - -``` js -import { Redis } from "@vertx/redis-client" -Redis.createClient(vertx, "redis://:abracadabra@localhost:6379/1").connect((onConnect) => { - if (onConnect.succeeded()) { - let client = onConnect.result(); - } -}); -``` - -# Connection String - -The client will recognize addresses that follow the expression: - - redis://[:password@]host[:port][/db-number] - -Or - - unix://[:password@]/domain/docker.sock[?select=db-number] - -When specifying a password or a database those commands are always -executed on connection start. - -# Running commands - -Given that the redis client is connected to the server, all commands are -now possible to execute using this module. The module offers a clean API -for executing commands without the need to hand write the command -itself, for example if one wants to get a value of a key it can be done -as: - -``` js -import { RedisAPI } from "@vertx/redis-client" -let redis = RedisAPI.api(client); - -redis.get("mykey", (res) => { - if (res.succeeded()) { - // so something... - } -}); -``` - -The response object is a generic type that allow converting from the -basic redis types to your language types. For example, if your response -is of type `INTEGER` then you can get the value as any numeric primitive -type `int`, `long`, etc…​ - -Or you can perform more complex tasks such as handling responses as -iterators: - -``` js -// this is a multi redis response (think of it as an array -if (response.type() === ResponseType.MULTI) { - response.forEach(item => { - // do something with item... - }); -} -``` - -# High Availability mode - -To work with high availability mode the connection creation is quite -similar: - -``` js -import { Command } from "@vertx/redis-client" -import { Request } from "@vertx/redis-client" -import { Redis } from "@vertx/redis-client" -Redis.createClient(vertx, new RedisOptions() - .setType("SENTINEL") - .setConnectionStrings(["redis://127.0.0.1:5000", "redis://127.0.0.1:5001", "redis://127.0.0.1:5002"]) - .setMasterName("sentinel7000") - .setRole("MASTER")).connect((onConnect) => { - // assuming we got a connection to the master node - // query the info for the node - onConnect.result().send(Request.cmd(Command.INFO), (info) => { - // do something... - }); -}); -``` - -What is important to notice is that in this mode, an extra connection is -established to the server(s) and behind the scenes the client will -listen for events from the sentinel. When the sentinel notifies that we -switched masters, then an exception is send to the client and you can -decide what to do next. - -# Cluster mode - -To work with cluster the connection creation is quite similar: - -``` js -let options = new RedisOptions() - .setConnectionStrings(["redis://127.0.0.1:7000", "redis://127.0.0.1:7001", "redis://127.0.0.1:7002", "redis://127.0.0.1:7003", "redis://127.0.0.1:7004", "redis://127.0.0.1:7005"]); -``` - -In this case the configuration requires one of more members of the -cluster to be known. This list will be used to ask the cluster for the -current configuration, which means if any of the listed members is not -available it will be skipped. - -In cluster mode a connection is established to each node and special -care is needed when executing commands. It is recommended to read redis -manual in order to understand how clustering works. The client operating -in this mode will do a best effort to identify which slot is used by the -executed command in order to execute it on the right node. There could -be cases where this isn’t possible to identify and in that case as a -best effort the command will be run on a random node. - -# Pub/Sub mode - -Redis supports queues and pub/sub mode, when operated in this mode once -a connection invokes a subscriber mode then it cannot be used for -running other commands than the command to leave that mode. - -To start a subscriber one would do: - -``` js -import { Redis } from "@vertx/redis-client" - -Redis.createClient(vertx, new RedisOptions()).connect((onConnect) => { - if (onConnect.succeeded()) { - let client = onConnect.result(); - - client.handler((message) => { - // do whatever you need to do with your message - }); - } -}); -``` - -And from another place in the code publish messages to the queue: - -``` js -import { Command } from "@vertx/redis-client" -import { Request } from "@vertx/redis-client" - -redis.send(Request.cmd(Command.PUBLISH).arg("channel1").arg("Hello World!"), (res) => { - if (res.succeeded()) { - // published! - } -}); -``` - -> **Note** -> -> It is important to remember that the commands `SUBSCRIBE`, -> `UNSUBSCRIBE`, `PSUBSCRIBE` and `PUNSUBSCRIBE` are `void`. This means -> that the result in case of success is `null` not a instance of -> response. All messages are then routed through the handler on the -> client. - -# Domain Sockets - -Most of the examples shown connecting to a TCP sockets, however it is -also possible to use Redis connecting to a UNIX domain docket: - -``` js -import { Redis } from "@vertx/redis-client" - -Redis.createClient(vertx, "unix:///tmp/redis.sock").connect((onConnect) => { - if (onConnect.succeeded()) { - let client = onConnect.result(); - } -}); -``` - -Be aware that HA and cluster modes report server addresses always on TCP -addresses not domain sockets. So the combination is not possible. Not -because of this client but how Redis works. - -# Connection Pooling - -All client variations are backed by a connection pool. By default the -configuration sets the pool size to 1, which means that it operates just -like a single connection. There are 4 tunnables for the pool: - - - `maxPoolSize` the max number of connections on the pool (default - `6`) - - - `maxPoolWaiting` the max waiting handlers to get a connection on a - queue (default `24`) - - - `poolCleanerInterval` the interval when connections will be clean - default is `-1` (disabled) - - - `poolRecycleTimeout` the timeout to keep an open connection on the - pool waiting and then close (default `15_000`) - -Pooling is quite useful to avoid custom connection management, for -example you can just use as: - -``` js -import { Command } from "@vertx/redis-client" -import { Request } from "@vertx/redis-client" -import { Redis } from "@vertx/redis-client" -Redis.createClient(vertx, "redis://localhost:7006").send(Request.cmd(Command.PING), (send) => { - if (send.succeeded()) { - // Should have received a pong... - } -}); -``` - -It is important to observe that no connection was acquired or returned, -it’s all handled by the pool. However there might be some scalability -issues when more than 1 concurrent request attempts to get a connection -from the pool, in order to overcome this we need to tune the pool. A -common configuration is to set the maximum size of the pool to the -number of available CPU cores and allow requests to get a connection -from the pool to queue: - -``` js -import { Command } from "@vertx/redis-client" -import { Request } from "@vertx/redis-client" -import { Redis } from "@vertx/redis-client" -Redis.createClient(vertx, new RedisOptions() - .setConnectionString("redis://localhost:7006") - .setMaxPoolSize(8) - .setMaxWaitingHandlers(32)).send(Request.cmd(Command.PING), (send) => { - if (send.succeeded()) { - // Should have received a pong... - } -}); -``` - -> **Note** -> -> Pooling is not compatible with `SUBSCRIBE`, `UNSUBSCRIBE`, -> `PSUBSCRIBE` or `PUNSUBSCRIBE` because these commands will modify the -> way the connection operates and the connection cannot be reused. - -# Implementing Reconnect on Error - -While the connection pool is quite useful, for performance, a connection -should not be auto managed but controlled by you. In this case you will -need to handle connection recovery, error handling and reconnect. - -A typical scenario is that a user will want to reconnect to the server -whenever an error occurs. The automatic reconnect is not part of the -redis client as it will force a behaviour that might not match the user -expectations, for example: - -1. What should happen to current in-flight requests? - -2. Should the exception handler be invoked or not? - -3. What if the retry will also fail? - -4. Should the previous state (db, authentication, subscriptions) be - restored? - -5. Etc…​ - -In order to give the user full flexibility, this decision should not be -performed by the client. However a simple reconnect with backoff timeout -could be implemented as follows: - -``` js -Code not translatable -``` - -In this example the client object will be replaced on reconnect and the -application will retry up to 16 times with a backoff up to 1280ms. By -discarding the client we ensure that all old inflight responses are lost -and all new ones will be on the new connection. diff --git a/docs/manual/@vertx/service-discovery-backend-consul/consul-backend.md b/docs/manual/@vertx/service-discovery-backend-consul/consul-backend.md deleted file mode 100644 index 63eefd388..000000000 --- a/docs/manual/@vertx/service-discovery-backend-consul/consul-backend.md +++ /dev/null @@ -1,38 +0,0 @@ -# Consul backend - -\ The service discovery has a plug-able backend using the -`ServiceDiscoveryBackend` SPI. This is an implementation of the SPI -based on Consul. \ ==== Using the Consul backend \ To use the -Consul backend, add the following dependency to the *dependencies* -section of your build descriptor: \ \* Maven (in your `pom.xml`): -\ - -``` xml - -io.vertx -vertx-service-discovery-backend-consul -${maven.version} - -``` - -\ \* Gradle (in your `build.gradle` file): \ - -``` groovy -compile 'io.vertx:vertx-service-discovery-backend-consul:${maven.version}' -``` - -\ Be aware that you can have only a single implementation of the SPI -in your *classpath*. If none, the default backend is used. \ ==== -Configuration \ The backend is based on the -[vertx-consul-client](http://vertx.io/docs/vertx-consul-client/java). -The configuration is the client configuration. \ Here is an example: -\ - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions() - .setBackendConfiguration({ - "defaultHost" : "127.0.0.1", - "dc" : "my-dc" - })); -``` diff --git a/docs/manual/@vertx/service-discovery-backend-redis/redis-backend.md b/docs/manual/@vertx/service-discovery-backend-redis/redis-backend.md deleted file mode 100644 index b9a83666b..000000000 --- a/docs/manual/@vertx/service-discovery-backend-redis/redis-backend.md +++ /dev/null @@ -1,65 +0,0 @@ -# Redis backend - -The service discovery has a plug-able backend using the -`ServiceDiscoveryBackend` SPI. This is an implementation of the SPI -based on Redis. - -## Using the Redis backend - -To use the Redis backend, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-service-discovery-backend-redis - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-service-discovery-backend-redis:${maven.version}' -``` - -Be aware that you can have only a single implementation of the SPI in -your *classpath*. If none, the default backend is used. - -## Configuration - -The backend is based on the -[vertx-redis-client](http://vertx.io/docs/vertx-redis-client/java). The -configuration is the client configuration as well as `key` indicating in -which *key* on Redis the records are stored. - -Here is an example: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions() - .setBackendConfiguration({ - "host" : "127.0.0.1", - "key" : "records" - })); -``` - -It’s important to note that the backend configuration is passed in the -`setBackendConfiguration` method (or `backendConfiguration` entry if you -use JSON): - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions() - .setBackendConfiguration({ - "host" : "localhost", - "port" : 1234, - "key" : "my-records" - })); -``` diff --git a/docs/manual/@vertx/service-discovery-backend-zookeeper/index.md b/docs/manual/@vertx/service-discovery-backend-zookeeper/index.md deleted file mode 100644 index 4593a560f..000000000 --- a/docs/manual/@vertx/service-discovery-backend-zookeeper/index.md +++ /dev/null @@ -1,94 +0,0 @@ -# Vert.x Discovery Backend - Zookeeper - -The service discovery has a plug-able backend using the -`ServiceDiscoveryBackend` SPI. This is an implementation of the SPI -based on Apache Zookeeper. - -# Using the Zookeeper backend - -To use the Zookeeper backend, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-service-discovery-backend-zookeeper - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-service-discovery-backend-zookeeper:${maven.version}' -``` - -Be aware that you can have only a single implementation of the SPI in -your *classpath*. If none, the default backend is used. - -# Configuration - -There is a single mandatory configuration attribute: `connection`. -Connection is the Zookeeper connection *string*. - -Here is an example: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions() - .setBackendConfiguration({ - "connection" : "127.0.0.1:2181" - })); -``` - -Additionally you can configure: - - - `maxRetries`: the number of connection attempt, 3 by default - - - `baseSleepTimeBetweenRetries`: the amount of milliseconds to wait - between retries (exponential backoff strategy). 1000 ms by default. - - - `connectionTimeoutMs`: the connection timeout in milliseconds. - Defaults to 1000. - - - `canBeReadOnly` : whether or not the backend support the *read-only* - mode (defaults to false) - - - `basePath`: the Zookeeper path in which the service records are - stored. Default to `/services`. - - - `ephemeral`: whether or not the created nodes are ephemeral nodes - (see - ). - `false` by default - - - `guaranteed`: whether or not to guarantee the node deletion even in - case of failure. `false` by default - - - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions() - .setBackendConfiguration({ - "connection" : "127.0.0.1:2181", - "ephemeral" : true, - "guaranteed" : true, - "basePath" : "/services/my-backend" - })); -``` - -# How are stored the records - -The records are stored in individual nodes structured as follows: - - basepath (/services/) - | - |- record 1 registration id => the record 1 is the data of this node - |- record 2 registration id => the record 2 is the data of this node diff --git a/docs/manual/@vertx/service-discovery-bridge-consul/consul-bridge.md b/docs/manual/@vertx/service-discovery-bridge-consul/consul-bridge.md deleted file mode 100644 index f2cb56c6e..000000000 --- a/docs/manual/@vertx/service-discovery-bridge-consul/consul-bridge.md +++ /dev/null @@ -1,65 +0,0 @@ -# Consul bridge - -This discovery bridge imports services from [Consul](http://consul.io) -into the Vert.x service discovery. The bridge connects to a Consul agent -(server) and periodically scan for services: - - - new services are imported - - - services in maintenance mode or that has been removed from consul - are removed - -This bridge uses the HTTP API for Consul. It does not export to Consul -and does not support service modification. - -The service type is deduced from `tags`. If a `tag` matches a known -service type, this service type will be used. If not, the service is -imported as `unknown`. Only `http-endpoint` is supported for now. - -## Using the bridge - -To use this Vert.x discovery bridge, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-service-discovery-bridge-consul - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-service-discovery-bridge-consul:${maven.version}' -``` - -Then, when creating the service discovery registers this bridge as -follows: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx).registerServiceImporter(new (Java.type("io.vertx.servicediscovery.consul.ConsulServiceImporter"))(), { - "host" : "localhost", - "port" : 8500, - "scan-period" : 2000 -}); -``` - -You can configure the: - - - agent host using the `host` property, it defaults to `localhost` - - - agent port using the `port` property, it defaults to 8500 - - - acl token using the `acl_token` property, it defaults to null - - - scan period using the `scan-period` property. The time is set in ms, - and is 2000 ms by default diff --git a/docs/manual/@vertx/service-discovery-bridge-docker-links/docker-links-bridge.md b/docs/manual/@vertx/service-discovery-bridge-docker-links/docker-links-bridge.md deleted file mode 100644 index e9ec34ab8..000000000 --- a/docs/manual/@vertx/service-discovery-bridge-docker-links/docker-links-bridge.md +++ /dev/null @@ -1,48 +0,0 @@ -# Docker Links bridge - -This discovery bridge imports services from Docker Links into the Vert.x -service discovery. When you link a Docker container to another Docker -container, Docker injects a set of environment variables. This bridge -analyzes these environment variables and imports service record for each -link. The service type is deduced from the `service.type` label. If not -set, the service is imported as `unknown`. Only `http-endpoint` are -supported for now. - -As the links are created when the container starts, the imported records -are created when the bridge starts and do not change afterwards. - -## Using the bridge - -To use this Vert.x discovery bridge, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-service-discovery-bridge-docker - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-service-discovery-bridge-docker:${maven.version}' -``` - -Then, when creating the service discovery, registers this bridge as -follows: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx).registerServiceImporter(new (Java.type("io.vertx.servicediscovery.docker.DockerLinksServiceImporter"))(), { -}); -``` - -The bridge does not need any further configuration. diff --git a/docs/manual/@vertx/service-discovery-bridge-kubernetes/kubernetes-bridge.md b/docs/manual/@vertx/service-discovery-bridge-kubernetes/kubernetes-bridge.md deleted file mode 100644 index 9e5df7f14..000000000 --- a/docs/manual/@vertx/service-discovery-bridge-kubernetes/kubernetes-bridge.md +++ /dev/null @@ -1,90 +0,0 @@ -# Kubernetes bridge - -This discovery bridge imports services from Kubernetes (or Openshift v3) -into the Vert.x service discovery. Kubernetes services are mapped to -`Record`. This bridge only supports the importation of services from -kubernetes in vert.x (and not the opposite). - -`Record` are created from Kubernetes Service. The service type is -deduced from the `service-type` label or from the port exposed by the -service. - -## Using the bridge - -To use this Vert.x discovery bridge, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-service-discovery-bridge-kubernetes - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-service-discovery-bridge-kubernetes:${maven.version}' -``` - -## Configuring the bridge - -The bridge is configured using: - - - the oauth token (using the content of - `/var/run/secrets/kubernetes.io/serviceaccount/token` by default) - - - the namespace in which the service are searched (defaults to - `default`). - -Be aware that the application must have access to Kubernetes and must be -able to read the chosen namespace. - -## The Service to Record mapping - -The record is created as follows: - - - the service type is deduced from the `service.type` label. If this - label is not set the service type is set to `unknown` - - - the record’s name is the service’s name - - - the labels of the service are mapped to metadata - - - in addition are added: `kubernetes.uuid`, `kubernetes.namespace`, - `kubernetes.name` - - - the location is deduced from the\*first\*\* port of the service - -For HTTP endpoints, the `ssl` (`https`) attribute is set to `true` if -the service has the `ssl` label set to `true`. - -## Dynamics - -The bridge imports all services on `start` and removes them on `stop`. -In between it watches the Kubernetes services and add the new ones and -removes the deleted ones. - -## Supported types - -The bridge uses the `service-type` label to induce the type. In addition -it checks the port of the service. Are supported: - - - ports 80, 443 and from 8080 to 9000: HTTP endpoint - - - ports 5432 and 5433: JDBC data source (PostGreSQL) - - - ports 3306 and 13306: JDBC data source (MySQL) - - - port 6379: Redis data source - - - ports 27017, 27018 and 27019: MongoDB data source - -If present, the `service-type` overrides the port-based deduction. diff --git a/docs/manual/@vertx/service-discovery-bridge-zookeeper/zookeeper-bridge.md b/docs/manual/@vertx/service-discovery-bridge-zookeeper/zookeeper-bridge.md deleted file mode 100644 index 916c58d58..000000000 --- a/docs/manual/@vertx/service-discovery-bridge-zookeeper/zookeeper-bridge.md +++ /dev/null @@ -1,76 +0,0 @@ -# Zookeeper bridge - -This discovery bridge imports services from [Apache -Zookeeper](https://zookeeper.apache.org/) into the Vert.x service -discovery. The bridge uses the [Curator extension for service -discovery](http://curator.apache.org/curator-x-discovery/). - -Service description are read as JSON Object (merged in the Vert.x -service record metadata). The service type is deduced from this -description by reading the `service-type`. - -## Using the bridge - -To use this Vert.x discovery bridge, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-service-discovery-bridge-zookeeper - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-service-discovery-bridge-zookeeper:${maven.version}' -``` - -Then, when creating the service discovery registers this bridge as -follows: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx).registerServiceImporter(new (Java.type("io.vertx.servicediscovery.zookeeper.ZookeeperServiceImporter"))(), { - "connection" : "127.0.0.1:2181" -}); -``` - -Only the `connection` configuration is mandatory. It’s the connection -*string* of the Zookeeper server. - -In addition you can configure: - - - `maxRetries`: the number of connection attempt, 3 by default - - - `baseSleepTimeBetweenRetries`: the amount of milliseconds to wait - between retries (exponential backoff strategy). 1000 ms by default. - - - `basePath`: the Zookeeper path in which the service are stored. - Default to `/discovery`. - - - `connectionTimeoutMs`: the connection timeout in milliseconds. - Defaults to 1000. - - - `canBeReadOnly` : whether or not the backend support the *read-only* - mode (defaults to true) - - - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -ServiceDiscovery.create(vertx).registerServiceImporter(new (Java.type("io.vertx.servicediscovery.zookeeper.ZookeeperServiceImporter"))(), { - "connection" : "127.0.0.1:2181", - "maxRetries" : 5, - "baseSleepTimeBetweenRetries" : 2000, - "basePath" : "/services" -}); -``` diff --git a/docs/manual/@vertx/service-discovery/dataobjects.md b/docs/manual/@vertx/service-discovery/dataobjects.md deleted file mode 100644 index 0a6359b7e..000000000 --- a/docs/manual/@vertx/service-discovery/dataobjects.md +++ /dev/null @@ -1,42 +0,0 @@ -# HttpLocation - -Represents the location of a HTTP endpoint. This object (its json -representation) will be used as "location" in a service record. - -| | | | -| ----------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@endpoint` | `String` | Sets the endpoint, which is the URL of the service. The endpoint is automatically computed when you use the other \`setX\` method. | -| `@host` | `String` | Sets the host. | -| `@port` | `Number (int)` | Sets the port | -| `@root` | `String` | Sets the path of the service (root) | -| `@ssl` | `Boolean` | Sets whether or not the HTTP service is using `https`. | - -# Record - -Describes a \`service\`. The record is the only piece of information -shared between consumer and provider. It should contains enough metadata -to let consumer find the service they want. - -| | | | -| --------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@location` | `Json object` | Sets the json object describing the location of the service. By convention, this json object should contain the link entry. | -| `@metadata` | `Json object` | Gets the metadata attached to the record. | -| `@name` | `String` | Sets the name of the service. It can reflect the service name of the name of the provider. | -| `@registration` | `String` | Sets the registration id. This method is called when the service is published. | -| `@status` | `Status` | Sets the status of the service. When published, the status is set to. When withdrawn, the status is set to . | -| `@type` | `String` | Sets the type of service. | - -# ServiceDiscoveryOptions - -Options to configure the service discovery. - -| | | | -| ------------------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@announceAddress` | `String` | Sets the event bus address on which the service arrivals, departures and modifications are announced. This address must be consistent in the whole application. | -| `@autoRegistrationOfImporters` | `Boolean` | Sets whether or not the registration of importers declared as SPI is enabled. | -| `@backendConfiguration` | `Json object` | Sets the configuration passed to the . Refer to the backend documentation to get more details on the requirements. The default backend does not need any configuration. | -| `@name` | `String` | Sets the service discovery name used in the service usage events. If not set, the node id is used. | -| `@usageAddress` | `String` | Sets the usage address: the event bus address on which are sent the service usage events (bind / release). | diff --git a/docs/manual/@vertx/service-discovery/enums.md b/docs/manual/@vertx/service-discovery/enums.md deleted file mode 100644 index bbedb78b8..000000000 --- a/docs/manual/@vertx/service-discovery/enums.md +++ /dev/null @@ -1,11 +0,0 @@ -# Status - -Service publication status. - -| | | -| ---------------- | ----------------------------------------------------------------- | -| Name | Description | -| `UP` | The service is published and is accessible. | -| `DOWN` | The service has been withdrawn, it is not accessible anymore. | -| `OUT_OF_SERVICE` | The service is still published, but not accessible (maintenance). | -| `UNKNOWN` | Unknown status. | diff --git a/docs/manual/@vertx/service-discovery/index.md b/docs/manual/@vertx/service-discovery/index.md deleted file mode 100644 index 50fd528c8..000000000 --- a/docs/manual/@vertx/service-discovery/index.md +++ /dev/null @@ -1,1106 +0,0 @@ -This component provides an infrastructure to publish and discover -various resources, such as service proxies, HTTP endpoints, data -sources…​ These resources are called `services`. A `service` is a -discoverable functionality. It can be qualified by its type, metadata, -and location. So a `service` can be a database, a service proxy, a HTTP -endpoint and any other resource you can imagine as soon as you can -describe it, discover it and interact with it. It does not have to be a -vert.x entity, but can be anything. Each service is described by a -`Record`. - -The service discovery implements the interactions defined in -service-oriented computing. And to some extent, also provides the -dynamic service-oriented computing interactions. So, applications can -react to arrival and departure of services. - -A service provider can: - - - publish a service record - - - un-publish a published record - - - update the status of a published service (down, out of service…​) - -A service consumer can: - - - lookup services - - - bind to a selected service (it gets a `ServiceReference`) and use it - - - release the service once the consumer is done with it - - - listen for arrival, departure and modification of services. - -Consumer would 1) lookup a service record matching their need, 2) -retrieve the `ServiceReference` that give access to the service, 3) get -a service object to access the service, 4) release the service object -once done. - -The process can be simplified using *service type* where you can -directly retrieve the service object if you know from which type it is -(JDBC client, Http client…​). - -As stated above, the central piece of information shared by the -providers and consumers are `records`. - -Providers and consumers must create their own `ServiceDiscovery` -instance. These instances are collaborating in the background -(distributed structure) to keep the set of services in sync. - -The service discovery supports bridges to import and export services -from / to other discovery technologies. - -# Using the service discovery - -To use the Vert.x service discovery, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - -io.vertx -vertx-service-discovery -${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-service-discovery:${maven.version}' -``` - -# Overall concepts - -The discovery mechanism is based on a few concepts explained in this -section. - -## Service records - -A service `Record` is an object that describes a service published by a -service provider. It contains a name, some metadata, a location object -(describing where is the service). This record is the only object shared -by the provider (having published it) and the consumer (retrieve it when -doing a lookup). - -The metadata and even the location format depend on the `service type` -(see below). - -A record is published when the provider is ready to be used, and -withdrawn when the service provider is stopping. - -## Service Provider and publisher - -A service provider is an entity providing a *service*. The publisher is -responsible for publishing a record describing the provider. It may be a -single entity (a provider publishing itself) or a different entity. - -## Service Consumer - -Service consumers search for services in the service discovery. Each -lookup retrieves `0..n` `Record`. From these records, a consumer can -retrieve a `ServiceReference`, representing the binding between the -consumer and the provider. This reference allows the consumer to -retrieve the *service object* (to use the service), and release the -service. - -It is important to release service references to cleanup the objects and -update the service usages. - -## Service object - -The service object is the object that gives access to a service. It can -come in various forms, such as a proxy, a client, and may even be -non-existent for some service types. The nature of the service object -depends on the service type. - -Notice that because of the polyglot nature of Vert.x, the service object -can differ if you retrieve it from Java, Groovy or another language. - -## Service types - -Services are just resources, and there are a lot of different kinds of -services. They can be functional services, databases, REST APIs, and so -on. The Vert.x service discovery has the concept of service types to -handle this heterogeneity. Each type defines: - - - how the service is located (URI, event bus address, IP / DNS…​) - - *location* - - - the nature of the service object (service proxy, HTTP client, - message consumer…​) - *client* - -Some service types are implemented and provided by the service discovery -component, but you can add your own. - -## Service events - -Every time a service provider is published or withdrawn, an event is -fired on the event bus. This event contains the record that has been -modified. - -In addition, in order to track who is using who, every time a reference -is retrieved with `getReference` or released with `release`, events are -emitted on the event bus to track the service usages. - -More details on these events below. - -## Backend - -The service discovery uses a Vert.x distributed data structure to store -the records. So, all members of the cluster have access to all the -records. This is the default backend implementation. You can implement -your own by implementing the `ServiceDiscoveryBackend` SPI. For -instance, we provide an implementation based on Redis. - -Notice that the discovery does not require Vert.x clustering. In -single-node mode, the structure is local. It can be populated with -``ServiceImporter`s. Since 3.5.0, you can use a local -structure even in clustered mode by setting the system property -`vertx-service-discovery-backend-local`` to `true` (or the environment -variable `VERTX-SERVICE-DISCOVERY-BACKEND-LOCAL` to `true`). - -# Creating a service discovery instance - -Publishers and consumers must create their own `ServiceDiscovery` -instance to use the discovery infrastructure: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -// Use default configuration -let discovery = ServiceDiscovery.create(vertx); - -// Customize the configuration -discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions() - .setAnnounceAddress("service-announce") - .setName("my-name")); - -// Do something... - -discovery.close(); -``` - -By default, the announce address (the event bus address on which service -events are sent is: `vertx.discovery -.announce`. You can also configure a name used for the service usage -(see section about service usage). - -When you don’t need the service discovery object anymore, don’t forget -to close it. It closes the different discovery importers and exporters -you have configured and releases the service references. - -You should avoid sharing the service discovery instance, so service -usage would represent the right "usages". - -# Publishing services - -Once you have a service discovery instance, you can publish services. -The process is the following: - -1. create a record for a specific service provider - -2. publish this record - -3. keep the published record that is used to un-publish a service or - modify it. - -To create records, you can either use the `Record` class, or use -convenient methods from the service types. - -``` js -import { HttpEndpoint } from "@vertx/service-discovery" -// Manual record creation -let record = new Record() - .setType("eventbus-service-proxy") - .setLocation({ - "endpoint" : "the-service-address" - }) - .setName("my-service") - .setMetadata({ - "some-label" : "some-value" - }); - -discovery.publish(record, (ar) => { - if (ar.succeeded()) { - // publication succeeded - let publishedRecord = ar.result(); - } else { - // publication failed - } -}); - -// Record creation from a type -record = HttpEndpoint.createRecord("some-rest-api", "localhost", 8080, "/api"); -discovery.publish(record, (ar) => { - if (ar.succeeded()) { - // publication succeeded - let publishedRecord = ar.result(); - } else { - // publication failed - } -}); -``` - -It is important to keep a reference on the returned records, as this -record has been extended by a `registration id`. - -# Withdrawing services - -To withdraw (un-publish) a record, use: - -``` js -discovery.unpublish(record.registration, (ar) => { - if (ar.succeeded()) { - // Ok - } else { - // cannot un-publish the service, may have already been removed, or the record is not published - } -}); -``` - -# Looking for services - -*This section explains the low-level process to retrieve services, each -service type provide convenient method to aggregates the different -steps.* - -On the consumer side, the first thing to do is to lookup for records. -You can search for a single record or all the matching ones. In the -first case, the first matching record is returned. - -Consumer can pass a filter to select the service. There are two ways to -describe the filter: - -1. A function taking a `Record` as parameter and returning a boolean - (it’s a predicate) - -2. This filter is a JSON object. Each entry of the given filter is - checked against the record. All entries must exactly match the - record. The entry can use the special `*` value to denote a - requirement on the key, but not on the value. - -Let’s see an example of a JSON filter: - - { "name" = "a" } => matches records with name set to "a" - { "color" = "*" } => matches records with "color" set - { "color" = "red" } => only matches records with "color" set to "red" - { "color" = "red", "name" = "a"} => only matches records with name set to "a", and color set to "red" - -If the JSON filter is not set (`null` or empty), it accepts all records. -When using functions, to accept all records, you must return *true* -regardless the record. - -Here are some examples: - -``` js -// Get any record -discovery.getRecord((r) => { - true; -}, (ar) => { - if (ar.succeeded()) { - if ((ar.result() !== null && ar.result() !== undefined)) { - // we have a record - } else { - // the lookup succeeded, but no matching service - } - } else { - // lookup failed - } -}); - -discovery.getRecord(null, (ar) => { - if (ar.succeeded()) { - if ((ar.result() !== null && ar.result() !== undefined)) { - // we have a record - } else { - // the lookup succeeded, but no matching service - } - } else { - // lookup failed - } -}); - - -// Get a record by name -discovery.getRecord((r) => { - r.name == "some-name"; -}, (ar) => { - if (ar.succeeded()) { - if ((ar.result() !== null && ar.result() !== undefined)) { - // we have a record - } else { - // the lookup succeeded, but no matching service - } - } else { - // lookup failed - } -}); - -discovery.getRecord({ - "name" : "some-service" -}, (ar) => { - if (ar.succeeded()) { - if ((ar.result() !== null && ar.result() !== undefined)) { - // we have a record - } else { - // the lookup succeeded, but no matching service - } - } else { - // lookup failed - } -}); - -// Get all records matching the filter -discovery.getRecords((r) => { - "some-value" == r.metadata.some-label; -}, (ar) => { - if (ar.succeeded()) { - let results = ar.result(); - // If the list is not empty, we have matching record - // Else, the lookup succeeded, but no matching service - } else { - // lookup failed - } -}); - - -discovery.getRecords({ - "some-label" : "some-value" -}, (ar) => { - if (ar.succeeded()) { - let results = ar.result(); - // If the list is not empty, we have matching record - // Else, the lookup succeeded, but no matching service - } else { - // lookup failed - } -}); -``` - -You can retrieve a single record or all matching records with -`getRecords`. By default, record lookup does include only records with a -`status` set to `UP`. This can be overridden: - - - when using JSON filter, just set `status` to the value you want (or - `*` to accept all status) - - - when using function, set the `includeOutOfService` parameter to - `true` in `getRecords` . - -# Retrieving a service reference - -Once you have chosen the `Record`, you can retrieve a `ServiceReference` -and then the service object: - -``` js -import { HttpClient } from "@vertx/core" -import { MessageConsumer } from "@vertx/core" -let reference1 = discovery.getReference(record1); -let reference2 = discovery.getReference(record2); - -// Then, gets the service object, the returned type depends on the service type: -// For http endpoint: -let client = reference1.getAs(HttpClient.class); -// For message source -let consumer = reference2.getAs(MessageConsumer.class); - -// When done with the service -reference1.release(); -reference2.release(); -``` - -Don’t forget to release the reference once done. - -The service reference represents a binding with the service provider. - -When retrieving a service reference you can pass a `JsonObject` used to -configure the service object. It can contain various data about the -service object. Some service types do not need additional configuration, -some require configuration (as data sources): - -``` js -import { JDBCClient } from "@vertx/jdbc-client" -let reference = discovery.getReferenceWithConfiguration(record, conf); - -// Then, gets the service object, the returned type depends on the service type: -// For http endpoint: -let client = reference.getAs(JDBCClient.class); - -// Do something with the client... - -// When done with the service -reference.release(); -``` - -In the previous examples, the code uses `getAs`. The parameter is the -type of object you expect to get. If you are using Java, you can use -`get`. However in the other language you must pass the expected type. - -# Types of services - -A said above, the service discovery has the service type concept to -manage the heterogeneity of the different services. - -These types are provided by default: - - - `HttpEndpoint` - for REST API’s, the service object is a - `HttpClient` configured on the host and port (the location is the - url). - - - `EventBusService` - for service proxies, the service object is a - proxy. Its type is the proxies interface (the location is the - address). - - - `MessageSource` - for message sources (publisher), the service - object is a `MessageConsumer` (the location is the address). - - - `JDBCDataSource` - for JDBC data sources, the service object is a - `JDBCClient` (the configuration of the client is computed from the - location, metadata and consumer configuration). - - - `RedisDataSource` - for Redis data sources, the service object is a - `RedisClient` (the configuration of the client is computed from the - location, metadata and consumer configuration). - - - `MongoDataSource` - for Mongo data sources, the service object is a - `MongoClient` (the configuration of the client is computed from the - location, metadata and consumer configuration). - -This section gives details about service types in general and describes -how to use the default service types. - -## Services with no type - -Some records may have no type (`ServiceType.UNKNOWN`). It is not -possible to retrieve a reference for these records, but you can build -the connection details from the `location` and `metadata` of the -`Record`. - -Using these services does not fire service usage events. - -## HTTP endpoints - -A HTTP endpoint represents a REST API or a service accessible using HTTP -requests. The HTTP endpoint service objects are `HttpClient` configured -with the host, port and ssl. - -### Publishing a HTTP endpoint - -To publish a HTTP endpoint, you need a `Record`. You can create the -record using `HttpEndpoint.createRecord`. - -The next snippet illustrates hot to create a `Record` from -`HttpEndpoint`: - -``` js -import { HttpEndpoint } from "@vertx/service-discovery" -let record1 = HttpEndpoint.createRecord("some-http-service", "localhost", 8433, "/api"); - -discovery.publish(record1, (ar) => { - // ... -}); - -let record2 = HttpEndpoint.createRecord("some-other-name", true, "localhost", 8433, "/api", { - "some-metadata" : "some value" -}); -``` - -When you run your service in a container or on the cloud, it may not -know its public IP and public port, so the publication must be done by -another entity having this info. Generally it’s a bridge. - -### Consuming a HTTP endpoint - -Once a HTTP endpoint is published, a consumer can retrieve it. The -service object is a `HttpClient` with a port and host configured: - -``` js -import { HttpClient } from "@vertx/core" -// Get the record -discovery.getRecord({ - "name" : "some-http-service" -}, (ar) => { - if (ar.succeeded() && (ar.result() !== null && ar.result() !== undefined)) { - // Retrieve the service reference - let reference = discovery.getReference(ar.result()); - // Retrieve the service object - let client = reference.getAs(HttpClient.class); - - // You need to path the complete path - client.getNow("/api/persons", (response) => { - - // ... - - // Dont' forget to release the service - reference.release(); - - }); - } -}); -``` - -You can also use the `HttpEndpoint.getClient` method to combine lookup -and service retrieval in one call: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -import { HttpEndpoint } from "@vertx/service-discovery" -HttpEndpoint.getClient(discovery, { - "name" : "some-http-service" -}, (ar) => { - if (ar.succeeded()) { - let client = ar.result(); - - // You need to path the complete path - client.getNow("/api/persons", (response) => { - - // ... - - // Dont' forget to release the service - ServiceDiscovery.releaseServiceObject(discovery, client); - - }); - } -}); -``` - -In this second version, the service object is released using -`ServiceDiscovery.releaseServiceObject`, so you don’t need to keep the -service reference. - -Since Vert.x 3.4.0, another client has been provided. This higher-level -client, named `WebClient` tends to be easier to use. You can retrieve a -`WebClient` instances using: - -``` js -import { WebClient } from "@vertx/web-client" -// Get the record -discovery.getRecord({ - "name" : "some-http-service" -}, (ar) => { - if (ar.succeeded() && (ar.result() !== null && ar.result() !== undefined)) { - // Retrieve the service reference - let reference = discovery.getReference(ar.result()); - // Retrieve the service object - let client = reference.getAs(WebClient.class); - - // You need to path the complete path - client.get("/api/persons").send((response) => { - - // ... - - // Dont' forget to release the service - reference.release(); - - }); - } -}); -``` - -And, if you prefer the approach using the service type: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -import { HttpEndpoint } from "@vertx/service-discovery" -HttpEndpoint.getWebClient(discovery, { - "name" : "some-http-service" -}, (ar) => { - if (ar.succeeded()) { - let client = ar.result(); - - // You need to path the complete path - client.get("/api/persons").send((response) => { - - // ... - - // Dont' forget to release the service - ServiceDiscovery.releaseServiceObject(discovery, client); - - }); - } -}); -``` - -## Event bus services - -Event bus services are service proxies. They implement async-RPC -services on top of the event bus. When retrieving a service object from -an event bus service, you get a service proxy of the right type. You can -access helper methods from `EventBusService`. - -Notice that service proxies (service implementations and service -interfaces) are developed in Java. - -### Publishing an event bus service - -To publish an event bus service, you need to create a `Record`: - -``` js -import { EventBusService } from "@vertx/service-discovery" -let record = EventBusService.createRecord("some-eventbus-service", "address", "examples.MyService", { - "some-metadata" : "some value" -}); - -discovery.publish(record, (ar) => { - // ... -}); -``` - -### Consuming an event bus service - -To consume an event bus service you can either retrieve the record and -then get the reference, or use the `EventBusService` interface that -combines the two operations in one call. - -However, as the service is searched by (Java) interface, you need to -specify the type of client you expect. - -``` js -var ServiceDiscovery = require("vertx-service-discovery-js/service_discovery"); -var EventBusService = require("vertx-service-discovery-js/event_bus_service"); -var MyService = require("org-acme-js/MyService"); -EventBusService.getServiceProxyWithJsonFilter(discovery, -{ "service.interface" : "org.acme.MyService"}, -MyService, -function (ar, ar_err) { -if (ar_err == null) { -var service = ar; - -// Dont' forget to release the service -ServiceDiscovery.releaseServiceObject(discovery, service); -} -}); -``` - -## Message source - -A message source is a component sending messages on the event bus on a -specific address. Message source clients are `MessageConsumer`. - -The *location* or a message source service is the event bus address on -which messages are sent. - -### Publishing a message source - -As for the other service types, publishing a message source is a 2-step -process: - -1. create a record, using `MessageSource` - -2. publish the record - - - -``` js -import { MessageSource } from "@vertx/service-discovery" -let record = MessageSource.createRecord("some-message-source-service", "some-address"); - -discovery.publish(record, (ar) => { - // ... -}); - -record = MessageSource.createRecord("some-other-message-source-service", "some-address", "examples.MyData"); -``` - -In the second record, the type of payload is also indicated. This -information is optional. - -### Consuming a message source - -On the consumer side, you can retrieve the record and the reference, or -use the `MessageSource` class to retrieve the service is one call. - -With the first approach, the code is the following: - -``` js -import { MessageConsumer } from "@vertx/core" -// Get the record -discovery.getRecord({ - "name" : "some-message-source-service" -}, (ar) => { - if (ar.succeeded() && (ar.result() !== null && ar.result() !== undefined)) { - // Retrieve the service reference - let reference = discovery.getReference(ar.result()); - // Retrieve the service object - let consumer = reference.getAs(MessageConsumer.class); - - // Attach a message handler on it - consumer.handler((message) => { - // message handler - let payload = message.body(); - }); - } -}); -``` - -When, using `MessageSource`, it becomes: - -``` js -import { MessageSource } from "@vertx/service-discovery" -MessageSource.getConsumer(discovery, { - "name" : "some-message-source-service" -}, (ar) => { - if (ar.succeeded()) { - let consumer = ar.result(); - - // Attach a message handler on it - consumer.handler((message) => { - // message handler - let payload = message.body(); - }); - // ... - } -}); -``` - -## JDBC Data source - -Data sources represents databases or data stores. JDBC data sources are -a specialization for databases accessible using a JDBC driver. The -client of a JDBC data source service is a `JDBCClient`. - -### Publishing a JDBC service - -As for the other service types, publishing a JDBC data source is a -2-step process: - -1. create a record, using `JDBCDataSource` - -2. publish the record - - - -``` js -import { JDBCDataSource } from "@vertx/service-discovery" -let record = JDBCDataSource.createRecord("some-data-source-service", { - "url" : "some jdbc url" -}, { - "some-metadata" : "some-value" -}); - -discovery.publish(record, (ar) => { - // ... -}); -``` - -As JDBC data sources can represent a high variety of databases, and -their access is often different, the record is rather unstructured. The -`location` is a simple JSON object that should provide the fields to -access the data source (JDBC url, username…​). The set of fields may -depend on the database but also on the connection pool used in front. - -### Consuming a JDBC service - -As stated in the previous section, how to access a data source depends -on the data source itself. To build the `JDBCClient`, you can merge -configuration: the record location, the metadata and a json object -provided by the consumer: - -``` js -import { JDBCClient } from "@vertx/jdbc-client" -// Get the record -discovery.getRecord({ - "name" : "some-data-source-service" -}, (ar) => { - if (ar.succeeded() && (ar.result() !== null && ar.result() !== undefined)) { - // Retrieve the service reference - let reference = discovery.getReferenceWithConfiguration(ar.result(), { - "username" : "clement", - "password" : "*****" - }); - - // Retrieve the service object - let client = reference.getAs(JDBCClient.class); - - // ... - - // when done - reference.release(); - } -}); -``` - -You can also use the `JDBCClient` class to the lookup and retrieval in -one call: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -import { JDBCDataSource } from "@vertx/service-discovery" -JDBCDataSource.getJDBCClient(discovery, { - "name" : "some-data-source-service" -}, { - "username" : "clement", - "password" : "*****" -}, (ar) => { - if (ar.succeeded()) { - let client = ar.result(); - - // ... - - // Dont' forget to release the service - ServiceDiscovery.releaseServiceObject(discovery, client); - - } -}); -``` - -## Redis Data source - -Redis data sources are a specialization for Redis persistence databases. -The client of a Redis data source service is a `RedisClient`. - -### Publishing a Redis service - -Publishing a Redis data source is a 2-step process: - -1. create a record, using `RedisDataSource` - -2. publish the record - - - -``` js -import { RedisDataSource } from "@vertx/service-discovery" -let record = RedisDataSource.createRecord("some-redis-data-source-service", { - "url" : "localhost" -}, { - "some-metadata" : "some-value" -}); - -discovery.publish(record, (ar) => { - // ... -}); -``` - -The `location` is a simple JSON object that should provide the fields to -access the Redis data source (url, port…​). - -### Consuming a Redis service - -As stated in the previous section, how to access a data source depends -on the data source itself. To build the `RedisClient`, you can merge -configuration: the record location, the metadata and a json object -provided by the consumer: - -``` js -import { RedisClient } from "@vertx/redis-client" -// Get the record -discovery.getRecord({ - "name" : "some-redis-data-source-service" -}, (ar) => { - if (ar.succeeded() && (ar.result() !== null && ar.result() !== undefined)) { - // Retrieve the service reference - let reference = discovery.getReference(ar.result()); - - // Retrieve the service instance - let client = reference.getAs(RedisClient.class); - - // ... - - // when done - reference.release(); - } -}); -``` - -You can also use the `RedisDataSource` class to the lookup and retrieval -in one call: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -import { RedisDataSource } from "@vertx/service-discovery" -RedisDataSource.getRedisClient(discovery, { - "name" : "some-redis-data-source-service" -}, (ar) => { - if (ar.succeeded()) { - let client = ar.result(); - - // ... - - // Dont' forget to release the service - ServiceDiscovery.releaseServiceObject(discovery, client); - - } -}); -``` - -## Mongo Data source - -Mongo data sources are a specialization for MongoDB databases. The -client of a Mongo data source service is a `MongoClient`. - -### Publishing a Mongo service - -Publishing a Mongo data source is a 2-step process: - -1. create a record, using `MongoDataSource` - -2. publish the record - - - -``` js -import { MongoDataSource } from "@vertx/service-discovery" -let record = MongoDataSource.createRecord("some-data-source-service", { - "connection_string" : "some mongo connection" -}, { - "some-metadata" : "some-value" -}); - -discovery.publish(record, (ar) => { - // ... -}); -``` - -The `location` is a simple JSON object that should provide the fields to -access the Redis data source (url, port…​). - -### Consuming a Mongo service - -As stated in the previous section, how to access a data source depends -on the data source itself. To build the `MongoClient`, you can merge -configuration: the record location, the metadata and a json object -provided by the consumer: - -``` js -// Get the record -discovery.getRecord({ - "name" : "some-data-source-service" -}, (ar) => { - if (ar.succeeded() && (ar.result() !== null && ar.result() !== undefined)) { - // Retrieve the service reference - let reference = discovery.getReferenceWithConfiguration(ar.result(), { - "username" : "clement", - "password" : "*****" - }); - - // Retrieve the service object - let client = reference.get(); - - // ... - - // when done - reference.release(); - } -}); -``` - -You can also use the `MongoDataSource` class to the lookup and retrieval -in one call: - -``` js -import { ServiceDiscovery } from "@vertx/service-discovery" -import { MongoDataSource } from "@vertx/service-discovery" -MongoDataSource.getMongoClient(discovery, { - "name" : "some-data-source-service" -}, { - "username" : "clement", - "password" : "*****" -}, (ar) => { - if (ar.succeeded()) { - let client = ar.result(); - - // ... - - // Dont' forget to release the service - ServiceDiscovery.releaseServiceObject(discovery, client); - - } -}); -``` - -# Listening for service arrivals and departures - -Every time a provider is published or removed, an event is published on -the *vertx.discovery.announce* address. This address is configurable -from the `ServiceDiscoveryOptions`. - -The received record has a `status` field indicating the new state of the -record: - - - `UP` : the service is available, you can start using it - - - `DOWN` : the service is not available anymore, you should not use it - anymore - - - `OUT_OF_SERVICE` : the service is not running, you should not use it - anymore, but it may come back later. - -# Listening for service usage - -Every time a service reference is retrieved (`bind`) or released -(`release`), an event is published on the *vertx .discovery.usage* -address. This address is configurable from the -`ServiceDiscoveryOptions`. - -It lets you listen for service usage and map the service bindings. - -The received message is a `JsonObject` containing: - - - the record in the `record` field - - - the type of event in the `type` field. It’s either `bind` or - `release` - - - the id of the service discovery (either its name or the node id) in - the `id` field - -This `id` is configurable from the `ServiceDiscoveryOptions`. By default -it’s "localhost" on single node configuration and the id of the node in -clustered mode. - -You can disable the service usage support by setting the usage address -to `null` with `setUsageAddress`. - -# Service discovery bridges - -Bridges let you import and export services from / to other discovery -mechanism such as Docker, Kubernetes, Consul…​ Each bridge decides how -the services are imported and exported. It does not have to be -bi-directional. - -You can provide your own bridge by implementing the `ServiceImporter` -interface and register it using `registerServiceImporter`. - -The second parameter can provide an optional configuration for the -bridge. - -When the bridge is registered the `start` method is called. It lets you -configure the bridge. When the bridge is configured, ready and has -imported / exported the initial services, it must complete the given -`Future`. If the bridge starts method is blocking, it must use an -`executeBlocking` construct, and complete the given future object. - -When the service discovery is stopped, the bridge is stopped. The -`close` method is called that provides the opportunity to cleanup -resources, removed imported / exported services…​ This method must -complete the given `Future` to notify the caller of the completion. - -Notice than in a cluster, only one member needs to register the bridge -as the records are accessible by all members. - -# Additional bridges - -In addition of the bridges supported by this library, Vert.x Service -Discovery provides additional bridges you can use in your application. - -Unresolved directive in index.adoc - include::consul-bridge.adoc\[\] - -Unresolved directive in index.adoc - include::kubernetes-bridge.adoc\[\] - -Unresolved directive in index.adoc - include::zookeeper-bridge.adoc\[\] - -Unresolved directive in index.adoc - -include::docker-links-bridge.adoc\[\] - -# Additional backends - -In addition of the backend supported by this library, Vert.x Service -Discovery provides additional backends you can use in your application. - -Unresolved directive in index.adoc - include::redis-backend.adoc\[\] diff --git a/docs/manual/@vertx/shell/dataobjects.md b/docs/manual/@vertx/shell/dataobjects.md deleted file mode 100644 index ede520ed0..000000000 --- a/docs/manual/@vertx/shell/dataobjects.md +++ /dev/null @@ -1,171 +0,0 @@ -# HttpTermOptions - -The web term configuration options. - -| | | | -| ------------------------------------------ | ---------------------- | --------------------------------------------------------------------- | -| Name | Type | Description | -| `@acceptBacklog` | `Number (int)` | \- | -| `@acceptUnmaskedFrames` | `Boolean` | \- | -| `@alpnVersions` | `Array of HttpVersion` | \- | -| `@authOptions` | `AuthOptions` | | -| `@charset` | `String` | Set the charset used for encoding / decoding text data from/to SockJS | -| `@clientAuth` | `ClientAuth` | \- | -| `@clientAuthRequired` | `Boolean` | \- | -| `@compressionLevel` | `Number (int)` | \- | -| `@compressionSupported` | `Boolean` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@decoderInitialBufferSize` | `Number (int)` | \- | -| `@decompressionSupported` | `Boolean` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@handle100ContinueAutomatically` | `Boolean` | \- | -| `@host` | `String` | \- | -| `@http2ConnectionWindowSize` | `Number (int)` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@initialSettings` | `Http2Settings` | \- | -| `@intputrc` | `String` | The path of the inputrc config. | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@logActivity` | `Boolean` | \- | -| `@maxChunkSize` | `Number (int)` | \- | -| `@maxHeaderSize` | `Number (int)` | \- | -| `@maxInitialLineLength` | `Number (int)` | \- | -| `@maxWebSocketFrameSize` | `Number (int)` | \- | -| `@maxWebSocketMessageSize` | `Number (int)` | \- | -| `@maxWebsocketFrameSize` | `Number (int)` | \- | -| `@maxWebsocketMessageSize` | `Number (int)` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@perFrameWebSocketCompressionSupported` | `Boolean` | \- | -| `@perFrameWebsocketCompressionSupported` | `Boolean` | \- | -| `@perMessageWebSocketCompressionSupported` | `Boolean` | \- | -| `@perMessageWebsocketCompressionSupported` | `Boolean` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@port` | `Number (int)` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@shellHtmlResource` | `Buffer` | Set `shell.html` resource to use. | -| `@sni` | `Boolean` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@sockJSHandlerOptions` | `SockJSHandlerOptions` | The SockJS handler options. | -| `@sockJSPath` | `String` | Configure the SockJS path, the default value is `/term/*`. | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@termJsResource` | `Buffer` | Set `term.js` resource to use. | -| `@trafficClass` | `Number (int)` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | -| `@vertsShellJsResource` | `Buffer` | Set `vertxshell.js` resource to use. | -| `@webSocketAllowServerNoContext` | `Boolean` | \- | -| `@webSocketCompressionLevel` | `Number (int)` | \- | -| `@webSocketPreferredClientNoContext` | `Boolean` | \- | -| `@webSocketSubProtocols` | `Array of String` | \- | -| `@websocketAllowServerNoContext` | `Boolean` | \- | -| `@websocketCompressionLevel` | `Number (int)` | \- | -| `@websocketPreferredClientNoContext` | `Boolean` | \- | -| `@websocketSubProtocols` | `String` | \- | - -# SSHTermOptions - -The SSH term configuration options. - -| | | | -| -------------------- | ------------------- | ---------------------------------------------------------------------- | -| Name | Type | Description | -| `@authOptions` | `AuthOptions` | | -| `@defaultCharset` | `String` | Set the default charset to use when the client does not specifies one. | -| `@host` | `String` | Set the host | -| `@intputrc` | `String` | The path of the inputrc config. | -| `@keyPairOptions` | `JksOptions` | Set the key pair options in jks format, aka Java keystore. | -| `@pemKeyPairOptions` | `PemKeyCertOptions` | Set the key pair store options in pem format. | -| `@pfxKeyPairOptions` | `PfxOptions` | Set the key pair options in pfx format. | -| `@port` | `Number (int)` | Set the port | - -# ShellServerOptions - -The configurations options for the shell server. - -| | | | -| ----------------- | --------------- | ----------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@reaperInterval` | `Number (long)` | Set the repear interval, i.e the period at which session eviction is performed. | -| `@sessionTimeout` | `Number (long)` | Set the session timeout. | -| `@welcomeMessage` | `String` | Set the shell welcome message, i.e the message displayed in the user console when he connects to the shell. | - -# ShellServiceOptions - -The configurations options for the shell service, the shell connectors -can be configured with , and . - -| | | | -| ----------------- | ------------------- | ----------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@httpOptions` | `HttpTermOptions` | \- | -| `@reaperInterval` | `Number (long)` | Set the repear interval, i.e the period at which session eviction is performed. | -| `@sessionTimeout` | `Number (long)` | Set the session timeout. | -| `@sshOptions` | `SSHTermOptions` | Set the SSH options, if the option is null, SSH will not be started. | -| `@telnetOptions` | `TelnetTermOptions` | Set the Telnet options, if the option is null, Telnet will not be started. | -| `@welcomeMessage` | `String` | Set the shell welcome message, i.e the message displayed in the user console when he connects to the shell. | - -# TelnetTermOptions - -Telnet terminal options configuration, extends link. - -| | | | -| ---------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@acceptBacklog` | `Number (int)` | \- | -| `@charset` | `String` | Set the charset to use when binary mode is active, see link and link. | -| `@clientAuth` | `ClientAuth` | \- | -| `@clientAuthRequired` | `Boolean` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@host` | `String` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@inBinary` | `Boolean` | Set the telnet connection to negociate binary data format when receiving from the client, the default value is true. This allows to send data in 8 bit format and thus charset like UTF-8. | -| `@intputrc` | `String` | The path of the inputrc config. | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@logActivity` | `Boolean` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@outBinary` | `Boolean` | Set the telnet connection to negociate binary data format when sending to the client, the default value is true. This allows to send data in 8 bit format and thus charset like UTF-8. | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@port` | `Number (int)` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@sni` | `Boolean` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@trafficClass` | `Number (int)` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | diff --git a/docs/manual/@vertx/shell/enums.md b/docs/manual/@vertx/shell/enums.md deleted file mode 100644 index 613c0c101..000000000 --- a/docs/manual/@vertx/shell/enums.md +++ /dev/null @@ -1,11 +0,0 @@ -# ExecStatus - -The status of an execution. - -| | | -| ------------ | ---------------------------------------------------- | -| Name | Description | -| `READY` | The job is ready, it can be running or terminated. | -| `RUNNING` | The job is running, it can be stopped or terminated. | -| `STOPPED` | The job is stopped, it can be running or terminated. | -| `TERMINATED` | The job is terminated. | diff --git a/docs/manual/@vertx/shell/index.md b/docs/manual/@vertx/shell/index.md deleted file mode 100644 index 9332c6448..000000000 --- a/docs/manual/@vertx/shell/index.md +++ /dev/null @@ -1,1120 +0,0 @@ -Vert.x Shell is a command line interface for the Vert.x runtime -available from regular terminals using different protocols. - -Vert.x Shell provides a variety of commands for interacting live with -Vert.x services. - -Vert.x Shell can be extended with custom commands in any language -supported by Vert.x - -# Using Vert.x Shell - -Vert.x Shell is a Vert.x Service and can be started programmatically via -the `ShellService` or deployed as a service. - -## Shell service - -The shell can be started as a service directly either from the command -line or as a the Vert.x deployment: - -**Starting a shell service available via Telnet.** - - vertx run -conf '{"telnetOptions":{"port":5000}}' maven:io.vertx:vertx-shell:${maven.version} - -or - -**Starting a shell service available via SSH.** - - # create a key pair for the SSH server - keytool -genkey -keyalg RSA -keystore ssh.jks -keysize 2048 -validity 1095 -dname CN=localhost -keypass secret -storepass secret - # create the auth config - echo user.admin=password > auth.properties - # start the shell - vertx run -conf '{"sshOptions":{"port":4000,"keyPairOptions":{"path":"ssh.jks","password":"secret"},"authOptions":{"provider":"shiro","config":{"properties_path":"file:auth.properties"}}}}' maven:io.vertx:vertx-shell:${maven.version} - -or - -**Starting a shell service available via HTTP.** - - # create a certificate for the HTTP server - keytool -genkey -keyalg RSA -keystore keystore.jks -keysize 2048 -validity 1095 -dname CN=localhost -keypass secret -storepass secret - # create the auth config - echo user.admin=password > auth.properties - vertx run -conf '{"httpOptions":{"port":8080,"ssl":true,"keyStoreOptions":{"path":"keystore.jks","password":"secret"},"authOptions":{"provider":""shiro,"config":{"properties_path":"file:auth.properties"}}}}' maven:io.vertx:vertx-shell:${maven.version} - -You can also deploy this service inside your own verticle: - -``` js -vertx.deployVerticle("maven:{maven-groupId}:{maven-artifactId}:{maven-version}", new DeploymentOptions() - .setConfig({ - "telnetOptions" : { - "host" : "localhost", - "port" : 4000 - } - })); -``` - -or - -``` js -vertx.deployVerticle("maven:{maven-groupId}:{maven-artifactId}:{maven-version}", new DeploymentOptions() - .setConfig({ - "sshOptions" : { - "host" : "localhost", - "port" : 5000, - "keyPairOptions" : { - "path" : "src/test/resources/ssh.jks", - "password" : "wibble" - }, - "authOptions" : { - "provider" : "shiro", - "config" : { - "properties_path" : "file:/path/to/my/auth.properties" - } - } - } - })); -``` - -or - -``` js -vertx.deployVerticle("maven:{maven-groupId}:{maven-artifactId}:{maven-version}", new DeploymentOptions() - .setConfig({ - "httpOptions" : { - "host" : "localhost", - "port" : 8080, - "ssl" : true, - "keyPairOptions" : { - "path" : "src/test/resources/server-keystore.jks", - "password" : "wibble" - }, - "authOptions" : { - "provider" : "shiro", - "config" : { - "properties_path" : "file:/path/to/my/auth.properties" - } - } - } - })); -``` - -> **Note** -> -> when Vert.x Shell is already on your classpath you can use -> `service:io.vertx.ext.shell` instead or -> `maven:io.vertx:vertx-shell:${maven.version}` - -## Programmatic service - -The `ShellService` takes care of starting an instance of Vert.x Shell. - -Starting a shell service available via SSH: - -``` js -import { ShellService } from "@vertx/shell" -let service = ShellService.create(vertx, new ShellServiceOptions() - .setSSHOptions(new SSHTermOptions() - .setHost("localhost") - .setPort(5000) - .setKeyPairOptions(new JksOptions() - .setPath("server-keystore.jks") - .setPassword("wibble")) - .setAuthOptions(new ShiroAuthOptions() - .setType("PROPERTIES") - .setConfig({ - "properties_path" : "file:/path/to/my/auth.properties" - })))); -service.start(); -``` - -Starting a shell service available via Telnet: - -``` js -import { ShellService } from "@vertx/shell" -let service = ShellService.create(vertx, new ShellServiceOptions() - .setTelnetOptions(new TelnetTermOptions() - .setHost("localhost") - .setPort(4000))); -service.start(); -``` - -The `TelnetTermOptions` extends the Vert.x Core `NetServerOptions` as -the Telnet server implementation is based on a `NetServer`. - -> **Caution** -> -> Telnet does not provide any authentication nor encryption at all. - -Starting a shell service available via HTTP: - -``` js -import { ShellService } from "@vertx/shell" -let service = ShellService.create(vertx, new ShellServiceOptions() - .setHttpOptions(new HttpTermOptions() - .setHost("localhost") - .setPort(8080))); -service.start(); -``` - -# Authentication - -The SSH and HTTP connectors provide both authentication built on top of -*vertx-auth* with the following supported providers: - - - *shiro* : provides `.properties` and *LDAP* backend as seen in the - ShellService presentation - - - *jdbc* : JDBC backend - - - *mongo* : MongoDB backend - -These options can be created directly using directly `AuthOptions`: - - - `ShiroAuthOptions` for Shiro - - - `JDBCAuthOptions` for JDBC - - - `MongoAuthOptions` for Mongo - -As for external service configuration in Json, the `authOptions` uses -the `provider` property to distinguish: - - { - ... - "authOptions": { - "provider":"shiro", - "config": { - "properties_path":"file:auth.properties" - } - } - ... - } - -# Telnet term configuration - -Telnet terms are configured by `setTelnetOptions`, the -`TelnetTermOptions` extends the `NetServerOptions` so they have the -exact same configuration. - -# SSH term configuration - -SSH terms are configured by `setSSHOptions`: - - - `setPort`: port - - - `setHost`: host - -Only username/password authentication is supported at the moment, it can -be configured with property file or LDAP, see Vert.x Auth for more info: - - - `setAuthOptions`: configures user authentication - -The server key configuration reuses the key pair store configuration -scheme provided by *Vert.x Core*: - - - `setKeyPairOptions`: set `.jks` key pair store - - - `setPfxKeyPairOptions`: set `.pfx` key pair store - - - `setPemKeyPairOptions`: set `.pem` key pair store - -**Deploying the Shell Service on SSH with Mongo authentication.** - -``` js -vertx.deployVerticle("maven:{maven-groupId}:{maven-artifactId}:{maven-version}", new DeploymentOptions() - .setConfig({ - "sshOptions" : { - "host" : "localhost", - "port" : 5000, - "keyPairOptions" : { - "path" : "src/test/resources/ssh.jks", - "password" : "wibble" - }, - "authOptions" : { - "provider" : "mongo", - "config" : { - "connection_string" : "mongodb://localhost:27018" - } - } - } - })); -``` - -**Running the Shell Service on SSH with Mongo authentication.** - -``` js -import { ShellService } from "@vertx/shell" -let service = ShellService.create(vertx, new ShellServiceOptions() - .setSSHOptions(new SSHTermOptions() - .setHost("localhost") - .setPort(5000) - .setKeyPairOptions(new JksOptions() - .setPath("server-keystore.jks") - .setPassword("wibble")) - .setAuthOptions(new MongoAuthOptions() - .setConfig({ - "connection_string" : "mongodb://localhost:27018" - })))); -service.start(); -``` - -**Deploying the Shell Service on SSH with JDBC authentication.** - -``` js -vertx.deployVerticle("maven:{maven-groupId}:{maven-artifactId}:{maven-version}", new DeploymentOptions() - .setConfig({ - "sshOptions" : { - "host" : "localhost", - "port" : 5000, - "keyPairOptions" : { - "path" : "src/test/resources/ssh.jks", - "password" : "wibble" - }, - "authOptions" : { - "provider" : "jdbc", - "config" : { - "url" : "jdbc:hsqldb:mem:test?shutdown=true", - "driver_class" : "org.hsqldb.jdbcDriver" - } - } - } - })); -``` - -**Running the Shell Service on SSH with JDBC authentication.** - -``` js -import { ShellService } from "@vertx/shell" -let service = ShellService.create(vertx, new ShellServiceOptions() - .setSSHOptions(new SSHTermOptions() - .setHost("localhost") - .setPort(5000) - .setKeyPairOptions(new JksOptions() - .setPath("server-keystore.jks") - .setPassword("wibble")) - .setAuthOptions(new JDBCAuthOptions() - .setConfig({ - "url" : "jdbc:hsqldb:mem:test?shutdown=true", - "driver_class" : "org.hsqldb.jdbcDriver" - })))); -service.start(); -``` - -# HTTP term configuration - -HTTP terms are configured by `setHttpOptions`, the http options extends -the `HttpServerOptions` so they expose the exact same configuration. - -In addition there are extra options for configuring an HTTP term: - - - `setAuthOptions`: configures user authentication - - - `setSockJSHandlerOptions`: configures SockJS - - - `setSockJSPath`: the SockJS path in the router - -**Deploying the Shell Service on HTTP with Mongo authentication.** - -``` js -vertx.deployVerticle("maven:{maven-groupId}:{maven-artifactId}:{maven-version}", new DeploymentOptions() - .setConfig({ - "httpOptions" : { - "host" : "localhost", - "port" : 8080, - "ssl" : true, - "keyPairOptions" : { - "path" : "src/test/resources/server-keystore.jks", - "password" : "wibble" - }, - "authOptions" : { - "provider" : "mongo", - "config" : { - "connection_string" : "mongodb://localhost:27018" - } - } - } - })); -``` - -**Running the Shell Service on HTTP with Mongo authentication.** - -``` js -import { ShellService } from "@vertx/shell" -let service = ShellService.create(vertx, new ShellServiceOptions() - .setHttpOptions(new HttpTermOptions() - .setHost("localhost") - .setPort(8080) - .setAuthOptions(new MongoAuthOptions() - .setConfig({ - "connection_string" : "mongodb://localhost:27018" - })))); -service.start(); -``` - -**Deploying the Shell Service on HTTP with JDBC authentication.** - -``` js -vertx.deployVerticle("maven:{maven-groupId}:{maven-artifactId}:{maven-version}", new DeploymentOptions() - .setConfig({ - "httpOptions" : { - "host" : "localhost", - "port" : 8080, - "ssl" : true, - "keyPairOptions" : { - "path" : "src/test/resources/server-keystore.jks", - "password" : "wibble" - }, - "authOptions" : { - "provider" : "jdbc", - "config" : { - "url" : "jdbc:hsqldb:mem:test?shutdown=true", - "driver_class" : "org.hsqldb.jdbcDriver" - } - } - } - })); -``` - -**Running the Shell Service on HTTP with JDBC authentication.** - -``` js -import { ShellService } from "@vertx/shell" -let service = ShellService.create(vertx, new ShellServiceOptions() - .setHttpOptions(new HttpTermOptions() - .setHost("localhost") - .setPort(8080) - .setAuthOptions(new JDBCAuthOptions() - .setConfig({ - "url" : "jdbc:hsqldb:mem:test?shutdown=true", - "driver_class" : "org.hsqldb.jdbcDriver" - })))); -service.start(); -``` - -# Keymap configuration - -The shell uses a default keymap configuration that can be overriden -using the `inputrc` property of the various term configuration object: - - - `setIntputrc` - - - `setIntputrc` - - - `setIntputrc` - -The `inputrc` must point to a file available via the classloader or the -filesystem. - -The `inputrc` only function bindings and the available functions are: - - - *backward-char* - - - *forward-char* - - - *next-history* - - - *previous-history* - - - *backward-delete-char* - - - *backward-delete-char* - - - *backward-word* - - - *end-of-line* - - - *beginning-of-line* - - - *delete-char* - - - *delete-char* - - - *complete* - - - *accept-line* - - - *accept-line* - - - *kill-line* - - - *backward-word* - - - *forward-word* - - - *backward-kill-word* - -> **Note** -> -> Extra functions can be added, however this is done by implementing -> functions of the `Term.d` project on which Vert.x Shell is based, for -> instance the [reverse -> function](https://github.com/termd/termd/blob/c1629623c8a3add4bde7778640bf8cc233a7c98f/src/examples/java/examples/readlinefunction/ReverseFunction.java) -> can be implemented and then declared in a -> `META-INF/services/io.termd.core.readline.Function` to be loaded by -> the shell. - -# Base commands - -To find out the available commands you can use the *help* builtin -command: - -1. Verticle commands - - 1. verticle-ls: list all deployed verticles - - 2. verticle-undeploy: undeploy a verticle - - 3. verticle-deploy: deploys a verticle with deployment options as - JSON string - - 4. verticle-factories: list all known verticle factories - -2. File system commands - - 1. ls - - 2. cd - - 3. pwd - -3. Bus commands - - 1. bus-tail: display all incoming messages on an event bus address - - 2. bus-send: send a message on the event bus - -4. Net commands - - 1. net-ls: list all available net servers, including HTTP servers - -5. Shared data commands - - 1. local-map-put - - 2. local-map-get - - 3. local-map-rm - -6. Various commands - - 1. echo - - 2. sleep - - 3. help - - 4. exit - - 5. logout - -7. Job control - - 1. fg - - 2. bg - - 3. jobs - -> **Note** -> -> this command list should evolve in next releases of Vert.x Shell. -> Other Vert.x project may provide commands to extend Vert.x Shell, for -> instance Dropwizard Metrics. - -# Extending Vert.x Shell - -Vert.x Shell can be extended with custom commands in any of the -languages supporting code generation. - -A command is created by the `CommandBuilder.command` method: the command -process handler is called by the shell when the command is executed, -this handler can be set with the `processHandler` method: - -``` js -import { CommandBuilder } from "@vertx/shell" -import { CommandRegistry } from "@vertx/shell" - -let builder = CommandBuilder.command("my-command"); -builder.processHandler((process) => { - - // Write a message to the console - process.write("Hello World"); - - // End the process - process.end(); -}); - -// Register the command -let registry = CommandRegistry.getShared(vertx); -registry.registerCommand(builder.build(vertx)); -``` - -After a command is created, it needs to be registed to a -`CommandRegistry`. The command registry holds all the commands for a -Vert.x instance. - -A command is registered until it is unregistered with the -`unregisterCommand`. When a command is registered from a Verticle, this -command is unregistered when this verticle is undeployed. - -> **Note** -> -> Command callbacks are invoked in the {@literal io.vertx.core.Context} -> when the command is registered in the registry. Keep this in mind if -> you maintain state in a command. - -The `CommandProcess` object can be used for interacting with the shell. - -## Command arguments - -The `args` returns the command arguments: - -``` js -command.processHandler((process) => { - - process.args().forEach(arg => { - // Print each argument on the console - process.write("Argument " + arg); - }); - - process.end(); -}); -``` - -Besides it is also possible to create commands using `Vert.x CLI`: it -makes easier to write command line argument parsing: - - - *option* and *argument* parsing - - - argument *validation* - - - generation of the command *usage* - - - -``` js -import { CLI } from "@vertx/core" -import { CommandBuilder } from "@vertx/shell" -let cli = CLI.create("my-command").addArgument(new Argument() - .setArgName("my-arg")).addOption(new Option() - .setShortName("m") - .setLongName("my-option")); -let command = CommandBuilder.command(cli); -command.processHandler((process) => { - - let commandLine = process.commandLine(); - - let argValue = commandLine.getArgumentValue(0); - let optValue = commandLine.getOptionValue("my-option"); - process.write("The argument is " + argValue + " and the option is " + optValue); - - process.end(); -}); -``` - -When an option named *help* is added to the CLI object, the shell will -take care of generating the command usage when the option is activated: - -``` js -import { CLI } from "@vertx/core" -import { CommandBuilder } from "@vertx/shell" -let cli = CLI.create("my-command").addArgument(new Argument() - .setArgName("my-arg")).addOption(new Option() - .setArgName("help") - .setShortName("h") - .setLongName("help")); -let command = CommandBuilder.command(cli); -command.processHandler((process) => { - // ... -}); -``` - -When the command executes the `process` is provided for interacting with -the shell. A `CommandProcess` extends `Tty` which is used for -interacting with the terminal. - -## Terminal usage - -### terminal I/O - -The `stdinHandler` handler is used to be notified when the terminal -receives data, e.g the user uses his keyboard: - -``` js -tty.stdinHandler((data) => { - console.log("Received " + data); -}); -``` - -A command can use the `write` to write to the standard output. - -``` js -tty.write("Hello World"); -``` - -### Terminal size - -The current terminal size can be obtained using `width` and `height`. - -``` js -tty.write("Current terminal size: (" + tty.width() + ", " + tty.height() + ")"); -``` - -### Resize event - -When the size of the terminal changes the `resizehandler` is called, the -new terminal size can be obtained with `width` and `height`. - -``` js -tty.resizehandler((v) => { - console.log("terminal resized : " + tty.width() + " " + tty.height()); -}); -``` - -### Terminal type - -The terminal type is useful for sending escape codes to the remote -terminal: `type` returns the current terminal type, it can be null if -the terminal has not advertised the value. - -``` js -console.log("terminal type : " + tty.type()); -``` - -## Shell session - -The shell is a connected service that naturally maintains a session with -the client, this session can be used in commands to scope data. A -command can get the session with `session`: - -``` js -command.processHandler((process) => { - - let session = process.session(); - - if ((session.get("my_key") === null || session.get("my_key") === undefined)) { - session.put("my key", "my value"); - } - - process.end(); -}); -``` - -## Process termination - -Calling `end` ends the current process. It can be called directly in the -invocation of the command handler or any time later: - -``` js -command.processHandler((process) => { - let vertx = process.vertx(); - - // Set a timer - vertx.setTimer(1000, (id) => { - - // End the command when the timer is fired - process.end(); - }); -}); -``` - -## Process events - -A command can subscribe to a few process events. - -### Interrupt event - -The `interruptHandler` is called when the process is interrupted, this -event is fired when the user press *Ctrl+C* during the execution of a -command. This handler can be used for interrupting commands *blocking* -the CLI and gracefully ending the command process: - -``` js -command.processHandler((process) => { - let vertx = process.vertx(); - - // Every second print a message on the console - let periodicId = vertx.setPeriodic(1000, (id) => { - process.write("tick\n"); - }); - - // When user press Ctrl+C: cancel the timer and end the process - process.interruptHandler((v) => { - vertx.cancelTimer(periodicId); - process.end(); - }); -}); -``` - -When no interrupt handler is registered, pressing *Ctrl+C* will have no -effect on the current process and the event will be delayed and will -likely be handled by the shell, like printing a new line on the console. - -### Suspend/resume events - -The `suspendHandler` is called when the process is running and the user -press *Ctrl+Z*, the command is *suspended*: - - - the command can receive the suspend event when it has registered an - handler for this event - - - the command will not receive anymore data from the standard input - - - the shell prompt the user for input - - - the command can receive interrupts event or end events - -The `resumeHandler` is called when the process is resumed, usually when -the user types *fg*: - - - the command can receive the resume event when it has registered an - handler for this event - - - the command will receive again data from the standard input when it - has registered an stdin handler - - - -``` js -command.processHandler((process) => { - - // Command is suspended - process.suspendHandler((v) => { - console.log("Suspended"); - }); - - // Command is resumed - process.resumeHandler((v) => { - console.log("Resumed"); - }); -}); -``` - -### End events - -The `endHandler` (io.vertx.core.Handler)} is called when the process is -running or suspended and the command terminates, for instance the shell -session is closed, the command is *terminated*. - -``` js -command.processHandler((process) => { - - // Command terminates - process.endHandler((v) => { - console.log("Terminated"); - }); -}); -``` - -The end handler is called even when the command invokes `end`. - -This handler is useful for cleaning up resources upon command -termination, for instance closing a client or a timer. - -## Command completion - -A command can provide a completion handler when it wants to provide -contextual command line interface completion. - -Like the process handler, the `completion -handler` is non blocking because the implementation may use Vert.x -services, e.g the file system. - -The `lineTokens` returns a list of `tokens` from the beginning of the -line to the cursor position. The list can be empty if the cursor when -the cursor is at the beginning of the line. - -The `rawLine` returns the current completed from the beginning of the -line to the cursor position, in raw format, i.e without any char escape -performed. - -Completion ends with a call to `complete`. - -# Shell server - -The Shell service is a convenient facade for starting a preconfigured -shell either programmatically or as a Vert.x service. When more -flexibility is needed, a `ShellServer` can be used instead of the -service. - -For instance the shell http term can be configured to use an existing -router instead of starting its own http server. - -Using a shell server requires explicit configuration but provides full -flexiblity, a shell server is setup in a few steps: - -``` js -import { ShellServer } from "@vertx/shell" -import { Router } from "@vertx/web" -import { TermServer } from "@vertx/shell" -import { CommandResolver } from "@vertx/shell" - -let server = ShellServer.create(vertx); - -let shellRouter = Router.router(vertx); -router.mountSubRouter("/shell", shellRouter); -let httpTermServer = TermServer.createHttpTermServer(vertx, router); - -let sshTermServer = TermServer.createSSHTermServer(vertx); - -server.registerTermServer(httpTermServer); -server.registerTermServer(sshTermServer); - -server.registerCommandResolver(CommandResolver.baseCommands(vertx)); - -server.listen(); -``` - - - create a the shell server - - - create an HTTP term server mounted on an existing router - - - create an SSH term server - - - register term servers - - - register all base commands - - - finally start the shell server - -Besides, the shell server can also be used for creating in process shell -session: it provides a programmatic interactive shell. - -In process shell session can be created with `createShell`: - -``` js -// Create a shell ession -let shell = shellServer.createShell(); -``` - -The main use case is running or testing a command: - -``` js -import { Pty } from "@vertx/shell" - -// Create a shell -let shell = shellServer.createShell(); - -// Create a job fo the command -let job = shell.createJob("my-command 1234"); - -// Create a pseudo terminal -let pty = Pty.create(); -pty.stdoutHandler((data) => { - console.log("Command wrote " + data); -}); - -// Run the command -job.setTty(pty.slave()); -job.statusUpdateHandler((status) => { - console.log("Command terminated with status " + status); -}); -``` - -The `Pty` pseudo terminal is the main interface for interacting with the -command when it’s running: - - - uses standard input/output for writing or reading strings - - - resize the terminal - -The `close` closes the shell, it will terminate all jobs in the current -shell session. - -# Terminal servers - -Vert.x Shell also provides bare terminal servers for those who need to -write pure terminal applications. - -A `Term` handler must be set on a term server before starting it. This -handler will handle each term when the user connects. - -An `AuthOptions` can be set on `SSHTermOptions` and `HttpTermOptions`. -Alternatively, an `AuthProvider` can be `set` directly on the term -server before starting it. - -## SSH term - -The terminal server `Term` handler accepts incoming terminal -connections. When a remote terminal connects, the `Term` can be used to -interact with connected terminal. - -``` js -import { TermServer } from "@vertx/shell" -let server = TermServer.createSSHTermServer(vertx, new SSHTermOptions() - .setPort(5000) - .setHost("localhost")); -server.termHandler((term) => { - term.stdinHandler((line) => { - term.write(line); - }); -}); -server.listen(); -``` - -The `Term` is also a `Tty`, this section explains how to use the tty. - -## Telnet term - -``` js -import { TermServer } from "@vertx/shell" -let server = TermServer.createTelnetTermServer(vertx, new TelnetTermOptions() - .setPort(5000) - .setHost("localhost")); -server.termHandler((term) => { - term.stdinHandler((line) => { - term.write(line); - }); -}); -server.listen(); -``` - -## HTTP term - -The `TermServer.createHttpTermServer` method creates an HTTP term -server, built on top of Vert.x Web using the SockJS protocol. - -``` js -import { TermServer } from "@vertx/shell" -let server = TermServer.createHttpTermServer(vertx, new HttpTermOptions() - .setPort(5000) - .setHost("localhost")); -server.termHandler((term) => { - term.stdinHandler((line) => { - term.write(line); - }); -}); -server.listen(); -``` - -An HTTP term can start its own HTTP server, or it can reuse an existing -Vert.x Web `Router`. - -The shell can be found at `/shell.html`. - -``` js -import { TermServer } from "@vertx/shell" -let server = TermServer.createHttpTermServer(vertx, router, new HttpTermOptions() - .setPort(5000) - .setHost("localhost")); -server.termHandler((term) => { - term.stdinHandler((line) => { - term.write(line); - }); -}); -server.listen(); -``` - -The later option is convenient when the HTTP shell is integrated in an -existing HTTP server. - -The HTTP term server by default is configured for serving: - - - the `shell.html` page - - - the `term.js` client library - - - the `vertxshell.js` client library - -The `vertxshell.js` integrates `term.js` is the client side part of the -HTTP term. - -It integrates `term.js` with SockJS and needs the URL of the HTTP term -server endpoint: - -``` javascript -window.addEventListener('load', function () { - var url = 'http://localhost/shell'; - new VertxTerm(url, { - cols: 80, - rows: 24 - }); -}); -``` - -Straight websockets can also be used, if so, the remote term URL should -be suffixed with `/websocket`: - -``` javascript -window.addEventListener('load', function () { - var url = 'ws://localhost/shell/websocket'; - new VertxTerm(url, { - cols: 80, - rows: 24 - }); -}); -``` - -For customization purpose these resources can be copied and customized, -they are available in the Vert.x Shell jar under the -`io.vertx.ext.shell` packages. - -# Command discovery - -The command discovery can be used when new commands need to be added to -Vert.x without an explicit registration. - -For example, the *Dropwizard* metrics service, adds specific metrics -command to the shell service on the fly. - -It can be achieved via the `java.util.ServiceLoader` of a -`CommandResolverFactory`. - -``` java -public class CustomCommands implements CommandResolverFactory { - - public void resolver(Vertx vertx, Handler> resolverHandler) { - resolverHandler.handler(() -> Arrays.asList(myCommand1, myCommand2)); - } -} -``` - -The `resolver` method is async, because the resolver may need to wait -some condition before commands are resolved. - -The shell service discovery using the service loader mechanism: - -**The service provider file -`META-INF/services/io.vertx.ext.shell.spi.CommandResolverFactory`.** - - my.CustomCommands - -This is only valid for the `ShellService`. `ShellServer` don’t use this -mechanism. - -# Command pack - -A command pack is a jar that provides new Vert.x Shell commands. - -Such jar just need to be present on the classpath and it is discovered -by Vertx. Shell. - -``` java -public class CommandPackExample implements CommandResolverFactory { - - @Override - public void resolver(Vertx vertx, Handler> resolveHandler) { - List commands = new ArrayList<>(); - - // Add commands - commands.add(Command.create(vertx, JavaCommandExample.class)); - - // Add another command - commands.add(CommandBuilder.command("another-command").processHandler(process -> { - // Handle process - }).build(vertx)); - - // Resolve with the commands - resolveHandler.handle(Future.succeededFuture(() -> commands)); - } -} -``` - -The command pack uses command discovery mechanism, so it needs the -descriptor: - -**`META-INF/services/io.vertx.ext.shell.spi.CommandResolverFactory` -descriptor.** - - examples.pack.CommandPackExample diff --git a/docs/manual/@vertx/sql-client/connections.md b/docs/manual/@vertx/sql-client/connections.md deleted file mode 100644 index 2d1876ddd..000000000 --- a/docs/manual/@vertx/sql-client/connections.md +++ /dev/null @@ -1,14 +0,0 @@ -# Using connections - -When you need to execute sequential queries (without a transaction), you -can create a new connection or borrow one from the pool: - -``` js -`usingConnections01` -``` - -Prepared queries can be created: - -``` js -`usingConnections02` -``` diff --git a/docs/manual/@vertx/sql-client/cursor.md b/docs/manual/@vertx/sql-client/cursor.md deleted file mode 100644 index 5264e8cc8..000000000 --- a/docs/manual/@vertx/sql-client/cursor.md +++ /dev/null @@ -1,27 +0,0 @@ -# Cursors and streaming - -By default prepared query execution fetches all rows, you can use a -`Cursor` to control the amount of rows you want to read: - -``` js -`usingCursors01` -``` - -Cursors shall be closed when they are released prematurely: - -``` js -`usingCursors02` -``` - -A stream API is also available for cursors, which can be more -convenient, specially with the Rxified version. - -``` js -`usingCursors03` -``` - -The stream read the rows by batch of `50` and stream them, when the rows -have been passed to the handler, a new batch of `50` is read and so on. - -The stream can be resumed or paused, the loaded rows will remain in -memory until they are delivered and the cursor will stop iterating. diff --git a/docs/manual/@vertx/sql-client/dataobjects.md b/docs/manual/@vertx/sql-client/dataobjects.md deleted file mode 100644 index 83a1d6379..000000000 --- a/docs/manual/@vertx/sql-client/dataobjects.md +++ /dev/null @@ -1,269 +0,0 @@ -# PoolOptions - -The options for configuring a connection pool. - -| | | | -| ------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@maxSize` | `Number (int)` | Set the maximum pool size | -| `@maxWaitQueueSize` | `Number (int)` | 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. | - -# SqlConnectOptions - -Connect options for configuring link or link. - -
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@cachePreparedStatements

Boolean

Set whether prepared statements cache should be enabled.

@connectTimeout

Number (int)

-

@crlPaths

Array of String

-

@crlValues

Array of Buffer

-

@database

String

Specify the default database for the connection.

@enabledCipherSuites

Array of String

-

@enabledSecureTransportProtocols

Array of String

-

@host

String

Specify the host for connecting to the server.

@hostnameVerificationAlgorithm

String

-

@idleTimeout

Number (int)

-

@idleTimeoutUnit

TimeUnit

-

@jdkSslEngineOptions

JdkSSLEngineOptions

-

@keyStoreOptions

JksOptions

-

@localAddress

String

-

@logActivity

Boolean

-

@metricsName

String

-

@openSslEngineOptions

OpenSSLEngineOptions

-

@password

String

Specify the user password to be used for the authentication.

@pemKeyCertOptions

PemKeyCertOptions

-

@pemTrustOptions

PemTrustOptions

-

@pfxKeyCertOptions

PfxOptions

-

@pfxTrustOptions

PfxOptions

-

@port

Number (int)

Specify the port for connecting to the server.

@preparedStatementCacheMaxSize

Number (int)

Set the maximum number of prepared statements that the connection will cache.

@preparedStatementCacheSqlLimit

Number (int)

Set the maximum length of prepared statement SQL string that the connection will cache.

-

This is an helper setting the link.

@properties

String

Set properties for this client, which will be sent to server at the connection start.

@proxyOptions

ProxyOptions

-

@receiveBufferSize

Number (int)

-

@reconnectAttempts

Number (int)

-

@reconnectInterval

Number (long)

-

@reuseAddress

Boolean

-

@reusePort

Boolean

-

@sendBufferSize

Number (int)

-

@soLinger

Number (int)

-

@ssl

Boolean

-

@sslHandshakeTimeout

Number (long)

-

@sslHandshakeTimeoutUnit

TimeUnit

-

@tcpCork

Boolean

-

@tcpFastOpen

Boolean

-

@tcpKeepAlive

Boolean

-

@tcpNoDelay

Boolean

-

@tcpQuickAck

Boolean

-

@trafficClass

Number (int)

-

@trustAll

Boolean

-

@trustStoreOptions

JksOptions

-

@useAlpn

Boolean

-

@usePooledBuffers

Boolean

-

@user

String

Specify the user account to be used for the authentication.

diff --git a/docs/manual/@vertx/sql-client/queries.md b/docs/manual/@vertx/sql-client/queries.md deleted file mode 100644 index 0a6e39e8e..000000000 --- a/docs/manual/@vertx/sql-client/queries.md +++ /dev/null @@ -1,78 +0,0 @@ -# Running queries - -When you don’t need a transaction or run single queries, you can run -queries directly on the pool; the pool will use one of its connection to -run the query and return the result to you. - -Here is how to run simple queries: - -``` js -`queries01` -``` - -## Prepared queries - -You can do the same with prepared queries. - -The SQL string can refer to parameters by position, using the database -syntax {PREPARED\_PARAMS} - -``` js -`queries02` -``` - -Query methods provides an asynchronous `RowSet` instance that works for -*SELECT* queries - -``` js -`queries03` -``` - -or *UPDATE*/*INSERT* queries: - -``` js -`queries04` -``` - -The `Row` gives you access to your data by index - -``` js -`queries05` -``` - -or by name - -``` js -`queries06` -``` - -The client will not do any magic here and the column name is identified -with the name in the table regardless of how your SQL text is. - -You can access a wide variety of of types - -``` js -`queries07` -``` - -You can use cached prepared statements to execute one-shot prepared -queries: - -``` js -`queries09` -``` - -You can create a `PreparedStatement` and manage the lifecycle by -yourself. - -``` js -`queries10` -``` - -## Batches - -You can execute prepared batch - -``` js -`queries08` -``` diff --git a/docs/manual/@vertx/sql-client/transactions.md b/docs/manual/@vertx/sql-client/transactions.md deleted file mode 100644 index 404ca045e..000000000 --- a/docs/manual/@vertx/sql-client/transactions.md +++ /dev/null @@ -1,37 +0,0 @@ -# Using transactions - -## Transactions with connections - -You can execute transaction using SQL `BEGIN`/`COMMIT`/`ROLLBACK`, if -you do so you must use a `SqlConnection` and manage it yourself. - -Or you can use the transaction API of `SqlConnection`: - -``` js -`transaction01` -``` - -When the database server reports the current transaction is failed (e.g -the infamous *current transaction is aborted, commands ignored until end -of transaction block*), the transaction is rollbacked and the -`abortHandler` is called: - -``` js -`transaction02` -``` - -## Simplified transaction API - -When you use a pool, you can start a transaction directly on the pool. - -It borrows a connection from the pool, begins the transaction and -releases the connection to the pool when the transaction ends. - -``` js -`transaction03` -``` - -> **Note** -> -> this code will not close the connection because it will always be -> released back to the pool when the transaction diff --git a/docs/manual/@vertx/sql-common/dataobjects.md b/docs/manual/@vertx/sql-common/dataobjects.md deleted file mode 100644 index 4ac48a0cf..000000000 --- a/docs/manual/@vertx/sql-common/dataobjects.md +++ /dev/null @@ -1,96 +0,0 @@ -# ResultSet - -Represents the results of a SQL query. - -It contains a list for the column names of the results, and a list of - -JsonArray - -\- one for each row of the results. - - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Name

Type

Description

@columnNames

Array of String

Get the column names

@next

ResultSet

Get the next result set

@numColumns

Number (int)

Return the number of columns in the result set

@numRows

Number (int)

Return the number of rows in the result set

@output

Json array

Get the registered outputs

@results

Array of Json array

Get the results

@rows

Array of Json object

Get the rows - each row represented as a JsonObject where the keys are the column names and the values are the column values.

-

Beware that it's legal for a query result in SQL to contain duplicate column names, in which case one will overwrite the other if using this method. If that's the case use link instead.

-

Be aware that column names are defined as returned by the database, this means that even if your SQL statement is for example: SELECT a, b FROM table the column names are not required to be: a and b and could be in fact A and B.

-

For cases when there is the need for case insentivitity you should see link

- -# SQLOptions - -Represents the options one can use to customize the unwrapped -connection/statement/resultset types - -| | | | -| --------------------------- | ---------------------- | ----------- | -| Name | Type | Description | -| `@autoGeneratedKeys` | `Boolean` | \- | -| `@autoGeneratedKeysIndexes` | `Json array` | \- | -| `@catalog` | `String` | \- | -| `@fetchDirection` | `FetchDirection` | \- | -| `@fetchSize` | `Number (int)` | \- | -| `@queryTimeout` | `Number (int)` | \- | -| `@readOnly` | `Boolean` | \- | -| `@resultSetConcurrency` | `ResultSetConcurrency` | \- | -| `@resultSetType` | `ResultSetType` | \- | -| `@schema` | `String` | \- | -| `@transactionIsolation` | `TransactionIsolation` | \- | - -# UpdateResult - -Represents the result of an update/insert/delete operation on the -database. - -The number of rows updated is available with link and any generated keys -are available with link. - -| | | | -| ---------- | -------------- | ------------------------------ | -| Name | Type | Description | -| `@keys` | `Json array` | Get any generated keys | -| `@updated` | `Number (int)` | Get the number of rows updated | diff --git a/docs/manual/@vertx/sql-common/enums.md b/docs/manual/@vertx/sql-common/enums.md deleted file mode 100644 index 2f8231a84..000000000 --- a/docs/manual/@vertx/sql-common/enums.md +++ /dev/null @@ -1,44 +0,0 @@ -# FetchDirection - -Represents the fetch direction hint - -| | | -| --------- | ----------- | -| Name | Description | -| `FORWARD` | \- | -| `REVERSE` | \- | -| `UNKNOWN` | \- | - -# ResultSetConcurrency - -Represents the resultset concurrency hint - -| | | -| ----------- | ----------- | -| Name | Description | -| `READ_ONLY` | \- | -| `UPDATABLE` | \- | - -# ResultSetType - -Represents the resultset type hint - -| | | -| -------------------- | ----------- | -| Name | Description | -| `FORWARD_ONLY` | \- | -| `SCROLL_INSENSITIVE` | \- | -| `SCROLL_SENSITIVE` | \- | - -# TransactionIsolation - -Represents a Transaction Isolation Level - -| | | -| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `READ_UNCOMMITTED` | Implements dirty read, or isolation level 0 locking, which means that no shared locks are issued and no exclusive locks are honored. When this option is set, it is possible to read uncommitted or dirty data; values in the data can be changed and rows can appear or disappear in the data set before the end of the transaction. This is the least restrictive of the four isolation levels. | -| `READ_COMMITTED` | Specifies that shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in nonrepeatable reads or phantom data. | -| `REPEATABLE_READ` | Locks are placed on all data that is used in a query, preventing other users from updating the data, but new phantom rows can be inserted into the data set by another user and are included in later reads in the current transaction. Because concurrency is lower than the default isolation level, use this option only when necessary. | -| `SERIALIZABLE` | Places a range lock on the data set, preventing other users from updating or inserting rows into the data set until the transaction is complete. This is the most restrictive of the four isolation levels. Because concurrency is lower, use this option only when necessary. | -| `NONE` | For engines that support it, none isolation means that each statement would essentially be its own transaction. | diff --git a/docs/manual/@vertx/sql-common/index.md b/docs/manual/@vertx/sql-common/index.md deleted file mode 100644 index efd500a39..000000000 --- a/docs/manual/@vertx/sql-common/index.md +++ /dev/null @@ -1,517 +0,0 @@ -# Vert.x Common SQL interface - -The common SQL interface is used to interact with Vert.x SQL services. - -You obtain a connection to the database via the service interface for -the specific SQL service that you are using (e.g. -JDBC/MySQL/PostgreSQL). - -To use this project, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-sql-common - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-sql-common:${maven.version}' -``` - -# Simple SQL Operations - -There are times when you will want to run a single SQL operation, e.g.: -a single select of a row, or a update to a set of rows which do not -require to be part of a transaction or have dependencies on the previous -or next operation. - -For these cases, clients provide a boilerplate-less API `SQLOperations`. -This interface will perform the following steps for you: - -1. acquire a connection from the connection pool - -2. perform your action - -3. close and return the connection to the connection pool - -An example where users get loaded from the `USERS` table could be: - -``` js -client.query("SELECT * FROM USERS", (ar) => { - if (ar.succeeded()) { - if (ar.succeeded()) { - let result = ar.result(); - } else { - // Failed! - } - // NOTE that you don't need to worry about - // the connection management (e.g.: close) - } -}); -``` - -You can perform the following operations as a simple one "shot" method -call: - - - `query` - - - `queryWithParams` - - - `querySingle` - - - `querySingleWithParams` - - - `update` - - - `updateWithParams` - - - `call` - - - `callWithParams` - -For further details on these API please refer to the `SQLOperations` -interface. - -# The SQL Connection - -A connection to the database is represented by `SQLConnection`. - -## Auto-commit - -When you obtain a connection auto commit is set to `true`. This means -that each operation you perform will effectively execute in its own -transaction. - -If you wish to perform multiple operations in a single transaction you -should set auto commit to false with `setAutoCommit`. - -When the operation is complete, the handler will be called: - -``` js -connection.setAutoCommit(false, (res) => { - if (res.succeeded()) { - // OK! - } else { - // Failed! - } -}); -``` - -## Executing queries - -To execute a query use `query` - -The query string is raw SQL that is passed through without changes to -the actual database. - -The handler will be called with the results, represented by `ResultSet` -when the query has been run. - -``` js -connection.query("SELECT ID, FNAME, LNAME, SHOE_SIZE from PEOPLE", (res) => { - if (res.succeeded()) { - // Get the result set - let resultSet = res.result(); - } else { - // Failed! - } -}); -``` - -The `ResultSet` instance represents the results of a query. - -The list of column names are available with `getColumnNames`, and the -actual results available with `getResults` - -The results are a list of `JsonArray` instances, one for each row of the -results. - -``` js -let columnNames = resultSet.columnNames; - -let results = resultSet.results; - -results.forEach(row => { - - let id = row[0]; - let fName = row[1]; - let lName = row[2]; - let shoeSize = row[3]; - -}); -``` - -You can also retrieve the rows as a list of Json object instances with -`getRows` - this can give you a somewhat simpler API to work with, but -please be aware that SQL results can contain duplicate column names - if -that’s the case you should use `getResults` instead. - -Here’s an example of iterating through the results as Json object -instances: - -``` js -let rows = resultSet.rows; - -rows.forEach(row => { - - let id = row.ID; - let fName = row.FNAME; - let lName = row.LNAME; - let shoeSize = row.SHOE_SIZE; - -}); -``` - -## Prepared statement queries - -To execute a prepared statement query you can use `queryWithParams`. - -This takes the query, containing the parameter place holders, and a -`JsonArray` or parameter values. - -``` js -let query = "SELECT ID, FNAME, LNAME, SHOE_SIZE from PEOPLE WHERE LNAME=? AND SHOE_SIZE > ?"; -let params = [ - "Fox", - 9 -]; - -connection.queryWithParams(query, params, (res) => { - - if (res.succeeded()) { - // Get the result set - let resultSet = res.result(); - } else { - // Failed! - } -}); -``` - -## Executing INSERT, UPDATE or DELETE - -To execute an operation which updates the database use `update`. - -The update string is raw SQL that is passed through without changes to -the actual database. - -The handler will be called with the results, represented by -`UpdateResult` when the update has been run. - -The update result holds the number of rows updated with `getUpdated`, -and if the update generated keys, they are available with `getKeys`. - -``` js -connection.update("INSERT INTO PEOPLE VALUES (null, 'john', 'smith', 9)", (res) => { - if (res.succeeded()) { - - let result = res.result(); - console.log("Updated no. of rows: " + result.updated); - console.log("Generated keys: " + result.keys); - - } else { - // Failed! - } -}); -``` - -## Prepared statement updates - -To execute a prepared statement update you can use `updateWithParams`. - -This takes the update, containing the parameter place holders, and a -`JsonArray` or parameter values. - -``` js -let update = "UPDATE PEOPLE SET SHOE_SIZE = 10 WHERE LNAME=?"; -let params = [ - "Fox" -]; - -connection.updateWithParams(update, params, (res) => { - - if (res.succeeded()) { - - let updateResult = res.result(); - - console.log("No. of rows updated: " + updateResult.updated); - - } else { - - // Failed! - - } -}); -``` - -## Callable statements - -To execute a callable statement (either SQL functions or SQL procedures) -you can use `callWithParams`. - -This takes the callable statement using the standard JDBC format `{ call -func_proc_name() }`, optionally including parameter place holders e.g.: -`{ call func_proc_name(?, ?) }`, a `JsonArray` containing the parameter -values and finally a `JsonArray` containing the output types e.g.: -`[null, 'VARCHAR']`. - -Note that the index of the output type is as important as the params -array. If the return value is the second argument then the output array -must contain a null value as the first element. - -A SQL function returns some output using the `return` keyword, and in -this case one can call it like this: - -``` js -// Assume that there is a SQL function like this: -// -// create function one_hour_ago() returns timestamp -// return now() - 1 hour; - -// note that you do not need to declare the output for functions -let func = "{ call one_hour_ago() }"; - -connection.call(func, (res) => { - - if (res.succeeded()) { - let result = res.result(); - } else { - // Failed! - } -}); -``` - -When working with Procedures you and still return values from your -procedures via its arguments, in the case you do not return anything the -usage is as follows: - -``` js -// Assume that there is a SQL procedure like this: -// -// create procedure new_customer(firstname varchar(50), lastname varchar(50)) -// modifies sql data -// insert into customers values (default, firstname, lastname, current_timestamp); - -let func = "{ call new_customer(?, ?) }"; - -connection.callWithParams(func, [ - "John", - "Doe" -], null, (res) => { - - if (res.succeeded()) { - // Success! - } else { - // Failed! - } -}); -``` - -However you can also return values like this: - -``` js -// Assume that there is a SQL procedure like this: -// -// create procedure customer_lastname(IN firstname varchar(50), OUT lastname varchar(50)) -// modifies sql data -// select lastname into lastname from customers where firstname = firstname; - -let func = "{ call customer_lastname(?, ?) }"; - -connection.callWithParams(func, [ - "John" -], [ - null, - "VARCHAR" -], (res) => { - - if (res.succeeded()) { - let result = res.result(); - } else { - // Failed! - } -}); -``` - -Note that the index of the arguments matches the index of the `?` and -that the output parameters expect to be a String describing the type you -want to receive. - -To avoid ambiguation the implementations are expected to follow the -following rules: - - - When a place holder in the `IN` array is `NOT NULL` it will be taken - - - When the `IN` value is NULL a check is performed on the OUT When the - `OUT` value is not null it will be registered as a output parameter - When the `OUT` is also null it is expected that the IN value is the - `NULL` value. - -The registered `OUT` parameters will be available as an array in the -result set under the output property. - -## Batch operations - -The SQL common interface also defines how to execute batch operations. -There are 3 types of batch operations: - - - Batched statements `batch` - - - Batched prepared statements `batchWithParams` - - - Batched callable statements `batchCallableWithParams` - -A batches statement will exeucte a list of sql statements as for -example: - -``` js -// Batch values -let batch = []; -batch.push("INSERT INTO emp (NAME) VALUES ('JOE')"); -batch.push("INSERT INTO emp (NAME) VALUES ('JANE')"); - -connection.batch(batch, (res) => { - if (res.succeeded()) { - let result = res.result(); - } else { - // Failed! - } -}); -``` - -While a prepared or callable statement batch will reuse the sql -statement and take an list of arguments as for example: - -``` js -// Batch values -let batch = []; -batch.push([ - "joe" -]); -batch.push([ - "jane" -]); - -connection.batchWithParams("INSERT INTO emp (name) VALUES (?)", batch, (res) => { - if (res.succeeded()) { - let result = res.result(); - } else { - // Failed! - } -}); -``` - -## Executing other operations - -To execute any other database operation, e.g. a `CREATE TABLE` you can -use `execute`. - -The string is passed through without changes to the actual database. The -handler is called when the operation is complete - -``` js -let sql = "CREATE TABLE PEOPLE (ID int generated by default as identity (start with 1 increment by 1) not null,FNAME varchar(255), LNAME varchar(255), SHOE_SIZE int);"; - -connection.execute(sql, (execute) => { - if (execute.succeeded()) { - console.log("Table created !"); - } else { - // Failed! - } -}); -``` - -## Multiple ResultSet responses - -In some cases your query might return more than one result set, in this -case and to preserve the compatibility when the returned result set -object is converted to pure json, the next result sets are chained to -the current result set under the property `next`. A simple walk of all -result sets can be achieved like this: - -``` js -// do something with the result set... - -// next step -rs = rs.next; -; -``` - -## Streaming - -When dealing with large data sets, it is not advised to use API just -described but to stream data since it avoids inflating the whole -response into memory and JSON and data is just processed on a row by row -basis, for example: - -``` js -connection.queryStream("SELECT * FROM large_table", (stream) => { - if (stream.succeeded()) { - stream.result().handler((row) => { - // do something with the row... - }); - } -}); -``` - -You still have full control on when the stream is pauses, resumed and -ended. For cases where your query returns multiple result sets you -should use the result set ended event to fetch the next one if -available. If there is more data the stream handler will receive the new -data, otherwise the end handler is invoked. - -``` js -connection.queryStream("SELECT * FROM large_table; SELECT * FROM other_table", (stream) => { - if (stream.succeeded()) { - let sqlRowStream = stream.result(); - - sqlRowStream.resultSetClosedHandler((v) => { - // will ask to restart the stream with the new result set if any - sqlRowStream.moreResults(); - }).handler((row) => { - // do something with the row... - }).endHandler((v) => { - // no more data available... - }); - } -}); -``` - -## Using transactions - -To use transactions first set auto-commit to false with `setAutoCommit`. - -You then do your transactional operations and when you want to commit or -rollback use `commit` or `rollback`. - -Once the commit/rollback is complete the handler will be called and the -next transaction will be automatically started. - -``` js -// Do stuff with connection - updates etc - -// Now commit - -connection.commit((res) => { - if (res.succeeded()) { - // Committed OK! - } else { - // Failed! - } -}); -``` - -## Closing connections - -When you’ve done with the connection you should return it to the pool -with `close`. diff --git a/docs/manual/@vertx/stomp/dataobjects.md b/docs/manual/@vertx/stomp/dataobjects.md deleted file mode 100644 index b41781406..000000000 --- a/docs/manual/@vertx/stomp/dataobjects.md +++ /dev/null @@ -1,163 +0,0 @@ -# BridgeOptions - -Specify the event bus bridge options. - -| | | | -| --------------------- | --------------------------- | ----------- | -| Name | Type | Description | -| `@inboundPermitteds` | `Array of PermittedOptions` | \- | -| `@outboundPermitteds` | `Array of PermittedOptions` | \- | -| `@pointToPoint` | `Boolean` | \- | - -# Frame - -Represents a STOMP frame. STOMP frames are structured as follows. It -starts by a - -command - -, followed by a set of headers. Then the frame may have a body and is -finished by a - -0 - -byte. This class represents this structure and provide access to the -different parts. - -This class is - -NOT - -thread-safe. - -| | | | -| --------------- | --------- | ---------------------------------------------------------------------- | -| Name | Type | Description | -| `@ack` | `String` | Gets the value of the `ack` header. | -| `@body` | `Buffer` | Sets the body of the frame. | -| `@bodyAsString` | `String` | Gets the body of the frames as a String encoded in the frame encoding. | -| `@command` | `Command` | Sets the frame command. | -| `@destination` | `String` | \- | -| `@headers` | `String` | Sets the headers of the frames. | -| `@id` | `String` | \- | -| `@receipt` | `String` | \- | -| `@transaction` | `String` | \- | - -# StompClientOptions - -Options used to configure a STOMP client. As a STOMP client wraps a Net -client, you can also configure the underlying NET client. - -| | | | -| ---------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Name | Type | Description | -| `@acceptedVersions` | `Array of String` | Sets the list of STOMP protocol versions accepted by the client. The list must be ordered from the lowest version to the highest. By default the following list is used: `1.0, 1.1, 1.2` | -| `@autoComputeContentLength` | `Boolean` | Sets whether or not the automatic computation of the `content-length` header is enabled. If enabled, the `content-length` header is set in all frame with a body that do not explicitly set the header. The option is enabled by default. | -| `@bypassHostHeader` | `Boolean` | Sets whether or not the `host` header must be dropped from the `CONNECT/STOMP` frame. Server may be picky about this header (such as RabbitMQ that does not support it). Options disabled by default. | -| `@connectTimeout` | `Number (int)` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@heartbeat` | `Json object` | Sets the heartbeat configuration. | -| `@host` | `String` | Sets the STOMP server host. `0.0.0.0` by default. | -| `@hostnameVerificationAlgorithm` | `String` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@localAddress` | `String` | \- | -| `@logActivity` | `Boolean` | \- | -| `@login` | `String` | Sets the login to use if the STOMP server is secured. | -| `@metricsName` | `String` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@passcode` | `String` | Sets the passcode to use if the STOMP server is secured. | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@port` | `Number (int)` | Sets the STOMP server port. `61613` by default. | -| `@proxyOptions` | `ProxyOptions` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reconnectAttempts` | `Number (int)` | \- | -| `@reconnectInterval` | `Number (long)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@trafficClass` | `Number (int)` | \- | -| `@trailingLine` | `Boolean` | Sets whether or not an empty line should be appended to the written STOMP frame. This option is disabled by default. This option is not compliant with the STOMP specification, and so is not documented on purpose. | -| `@trustAll` | `Boolean` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | -| `@useStompFrame` | `Boolean` | Sets whether or not the connection is made using the `STOMP` command instead of the `CONNECT` command. The `STOMP` command has been introduced in the 1.2 version of the protocol to ease the network analysis (as `CONNECT` is also used by HTTP. To be compliant with server not implementing the 1.2 specification, this option should be disabled. This option is disabled by default. | -| `@virtualHost` | `String` | Sets the virtual host that will be used as "host" header value in the \`CONNECT\` frame. | - -# StompServerOptions - -STOMP Server options. You can also configure the Net Server used by the -STOMP server from these options. - -| | | | -| ---------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@acceptBacklog` | `Number (int)` | \- | -| `@clientAuth` | `ClientAuth` | \- | -| `@clientAuthRequired` | `Boolean` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@heartbeat` | `Json object` | Sets the heartbeat configuration. | -| `@host` | `String` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@logActivity` | `Boolean` | \- | -| `@maxBodyLength` | `Number (int)` | Sets the max body length accepted by the server. 10 Mb by default. | -| `@maxFrameInTransaction` | `Number (int)` | Sets the maximum number of frame that can be added in a transaction. If the number of frame added to a transaction exceeds this threshold, the client receives an `ERROR` frame and is disconnected. The default is 1000. | -| `@maxHeaderLength` | `Number (int)` | Sets the max header length. | -| `@maxHeaders` | `Number (int)` | Sets the maximum number of headers. 1000 by default. | -| `@maxSubscriptionsByClient` | `Number (int)` | Sets the maximum of subscriptions a client is allowed to register. If a client exceeds this number, it receives an error and the connection is closed. | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@port` | `Number (int)` | Sets the port on which the server is going to listen for TCP connection. | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@secured` | `Boolean` | Enables or disables the server security feature. It requires an link handler. | -| `@sendBufferSize` | `Number (int)` | \- | -| `@sendErrorOnNoSubscriptions` | `Boolean` | Sets whether or not an error is sent to the client when this client sends a message to an not subscribed destinations (no subscriptions on this destination). | -| `@sni` | `Boolean` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@supportedVersions` | `Array of String` | Sets the STOMP protocol versions supported by the server. Versions must be given in the decreasing order. | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@timeFactor` | `Number (int)` | Sets the time factor. | -| `@trafficClass` | `Number (int)` | \- | -| `@trailingLine` | `Boolean` | Sets whether or not an empty line should be appended to the written STOMP frame. This option is disabled by default. This option is not compliant with the STOMP specification, and so is not documented on purpose. | -| `@transactionChunkSize` | `Number (int)` | Sets the chunk size when replaying a transaction. To avoid blocking the event loop for too long, large transactions are split into chunks, replayed one by one. This settings sets the chunk size. | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | -| `@websocketBridge` | `Boolean` | Enables or disables the web socket bridge. | -| `@websocketPath` | `String` | Sets the websocket path. Only frames received on this path would be considered as STOMP frame. | diff --git a/docs/manual/@vertx/stomp/index.md b/docs/manual/@vertx/stomp/index.md deleted file mode 100644 index b18bde5af..000000000 --- a/docs/manual/@vertx/stomp/index.md +++ /dev/null @@ -1,766 +0,0 @@ -STOMP is the Simple (or Streaming) Text Orientated Messaging Protocol. -STOMP provides an interoperable wire format so that STOMP clients can -communicate with any STOMP message broker to provide easy and widespread -messaging interoperability among many languages, platforms and brokers. -Get more details about STOMP on . - -Vertx-Stomp is an implementation of a STOMP server and client. You can -use the STOMP server with other clients and use the STOMP client with -other servers. The server and the client supports the version 1.0, 1.1 -and 1.2 of the STOMP protocol (see -). The STOMP -server can also be used as a bridge with the vert.x event bus, or -directly with web sockets (using StompJS). - -# Using vertx-stomp - -To use the Vert.x Stomp server and client, add the following dependency -to the *dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-stomp - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile 'io.vertx:vertx-stomp:${maven.version}' -``` - -# STOMP server - -## Creating a STOMP server - -The simplest way to create an STOMP server, using all default options is -as follows: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx)).listen(); -``` - -This creates a STOMP server listening on `localhost:61613` that is -compliant with the STOMP specification. - -You can configure the port and host in the `listen` method: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx)).listen(1234, "0.0.0.0"); -``` - -If you pass `-1` as port, the TCP server would not be started. This is -useful when using the websocket bridge. To be notified when the server -is ready, use a handler as follows: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx)).listen((ar) => { - if (ar.failed()) { - console.log("Failing to start the STOMP server : " + ar.cause().getMessage()); - } else { - console.log("Ready to receive STOMP frames"); - } -}); -``` - -The handler receive a reference on the `StompServer`. - -You can also configure the host and port in `StompServerOptions`: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx, new StompServerOptions() - .setPort(1234) - .setHost("0.0.0.0")).handler(StompServerHandler.create(vertx)).listen(); -``` - -## Closing a STOMP server - -STOMP servers are closed as follows: - -``` js -server.close((ar) => { - if (ar.succeeded()) { - console.log("The STOMP server has been closed"); - } else { - console.log("The STOMP server failed to close : " + ar.cause().getMessage()); - } -}); -``` - -## Configuration - -The `StompServerOptions` let you configure some aspects of the STOMP -server. - -First, the STOMP server is based on a `NetServer`, so you can configure -the underlying `NetServer` from the `StompServerOptions`. Alternatively -you can also pass the `NetServer` you want to use: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx, netServer).handler(StompServerHandler.create(vertx)).listen(); -``` - -The `StompServerOptions` let you configure: - - - the host and port of the STOMP server - defaults to `0.0.0.0:61613`. - - - whether or not the STOMP server is secured - defaults to `false` - - - the max STOMP frame body - default to 10 Mb - - - the maximum number of headers accepted in a STOMP frame - defaults - to 1000 - - - the max length of a header line in a STOMP frame - defaults to 10240 - - - the STOMP heartbeat time - default to `1000, 1000` - - - the supported STOMP protocol versions (1.0, 1.1 and 1.2 by default) - - - the maximum number of frame allowed in a transaction (defaults to - 1000) - - - the size of the transaction chunk - defaults to 1000 (see - `setTransactionChunkSize`) - - - the maximum number of subscriptions a client can handle - defaults - to 1000 - -The STOMP heartbeat is configured using a JSON object as follows: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx, new StompServerOptions() - .setHeartbeat({ - "x" : 1000, - "y" : 1000 - })).handler(StompServerHandler.create(vertx)).listen(); -``` - -Enabling security requires an additional `AuthProvider` handling the -authentication requests: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx, new StompServerOptions() - .setSecured(true)).handler(StompServerHandler.create(vertx).authProvider(provider)).listen(); -``` - -More information about `AuthProvider` is available -[here](http://vertx.io/docs/#authentication_and_authorisation). - -If a frame exceeds one of the size limits, the frame is rejected and the -client receives an `ERROR` frame. As the specification requires, the -client connection is closed immediately after having sent the error. The -same behavior happens with the other thresholds. - -## Subscriptions - -The default STOMP server handles subscription destination as opaque -Strings. So it does not promote a structure and it not hierarchic. By -default the STOMP server follow a *topic* semantic (so messages are -dispatched to all subscribers). - -## Type of destinations - -By default, the STOMP server manages *destinations* as topics. So -messages are dispatched to all subscribers. You can configure the server -to use queues, or mix both types: - -``` js -import { Destination } from "@vertx/stomp" -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).destinationFactory((v, name) => { - if (name.startsWith("/queue")) { - return Destination.queue(vertx, name) - } else { - return Destination.topic(vertx, name) - } -})).listen(); -``` - -In the last example, all destination starting with `/queue` are queues -while others are topics. The destination is created when the first -subscription on this destination is received. - -A server can decide to reject the destination creation by returning -`null`: - -``` js -import { Destination } from "@vertx/stomp" -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).destinationFactory((v, name) => { - if (name.startsWith("/forbidden")) { - return null - } else if (name.startsWith("/queue")) { - return Destination.queue(vertx, name) - } else { - return Destination.topic(vertx, name) - } -})).listen(); -``` - -In this case, the subscriber received an `ERROR` frame. - -Queues dispatches messages using a round-robin strategies. - -## Providing your own type of destination - -On purpose the STOMP server does not implement any advanced feature. IF -you need more advanced dispatching policy, you can implement your own -type of destination by providing a `DestinationFactory` returning your -own `Destination` object. - -## Acknowledgment - -By default, the STOMP server does nothing when a message is not -acknowledged. You can customize this by providing your own `Destination` -implementation. - -The custom destination should call the - -`onAck` and `onNack` method in order to let the `StompServerHandler` -customizes the behavior: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).onAckHandler((acknowledgement) => { - // Action to execute when the frames (one in `client-individual` mode, several - // in `client` mode are acknowledged. -}).onNackHandler((acknowledgement) => { - // Action to execute when the frames (1 in `client-individual` mode, several in - // `client` mode are not acknowledged. -})).listen(); -``` - -## Customizing the STOMP server - -In addition to the handlers seen above, you can configure almost all -aspects of the STOMP server, such as the actions made when specific -frames are received, the `ping` to sent to the client (to implement the -heartbeat). Here are some examples: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).closeHandler((connection) => { - // client connection closed -}).beginHandler((frame) => { - // transaction starts -}).commitHandler((frame) => { - // transaction committed -})).listen(); -``` - -Be aware that changing the default behavior may break the compliance -with the STOMP specification. So, please look at the default -implementations. - -# STOMP client - -STOMP clients connect to STOMP server and can send and receive frames. - -## Creating a STOMP client - -You create a `StompClient` instance with default options as follows: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -The previous snippet creates a STOMP client connecting to -"0.0.0.0:61613". Once connected, you get a `StompClientConnection` that -let you interact with the server. You can configure the host and port as -follows: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect(61613, "0.0.0.0", (ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -To catch connection errors due to authentication issues, or whatever -error frames sent by the server during the connection negotiation, you -can register a *error handler* on the Stomp Client. All connections -created with the client inherit of the error handler (but can have their -own): - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).errorFrameHandler((frame) => { - // Received the ERROR frame -}).connect(61613, "0.0.0.0", (ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -You can also configure the host and port in the `StompClientOptions`: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx, new StompClientOptions() - .setHost("localhost") - .setPort(1234)).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -## Closing a STOMP client - -You can close a STOMP client: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx, new StompClientOptions() - .setHost("localhost") - .setPort(1234)).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); - -client.close(); -``` - -However, this way would not notify the server of the disconnection. To -cleanly close the connection, you should use the `disconnect` method: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx, new StompClientOptions() - .setHost("localhost") - .setPort(1234)).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - - connection.disconnect(); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -If the heartbeat is enabled and if the client did not detect server -activity after the configured timeout, the connection is automatically -closed. - -## Handling errors - -On the `StompClientConnection`, you can register an error handler -receiving `ERROR` frames sent by the server. Notice that the server -closes the connection with the client after having sent such frame: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx, new StompClientOptions() - .setHost("localhost") - .setPort(1234)).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - connection.errorHandler((frame) => { - console.log("ERROR frame received : " + frame); - }); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -The client can also be notified when a connection drop has been -detected. Connection failures are detected using the STOMP heartbeat -mechanism. When the server has not sent a message in the heartbeat time -window, the connection is closed and the `connectionDroppedHandler` is -called (if set). To configure a `connectionDroppedHandler`, call -`connectionDroppedHandler`. The handler can for instance tries to -reconnect to the server: - -``` js -import { Buffer } from "@vertx/core" -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - connection.connectionDroppedHandler((con) => { - // The connection has been lost - // You can reconnect or switch to another server. - }); - - connection.send("/queue", Buffer.buffer("Hello"), (frame) => { - console.log("Message processed by the server"); - }); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -## Configuration - -You can configure various aspect by passing a `StompClientOptions` when -creating the `StompClient`. As the STOMP client relies on a `NetClient`, -you can configure the underlying Net Client from the -`StompClientOptions`. Alternatively, you can pass the `NetClient` you -want to use in the `connect` method: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect(netClient, (ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - connection.errorHandler((frame) => { - console.log("ERROR frame received : " + frame); - }); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -The `StompClientOptions` let you configure: - - - the host and port ot the STOMP server - - - the login and passcode to connect to the server - - - whether or not the `content-length` header should be added to the - frame if not set explicitly. (enabled by default) - - - whether or not the `STOMP` command should be used instead of the - `CONNECT` command (disabled by default) - - - whether or not the `host` header should be ignored in the `CONNECT` - frame (disabled by default) - - - the heartbeat configuration (1000, 1000 by default) - -## Subscribing to destinations - -To subscribe to a destination, use: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - connection.subscribe("/queue", (frame) => { - console.log("Just received a frame from /queue : " + frame); - }); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -To unsubscribe, use: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - connection.subscribe("/queue", (frame) => { - console.log("Just received a frame from /queue : " + frame); - }); - - // .... - - connection.unsubscribe("/queue"); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -## Sending messages - -To send a message, use: - -``` js -import { Buffer } from "@vertx/core" -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - let headers = {}; - headers["header1"] = "value1"; - connection.send("/queue", headers, Buffer.buffer("Hello")); - // No headers: - connection.send("/queue", Buffer.buffer("World")); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -## Acknowledgements - -Clients can send `ACK` and `NACK` frames: - -``` js -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - connection.subscribe("/queue", (frame) => { - connection.ack(frame.ack); - // OR - connection.nack(frame.ack); - }); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -## Transactions - -Clients can also create transactions. `ACK`, `NACK` and `SEND` frames -sent in the transaction will be delivery only when the transaction is -committed. - -``` js -import { Buffer } from "@vertx/core" -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - let headers = {}; - headers["transaction"] = "my-transaction"; - connection.beginTX("my-transaction"); - connection.send("/queue", headers, Buffer.buffer("Hello")); - connection.send("/queue", headers, Buffer.buffer("World")); - connection.send("/queue", headers, Buffer.buffer("!!!")); - connection.commit("my-transaction"); - // OR - connection.abort("my-transaction"); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -## Receipt - -Each sent commands can have a *receipt* handler, notified when the -server has processed the message: - -``` js -import { Buffer } from "@vertx/core" -import { StompClient } from "@vertx/stomp" -let client = StompClient.create(vertx).connect((ar) => { - if (ar.succeeded()) { - let connection = ar.result(); - - connection.send("/queue", Buffer.buffer("Hello"), (frame) => { - console.log("Message processed by the server"); - }); - } else { - console.log("Failed to connect to the STOMP server: " + ar.cause().toString()); - } -}); -``` - -# Using the STOMP server as a bridge to the vert.x Event Bus - -The STOMP server can be used as a bridge to the vert.x Event Bus. The -bridge is bi-directional meaning the STOMP frames are translated to -Event Bus messages and Event Bus messages are translated to STOMP -frames. - -To enable the bridge you need to configure the inbound and outbound -addresses. Inbound addresses are STOMP destination that are transferred -to the event bus. The STOMP destination is used as the event bus -address. Outbound addresses are event bus addresses that are transferred -to STOMP. - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).bridge(new BridgeOptions() - .setInboundPermitteds([new PermittedOptions() - .setAddress("/toBus")]) - .setOutboundPermitteds([new PermittedOptions() - .setAddress("/toStomp")]))).listen(); -``` - -By default, the bridge use a publish/subscribe delivery (topic). You can -configure it to use a point to point delivery where only one STOMP -client or Event Bus consumer is invoked: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).bridge(new BridgeOptions() - .setInboundPermitteds([new PermittedOptions() - .setAddress("/toBus")]) - .setOutboundPermitteds([new PermittedOptions() - .setAddress("/toStomp")]) - .setPointToPoint(true))).listen(); -``` - -The permitted options can also be expressed as a "regex" or with a -*match*. A *match* is a structure that the message payload must meet. -For instance, in the next examples, the payload must contains the field -"foo" set to "bar". Structure match only supports JSON object. - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).bridge(new BridgeOptions() - .setInboundPermitteds([new PermittedOptions() - .setAddress("/toBus") - .setMatch({ - "foo" : "bar" - })]) - .setOutboundPermitteds([new PermittedOptions() - .setAddress("/toStomp")]) - .setPointToPoint(true))).listen(); -``` - -# Using the STOMP server with web sockets - -If you want to connect a JavaScript client (node.js or a browser) -directly with the STOMP server, you can use a web socket. The STOMP -protocol has been adapted to work over web sockets in -[StompJS](http://jmesnil.net/stomp-websocket/doc/). The JavaScript -connects directly to the STOMP server and send STOMP frames on the web -socket. It also receives the STOMP frame directly on the web socket. - -To configure the server to use StompJS, you need to: - -1. Enable the web socket bridge and configure the path of the listening - web socket (`/stomp` by default). - -2. Import [StompJS](http://jmesnil.net/stomp-websocket/doc/#download) - in your application (as a script on an HTML page, or as an npm - module (). - -3. Connect to the server - -To achieve the first step, you would need a HTTP server, and pass the -`webSocketHandler` result to `webSocketHandler`: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -let server = StompServer.create(vertx, new StompServerOptions() - .setPort(-1) - .setWebsocketBridge(true) - .setWebsocketPath("/stomp")).handler(StompServerHandler.create(vertx)); - -let http = vertx.createHttpServer(new HttpServerOptions() - .setWebSocketSubProtocols(["v10.stomp, v11.stomp"])).webSocketHandler(server.webSocketHandler()).listen(8080); -``` - -Don’t forget to declare the supported sub-protocols. Without this, the -connection will be rejected. - -Then follow the instructions from [the StompJS -documentation](http://jmesnil.net/stomp-websocket/doc/) to connect to -the server. Here is a simple example: - -``` javascript -var url = "ws://localhost:8080/stomp"; -var client = Stomp.client(url); -var callback = function(frame) { - console.log(frame); -}; - -client.connect({}, function() { -var subscription = client.subscribe("foo", callback); -}); -``` - -# Registering received and writing frame handlers - -STOMP clients, client’s connections and server handlers support -registering a received `Frame` handler that would be notified every time -a frame is received from the wire. It lets you log the frames, or -implement custom behavior. The handler is already called for `PING` -frames, and *illegal / unknown* frames: - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -import { StompClient } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx).receivedFrameHandler((sf) => { - console.log(sf.frame()); -})).listen(); - -let client = StompClient.create(vertx).receivedFrameHandler((frame) => { - console.log(frame); -}); -``` - -The handler is called before the frame is processed, so you can also -*modify* the frame. - -Frames not using a valid STOMP command use the `UNKNOWN` command. The -original command is written in the headers using the -`Frame.STOMP_FRAME_COMMAND` key. - -You can also register a handler to be notified when a frame is going to -be sent (written to the wire): - -``` js -import { StompServerHandler } from "@vertx/stomp" -import { StompServer } from "@vertx/stomp" -import { StompClient } from "@vertx/stomp" -let server = StompServer.create(vertx).handler(StompServerHandler.create(vertx)).writingFrameHandler((sf) => { - console.log(sf.frame()); -}).listen(); - -let client = StompClient.create(vertx).writingFrameHandler((frame) => { - console.log(frame); -}); -``` diff --git a/docs/manual/@vertx/tcp-eventbus-bridge/index.md b/docs/manual/@vertx/tcp-eventbus-bridge/index.md deleted file mode 100644 index 8e8beea05..000000000 --- a/docs/manual/@vertx/tcp-eventbus-bridge/index.md +++ /dev/null @@ -1,101 +0,0 @@ -Vert.x-tcp-eventbus-bridge is a TCP bridge to Vert.x EventBus. To use -this project, add the following dependency to the *dependencies* section -of your build descriptor: - -Maven (in your `pom.xml`): - -``` xml - - ${maven.groupId} - ${maven.artifactId} - ${maven.version} - -``` - -Gradle (in your `build.gradle` file): - -``` groovy -compile '${maven.groupId}:${maven.artifactId}:${maven.version}' -``` - -The TCP EventBus bridge is built on top of TCP, meaning that any -application that can create TCP sockets can interact with a remote -Vert.x instance via its event bus. - -The main use case for the TCP bridge *versus* the SockJS bridge is for -applications that are more resource-constrained and that need to be -lightweight since the whole HTTP WebSockets is replaced with plain TCP -sockets. - -It remains of course useful even for applications that don’t have tight -resource constraints: the protocol is simple enough to efficiently -provide an integration interface with non-JVM applications. - -The protocol has been kept as simple as possible and communications use -Frames both ways. The structure of a Frame looks like this: - - <{ - type: String, - address: String, - (replyAddress: String)?, - headers: JsonObject, - body: JsonObject - }: JsonObject> - -The message consists of a JSON document that may or may not have been -minified. The message must be prefixed by a *big endian* 32 bits -positive integer (4 bytes) that indicates the full length of the JSON -document, in bytes. - -The message `type` can be the following for messages sent by the TCP -client: - -1. `send` to send a message to an `address`, - -2. `publish` to publish a message to an `address`, - -3. `register` to subscribe to the messages sent or published to an - `address`, - -4. `unregister` to unsubscribe to the messages sent or published to an - `address`, - -5. `ping` to send a `ping` request to the bridge. - -Note that the `replyAddress` field is optional and may only be used for -a `send` message. A message with that field is expected to *eventually* -receive a message back from the server whose `address` field will be -that of the original `replyAddress` value. - -The server posts messages back to the client, and they can be of the -following `type`: - -1. `message` for messages sent or published to an `address`, or - -2. `err` to indicate an error (the `body` shall contain details), or - -3. `pong` to respond the `ping` request sent from client. - -An example NodeJS client is available in the source of the project. This -client uses the same API as the SockJS counter part so it should make it -easier to switch between the TCP and SockJS implementations. - -An example on how to get started with this bridge could be: - -``` js -import { TcpEventBusBridge } from "@vertx/tcp-eventbus-bridge" - -let bridge = TcpEventBusBridge.create(vertx, new BridgeOptions() - .setInboundPermitteds([new PermittedOptions() - .setAddress("in")]) - .setOutboundPermitteds([new PermittedOptions() - .setAddress("out")])); - -bridge.listen(7000, (res) => { - if (res.succeeded()) { - // succeed... - } else { - // fail... - } -}); -``` diff --git a/docs/manual/@vertx/unit/dataobjects.md b/docs/manual/@vertx/unit/dataobjects.md deleted file mode 100644 index 859ef2ef3..000000000 --- a/docs/manual/@vertx/unit/dataobjects.md +++ /dev/null @@ -1,80 +0,0 @@ -# ReportOptions - -Configures a reporter consisting in a name - -to - -, an address - -at - -and an optional - -format - -. - -| | | | -| --------- | -------- | -------------------------------- | -| Name | Type | Description | -| `@format` | `String` | Set the current reporter format. | -| `@to` | `String` | Set the current reporter name. | - -# ReportingOptions - -Reporting options: - -the - -reporters - -is an array of reporter configurations - -| | | | -| ------------ | ------------------------ | ----------------------------------------------------- | -| Name | Type | Description | -| `@reporters` | `Array of ReportOptions` | Replace the current list of reporters with a new one. | - -# TestOptions - -Test execution options: - -the - -timeout - -in milliseconds, the default value is 2 minutes - -the - -useEventLoop - -configures the event loop usage - -true - -always runs with an event loop - -false - -never runs with an event loop - -null - -uses an event loop if there is one (provided by link) otherwise run -without - -\ - -the - -reporters - -is an array of reporter configurations - -| | | | -| --------------- | ------------------------ | --------------------------------------------------------------------------- | -| Name | Type | Description | -| `@reporters` | `Array of ReportOptions` | Replace the current list of reporters with a new one. | -| `@timeout` | `Number (long)` | Set the test timeout. | -| `@useEventLoop` | `Boolean` | Configure the execution to use an event loop when there is no one existing. | diff --git a/docs/manual/@vertx/unit/index.md b/docs/manual/@vertx/unit/index.md deleted file mode 100644 index 11bf678d2..000000000 --- a/docs/manual/@vertx/unit/index.md +++ /dev/null @@ -1,1154 +0,0 @@ -Asynchronous polyglot unit testing. - -# Introduction - -Vertx Unit is designed for writing asynchronous unit tests with a -polyglot API and running these tests in the JVM. Vertx Unit Api borrows -from existing test frameworks like [JUnit](http://junit.org) or -[QUnit](http://qunitjs.com) and follows the Vert.x practices. - -As a consequence Vertx Unit is the natural choice for testing Vert.x -applications. - -To use vert.x unit, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-unit - ${maven.version} - test - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -testCompile ${io.vertx}:${vertx-unit}:${maven.version} -``` - -Vert.x unit can be used in different ways and run anywhere your code -runs, it is just a matter of reporting the results the right way, this -example shows the bare minimum test suite: - -``` js -import { TestSuite } from "@vertx/unit" -let suite = TestSuite.create("the_test_suite"); -suite.test("my_test_case", (context) => { - let s = "value"; - context.assertEquals("value", s); -}); -suite.run(); -``` - -The `run` method will execute the suite and go through all the tests of -the suite. The suite can fail or pass, this does not matter if the outer -world is not aware of the test result. - -``` js -import { TestSuite } from "@vertx/unit" -let suite = TestSuite.create("the_test_suite"); -suite.test("my_test_case", (context) => { - let s = "value"; - context.assertEquals("value", s); -}); -suite.run(new TestOptions() - .setReporters([new ReportOptions() - .setTo("console")])); -``` - -When executed, the test suite now reports to the console the steps of -the test suite: - - Begin test suite the_test_suite - Begin test my_test - Passed my_test - End test suite the_test_suite , run: 1, Failures: 0, Errors: 0 - -The `reporters` option configures the reporters used by the suite runner -for reporting the execution of the tests, see the -[Reporting](#reporting) section for more info. - -# Writing a test suite - -A test suite is a named collection of test case, a test case is a -straight callback to execute. The suite can have lifecycle callbacks to -execute *before* and/or *after* the test cases or the test suite that -are used for initializing or disposing services used by the test suite. - -``` js -import { TestSuite } from "@vertx/unit" -let suite = TestSuite.create("the_test_suite"); -suite.test("my_test_case_1", (context) => { - // Test 1 -}); -suite.test("my_test_case_2", (context) => { - // Test 2 -}); -suite.test("my_test_case_3", (context) => { - // Test 3 -}); -``` - -The API is fluent and therefore the test cases can be chained: - -``` js -import { TestSuite } from "@vertx/unit" -let suite = TestSuite.create("the_test_suite"); -suite.test("my_test_case_1", (context) => { - // Test 1 -}).test("my_test_case_2", (context) => { - // Test 2 -}).test("my_test_case_3", (context) => { - // Test 3 -}); -``` - -The test cases declaration order is not guaranteed, so test cases should -not rely on the execution of another test case to run. Such practice is -considered as a bad one. - -Vertx Unit provides *before* and *after* callbacks for doing global -setup or cleanup: - -``` js -import { TestSuite } from "@vertx/unit" -let suite = TestSuite.create("the_test_suite"); -suite.before((context) => { - // Test suite setup -}).test("my_test_case_1", (context) => { - // Test 1 -}).test("my_test_case_2", (context) => { - // Test 2 -}).test("my_test_case_3", (context) => { - // Test 3 -}).after((context) => { - // Test suite cleanup -}); -``` - -The declaration order of the method does not matter, the example -declares the *before* callback before the test cases and *after* -callback after the test cases but it could be anywhere, as long as it is -done before running the test suite. - -The *before* callback is executed before any tests, when it fails, the -test suite execution will stop and the failure is reported. The *after* -callback is the last callback executed by the testsuite, unless the -*before* callback reporter a failure. - -Likewise, Vertx Unit provides the *beforeEach* and *afterEach* callback -that do the same but are executed for each test case: - -``` js -import { TestSuite } from "@vertx/unit" -let suite = TestSuite.create("the_test_suite"); -suite.beforeEach((context) => { - // Test case setup -}).test("my_test_case_1", (context) => { - // Test 1 -}).test("my_test_case_2", (context) => { - // Test 2 -}).test("my_test_case_3", (context) => { - // Test 3 -}).afterEach((context) => { - // Test case cleanup -}); -``` - -The *beforeEach* callback is executed before each test case, when it -fails, the test case is not executed and the failure is reported. The -*afterEach* callback is the executed just after the test case callback, -unless the *beforeEach* callback reported a failure. - -# Asserting - -Vertx Unit provides the `TestContext` object for doing assertions in -test cases. The *context* object provides the usual methods when dealing -with assertions. - -## assertEquals - -Assert two objects are equals, works for *basic* types or *json* types. - -``` js -suite.test("my_test_case", (context) => { - context.assertEquals(10, callbackCount); -}); -``` - -There is also an overloaded version for providing a message: - -``` js -suite.test("my_test_case", (context) => { - context.assertEquals(10, callbackCount, "Should have been 10 instead of " + callbackCount); -}); -``` - -Usually each assertion provides an overloaded version. - -## assertNotEquals - -The counter part of *assertEquals*. - -``` js -suite.test("my_test_case", (context) => { - context.assertNotEquals(10, callbackCount); -}); -``` - -## assertNull - -Assert an object is null, works for *basic* types or *json* types. - -``` js -suite.test("my_test_case", (context) => { - context.assertNull(null); -}); -``` - -## assertNotNull - -The counter part of *assertNull*. - -``` js -suite.test("my_test_case", (context) => { - context.assertNotNull("not null!"); -}); -``` - -## assertInRange - -The `assertInRange` targets real numbers. - - suite.test("my_test_case", (context) => { - - // Assert that 0.1 is equals to 0.2 +/- 0.5 - - context.assertInRange(0.1, 0.2, 0.5); - }); - -## assertTrue and assertFalse - -Asserts the value of a boolean expression. - -``` js -suite.test("my_test_case", (context) => { - context.assertTrue(var); - context.assertFalse(value > 10); -}); -``` - -## Failing - -Last but not least, *test* provides a *fail* method that will throw an -assertion error: - -``` js -suite.test("my_test_case", (context) => { - context.fail("That should never happen"); - // Following statements won't be executed -}); -``` - -The failure can either be a *string* as seen previously or an *error*. -The *error* object depends on the target language, for Java or Groovy it -can be any class extending *Throwable- , for JavaScript it is an -\_error*, for Ruby it is an *Exception*. - -## Using third-party assertion framework - -It is also possible to use any other assertion framework, like the -popular *hamcrest* and *assertj*. The recommended way to go is to use -`verify` and perform the assertions within the supplied *Handler*. This -way, asynchronous testing termination will be correctly handled. - -``` js -suite.test("my_test_case", (context) => { - context.verify((v) => { - // Using here Assert from junit, could be assertj, hamcrest or any other - // Even manually throwing an AssertionError. - Java.type("org.junit.Assert").assertNotNull("not null!"); - Java.type("org.junit.Assert").assertEquals(10, callbackCount); - }); -}); -``` - -# Asynchronous testing - -The previous examples supposed that test cases were terminated after -their respective callbacks, this is the default behavior of a test case -callback. Often it is desirable to terminate the test after the test -case callback, for instance: - -**The Async object asynchronously completes the test case.** - -``` js -suite.test("my_test_case", (context) => { - let async = context.async(); - eventBus.consumer("the-address", (msg) => { - - async.complete(); - }); - -}); -``` - - - The callback exits but the test case is not terminated - - - The event callback from the bus terminates the test - -Creating an `Async` object with the `async` method marks the executed -test case as non terminated. The test case terminates when the -`complete` method is invoked. - -> **Note** -> -> When the `complete` callback is not invoked, the test case fails after -> a certain timeout. - -Several `Async` objects can be created during the same test case, all of -them must be *completed* to terminate the test. - -**Several Async objects provide coordination.** - -``` js -suite.test("my_test_case", (context) => { - - let async1 = context.async(); - let client = vertx.createHttpClient(); - let req = client.get(8080, "localhost", "/"); - req.exceptionHandler((err) => { - context.fail(err.getMessage()); - }); - req.handler((resp) => { - context.assertEquals(200, resp.statusCode()); - async1.complete(); - }); - req.end(); - - let async2 = context.async(); - vertx.eventBus().consumer("the-address", (msg) => { - async2.complete(); - }); -}); -``` - -Async objects can also be used in *before* or *after* callbacks, it can -be very convenient in a *before* callback to implement a setup that -depends on one or several asynchronous results: - -**Async starts an http server before test cases.** - -``` js -suite.before((context) => { - let async = context.async(); - let server = vertx.createHttpServer(); - server.requestHandler(requestHandler); - server.listen(8080, (ar) => { - context.assertTrue(ar.succeeded()); - async.complete(); - }); -}); -``` - -It is possible to wait until the completion of a specific `Async`, -similar to Java’s count-down latch: - -**Wait for completion.** - -``` js -let async = context.async(); -let server = vertx.createHttpServer(); -server.requestHandler(requestHandler); -server.listen(8080, (ar) => { - context.assertTrue(ar.succeeded()); - async.complete(); -}); - -// Wait until completion -async.awaitSuccess(); - -// Do something else -``` - -> **Warning** -> -> this should not be executed from the event loop\! - -Async can also be created with an initial count value, it completes when -the count-down reaches zero using `countDown`: - -**Wait until the complete count-down reaches zero.** - -``` js -let async = context.async(2); -let server = vertx.createHttpServer(); -server.requestHandler(requestHandler); -server.listen(8080, (ar) => { - context.assertTrue(ar.succeeded()); - async.countDown(); -}); - -vertx.setTimer(1000, (id) => { - async.complete(); -}); - -// Wait until completion of the timer and the http request -async.awaitSuccess(); - -// Do something else -``` - -Calling `complete()` on an async completes the async as usual, it -actually sets the value to `0`. - -# Asynchronous assertions - -`TestContext` provides useful methods that provides powerful constructs -for async testing: - -The `asyncAssertSuccess` method returns an {@literal -Handler\\>} instance that acts like `Async`, resolving -the `Async` on success and failing the test on failure with the failure -cause. - -``` java -Async async = context.async(); -vertx.deployVerticle("my.verticle", ar -> { - if (ar.succeeded()) { - async.complete(); - } else { - context.fail(ar.cause()); - } -}); - -// Can be replaced by - -vertx.deployVerticle("my.verticle", context.asyncAssertSuccess()); -``` - -The `asyncAssertSuccess` method returns an {@literal -Handler\\>} instance that acts like `Async`, invoking -the delegating {@literal Handler\} on success and failing the test -on failure with the failure cause. - -``` java -AtomicBoolean started = new AtomicBoolean(); -Async async = context.async(); -vertx.deployVerticle(new AbstractVerticle() { - public void start() throws Exception { - started.set(true); - } -}, ar -> { - if (ar.succeeded()) { - context.assertTrue(started.get()); - async.complete(); - } else { - context.fail(ar.cause()); - } -}); - -// Can be replaced by - -vertx.deployVerticle("my.verticle", context.asyncAssertSuccess(id -> { - context.assertTrue(started.get()); -})); -``` - -The async is completed when the `Handler` exits, unless new asyncs were -created during the invocation, which can be handy to *chain* -asynchronous behaviors: - -``` java -Async async = context.async(); -vertx.deployVerticle("my.verticle", ar1 -> { - if (ar1.succeeded()) { - vertx.deployVerticle("my.otherverticle", ar2 -> { - if (ar2.succeeded()) { - async.complete(); - } else { - context.fail(ar2.cause()); - } - }); - } else { - context.fail(ar1.cause()); - } -}); - -// Can be replaced by - -vertx.deployVerticle("my.verticle", context.asyncAssertSuccess(id -> - vertx.deployVerticle("my_otherverticle", context.asyncAssertSuccess()) -)); -``` - -The `asyncAssertFailure` method returns an {@literal -Handler\\>} instance that acts like `Async`, resolving -the `Async` on failure and failing the test on success. - -``` java -Async async = context.async(); -vertx.deployVerticle("my.verticle", ar -> { - if (ar.succeeded()) { - context.fail(); - } else { - async.complete(); - } -}); - -// Can be replaced by - -vertx.deployVerticle("my.verticle", context.asyncAssertFailure()); -``` - -The `asyncAssertFailure` method returns an {@literal -Handler\\>} instance that acts like `Async`, invoking -the delegating {@literal Handler\} on failure and failing -the test on success. - -``` java -Async async = context.async(); -vertx.deployVerticle("my.verticle", ar -> { - if (ar.succeeded()) { - context.fail(); - } else { - context.assertTrue(ar.cause() instanceof IllegalArgumentException); - async.complete(); - } -}); - -// Can be replaced by - -vertx.deployVerticle("my.verticle", context.asyncAssertFailure(cause -> { - context.assertTrue(cause instanceof IllegalArgumentException); -})); -``` - -The async is completed when the `Handler` exits, unless new asyncs were -created during the invocation. - -# Repeating test - -When a test fails randomly or not often, for instance a race condition, -it is convenient to run the same test multiple times to increase the -failure likelihood of the test. - -**Repeating a test.** - -``` js -import { TestSuite } from "@vertx/unit" -TestSuite.create("my_suite").test("my_test", 1000, (context) => { - // This will be executed 1000 times -}); -``` - -When declared, *beforeEach* and *afterEach* callbacks will be executed -as many times as the test is executed. - -> **Note** -> -> test repetition are executed sequentially - -# Sharing objects - -The `TestContext` has `get`/`put`/`remove` operations for sharing state -between callbacks. - -Any object added during the *before* callback is available in any other -callbacks. Each test case will operate on a copy of the shared state, so -updates will only be visible for a test case. - -**Sharing state between callbacks.** - -``` js -import { TestSuite } from "@vertx/unit" -TestSuite.create("my_suite").before((context) => { - - // host is available for all test cases - context.put("host", "localhost"); - -}).beforeEach((context) => { - - // Generate a random port for each test - let port = helper.randomPort(); - - // Get host - let host = context.get("host"); - - // Setup server - let async = context.async(); - let server = vertx.createHttpServer(); - server.requestHandler((req) => { - req.response().setStatusCode(200).end(); - }); - server.listen(port, host, (ar) => { - context.assertTrue(ar.succeeded()); - context.put("port", port); - async.complete(); - }); - -}).test("my_test", (context) => { - - // Get the shared state - let port = context.get("port"); - let host = context.get("host"); - - // Do request - let client = vertx.createHttpClient(); - let req = client.get(port, host, "/resource"); - let async = context.async(); - req.handler((resp) => { - context.assertEquals(200, resp.statusCode()); - async.complete(); - }); - req.end(); -}); -``` - -> **Warning** -> -> sharing any object is only supported in Java, other languages can -> share only basic or json types. Other objects should be shared using -> the features of that language. - -# Running - -When a test suite is created, it won’t be executed until the `run` -method is called. - -**Running a test suite.** - -``` js -suite.run(); -``` - -The test suite can also be run with a specified `Vertx` instance: - -**Provides a Vertx instance to run the test suite.** - -``` js -suite.run(vertx); -``` - -When running with a `Vertx` instance, the test suite is executed using -the Vertx event loop, see the [Event loop](#event_loop) section for more -details. - -A test suite can be run with the Vert.x Command Line Interface with the -`vertx test` command: - -**Running a test suite with the Vert.x CLI.** - - > vertx test the_test_suite.js - Begin test suite the_test_suite - Succeeded in deploying verticle - Begin test my_test_case - Passed my_test_case - End test suite my_suite , run: 1, Failures: 0, Errors: 0 - -Such test suite just need to be executed via the `run` command, the -`vertx test` command takes care of configuring reporting, timeout, -etc…​, pretty much like in this example: - -``` js -import { TestSuite } from "@vertx/unit" -let suite = TestSuite.create("the_test_suite"); -suite.test("my_test_case", (context) => { - let s = "value"; - context.assertEquals("value", s); -}); -suite.run(); -``` - -The `vertx test` command extends the `vertx run` command. The exit -behavior of the JVM is changed the JVM exits when the test suite is -executed and a return value is provided indicating the tests success (0) -or failure (1). - -> **Note** -> -> several test suites can executed in the same verticle, Vert.x Unit -> waits until completion of all suite executed. - -## Test suite completion - -No assumptions can be made about when the test suite will be completed, -and if some code needs to be executed after the test suite, it should -either be in the test suite *after* callback or as callback of the -`Completion`: - -**Test suite execution callback.** - -``` js -let completion = suite.run(vertx); - -// Simple completion callback -completion.handler((ar) => { - if (ar.succeeded()) { - console.log("Test suite passed!"); - } else { - console.log("Test suite failed:"); - ar.cause().printStackTrace(); - } -}); -``` - -The `Completion` object provides also a `resolve` method that takes a -`Promise` object, this `Promise` will be notified of the test suite -execution: - -**Resolving the start Promise with the test suite.** - -``` js -let completion = suite.run(); - -// When the suite completes, the promise is resolved -completion.resolve(startPromise); -``` - -This allow to easily create a *test* verticle whose deployment is the -test suite execution, allowing the code that deploys it to be easily -aware of the success or failure. - -The completion object can also be used like a latch to block until the -test suite completes. This should be used when the thread running the -test suite is not the same than the current thread: - -**Blocking until the test suite completes.** - -``` js -let completion = suite.run(); - -// Wait until the test suite completes -completion.await(); -``` - -The `await` throws an exception when the thread is interrupted or a -timeout is fired. - -The `awaitSuccess` is a variation that throws an exception when the test -suite fails. - -**Blocking until the test suite succeeds.** - -``` js -let completion = suite.run(); - -// Wait until the test suite succeeds otherwise throw an exception -completion.awaitSuccess(); -``` - -## Time out - -Each test case of a test suite must execute before a certain timeout is -reached. The default timeout is of *2 minutes*, it can be changed using -*test options*: - -**Setting the test suite timeout.** - -``` js -let options = new TestOptions() - .setTimeout(10000); - -// Run with a 10 seconds time out -suite.run(options); -``` - -## Event loop - -Vertx Unit execution is a list of tasks to execute, the execution of -each task is driven by the completion of the previous task. These tasks -should leverage Vert.x event loop when possible but that depends on the -current execution context (i.e the test suite is executed in a `main` or -embedded in a `Verticle`) and wether or not a `Vertx` instance is -configured. - -The `setUseEventLoop` configures the usage of the event loop: - -| | useEventLoop:null | useEventLoop:true | useEventLoop:false | -| ---------------- | ---------------------- | ---------------------- | ------------------- | -| `Vertx` instance | use vertx event loop | use vertx event loop | force no event loop | -| in a `Verticle` | use current event loop | use current event loop | force no event loop | -| in a *main* | use no event loop | raise an error | use no event loop | - -Event loop usage - -The default `useEventLoop` value is `null`, that means that it will uses -an event loop when possible and fallback to no event loop when no one is -available. - -# Reporting - -Reporting is an important piece of a test suite, Vertx Unit can be -configured to run with different kind of reporters. - -By default no reporter is configured, when running a test suite, *test -options* can be provided to configure one or several: - -**Using the console reporter and as a junit xml file.** - -``` js -// Report to console -let consoleReport = new ReportOptions() - .setTo("console"); - -// Report junit files to the current directory -let junitReport = new ReportOptions() - .setTo("file:.") - .setFormat("junit"); - -suite.run(new TestOptions() - .setReporters([consoleReport, junitReport])); -``` - -## Console reporting - -Reports to the JVM `System.out` and `System.err`: - - - to - *console* - - - format - *simple* or *junit* - -## File reporting - -Reports to a file, a `Vertx` instance must be provided: - - - to - *file* `:` *dir name* - - - format - *simple* or *junit* - - - example - `file:.` - -The file reporter will create files in the configured directory, the -files will be named after the test suite name executed and the format -(i.e *simple* creates *txt* files and *junit* creates *xml* files). - -## Log reporting - -Reports to a logger, a `Vertx` instance must be provided: - - - to - *log* `:` *logger name* - - - example - `log:mylogger` - -## Event bus reporting - -Reports events to the event bus, a `Vertx` instance must be provided: - - - to - *bus* `:` *event bus address* - - - example - `bus:the-address` - -It allow to decouple the execution of the test suite from the reporting. - -The messages sent over the event bus can be collected by the -`EventBusCollector` and achieve custom reporting: - -``` js -import { EventBusCollector } from "@vertx/unit" -let collector = EventBusCollector.create(vertx, new ReportingOptions() - .setReporters([new ReportOptions() - .setTo("file:report.xml") - .setFormat("junit")])); - -collector.register("the-address"); -``` - -# Vertx integration - -By default, assertions and failures must be done on the `TestContext` -and throwing an assertion error works only when called by Vert.x Unit: - -``` js -suite.test("my_test_case", (ctx) => { - - // The failure will be reported by Vert.x Unit - throw "it failed!"; -}); -``` - -In a regular Vert.x callback, the failure will be ignored: - -``` js -suite.test("test-server", (testContext) => { - let server = vertx.createHttpServer().requestHandler((req) => { - if (req.path() == "/somepath") { - throw "Wrong path!"; - } - req.response().end(); - }); -}); -``` - -Since Vert.x 3.3, a global exception handler can be set to report the -event loop uncaught exceptions: - -``` js -suite.before((testContext) => { - - // Report uncaught exceptions as Vert.x Unit failures - vertx.exceptionHandler(testContext.exceptionHandler()); -}); - -suite.test("test-server", (testContext) => { - let server = vertx.createHttpServer().requestHandler((req) => { - if (req.path() == "/somepath") { - throw "Wrong path!"; - } - req.response().end(); - }); -}); -``` - -The exception handler is set during the *before* phase, the -`TestContext` is shared between each *before*, *test* and *after* phase. -So the exception handler obtained during the *before* phase is correct. - -# Junit integration - -Although Vertx Unit is polyglot and not based on JUnit, it is possible -to run a Vertx Unit test suite or a test case from JUnit, allowing you -to integrate your tests with JUnit and your build system or IDE. - -**Run a Java class as a JUnit test suite.** - -``` java -@RunWith(VertxUnitRunner.class) -public class JUnitTestSuite { - @Test - public void testSomething(TestContext context) { - context.assertFalse(false); - } -} -``` - -The `VertxUnitRunner` uses the junit annotations for introspecting the -class and create a test suite after the class. The methods should -declare a `TestContext` argument, if they don’t it is fine too. However -the `TestContext` is the only way to retrieve the associated Vertx -instance of perform asynchronous tests. - -The JUnit integration is also available for the Groovy language with the -`io.vertx.groovy.ext.unit.junit.VertxUnitRunner` runner. - -## Running a test on a Vert.x context - -By default the thread invoking the test methods is the JUnit thread. The -`RunTestOnContext` JUnit rule can be used to alter this behavior for -running these test methods with a Vert.x event loop thread. - -Thus there must be some care when state is shared between test methods -and Vert.x handlers as they won’t be on the same thread, e.g -incrementing a counter in a Vert.x handler and asserting the counter in -the test method. One way to solve this is to use proper synchronization, -another is to execute test methods on a Vert.x context that will be -propagated to the created handlers. - -For this purpose the `RunTestOnContext` rule needs a `Vertx` instance. -Such instance can be provided, otherwise the rule will manage an -instance under the hood. Such instance can be retrieved when the test is -running, making this rule a way to manage a `Vertx` instance as well. - -**Run a Java class as a JUnit test suite.** - -``` java -@RunWith(VertxUnitRunner.class) -public class RunOnContextJUnitTestSuite { - - @Rule - public RunTestOnContext rule = new RunTestOnContext(); - - @Test - public void testSomething(TestContext context) { - // Use the underlying vertx instance - Vertx vertx = rule.vertx(); - } -} -``` - -The rule can be annotated by {@literal @Rule} or {@literal @ClassRule}, -the former manages a Vert.x instance per test, the later a single Vert.x -for the test methods of the class. - -> **Warning** -> -> keep in mind that you cannot block the event loop when using this -> rule. Usage of classes like `CountDownLatch` or similar classes must -> be done with care. - -## Timeout - -The Vert.x Unit 2 minutes timeout can be overriden with the `timeout` -member of the `@Test` annotation: - -**Configure the timeout at the test level.** - -``` java -public class JunitTestWithTimeout { - - @Test(timeout = 1000l) - public void testSomething(TestContext context) { - //... - } - -} -``` - -For a more global configuration, the `Timeout` rule can be used: - -**Configure the timeout at the class level.** - -``` java -@RunWith(VertxUnitRunner.class) -public class TimeoutTestSuite { - - @Rule - public Timeout rule = Timeout.seconds(1); - - @Test - public void testSomething(TestContext context) { - //... - } -} -``` - -> **Note** -> -> the `@Test` timeout overrides the the `Timeout` rule. - -## Parameterized tests - -JUnit provides useful `Parameterized` tests, Vert.x Unit tests can be -ran with this particular runner thanks to the -`VertxUnitRunnerWithParametersFactory`: - -**Running a Vert.x Unit parameterized test.** - -``` java -@RunWith(Parameterized.class) -@Parameterized.UseParametersRunnerFactory(VertxUnitRunnerWithParametersFactory.class) -public class SimpleParameterizedTest { - - @Parameterized.Parameters - public static Iterable data() { - return Arrays.asList(0, 1, 2); - } - - public SimpleParameterizedTest(int value) { - //... - } - - @Test - public void testSomething(TestContext context) { - // Execute test with the current value - } -} -``` - -Parameterized tests can also be done in Groovy with the -`io.vertx.groovy.ext.unit.junit.VertxUnitRunnerWithParametersFactory`. - -## Repeating a test - -When a test fails randomly or not often, for instance a race condition, -it is convenient to run the same test multiple times to increase the -likelihood failure of the test. - -With JUnit a test has to be annotated with `@Repeat` to be repeated. The -test must also define the `RepeatRule` among its rules. - -**Repeating a test with JUnit.** - -``` js -@RunWith(VertxUnitRunner.class) -public class RepeatingTest { - - @Rule - public RepeatRule rule = new RepeatRule(); - - @Repeat(1000) - @Test - public void testSomething(TestContext context) { - // This will be executed 1000 times - } -} -``` - -When declared, *before* and *after* life cycle will be executed as many -times as the test is executed. - -> **Note** -> -> test repetition are executed sequentially - -## Using with other assertion libraries - -Vert.x Unit usability has been greatly improved in Vert.x 3.3. You can -now write tests using [Hamcrest](http://hamcrest.org/), -[AssertJ](http://joel-costigliola.github.io/assertj/), [Rest -Assured](https://github.com/rest-assured/rest-assured/), or any -assertion library you want. This is made possible by the global -exception handler described in [Vertx integration](#vertx_integration). - -You can find Java examples of using Vert.x Unit with Hamcrest and -AssertJ in the -[vertx-examples](https://github.com/vert-x3/vertx-examples/tree/master/unit-examples) -project. - -# Java language integration - -## Test suite integration - -The Java language provides classes and it is possible to create test -suites directly from Java classes with the following mapping rules: - -The `testSuiteObject` argument methods are inspected and the public, non -static methods with `TestContext` parameter are retained and mapped to a -Vertx Unit test suite via the method name: - - - `before` : before callback - - - `after` : after callback - - - `beforeEach` : beforeEach callback - - - `afterEach` : afterEach callback - - - when the name starts with *test* : test case callback named after - the method name - -**Test suite written using a Java class.** - -``` java -public class MyTestSuite { - - public void testSomething(TestContext context) { - context.assertFalse(false); - } -} -``` - -This class can be turned into a Vertx test suite easily: - -**Create a test suite from a Java object.** - -``` java -TestSuite suite = TestSuite.create(new MyTestSuite()); -``` diff --git a/docs/manual/@vertx/vertx-mqtt/dataobjects.md b/docs/manual/@vertx/vertx-mqtt/dataobjects.md deleted file mode 100644 index dead3f21b..000000000 --- a/docs/manual/@vertx/vertx-mqtt/dataobjects.md +++ /dev/null @@ -1,131 +0,0 @@ -# MqttAuth - -MQTT authentication information - -| | | | -| ----------- | -------- | ----------- | -| Name | Type | Description | -| `@password` | `String` | | -| `@username` | `String` | | - -# MqttClientOptions - -Represents options used by the MQTT client. - -| | | | -| ---------------------------------- | ---------------------- | ----------------------------------------------------------------------------- | -| Name | Type | Description | -| `@autoGeneratedClientId` | `Boolean` | Set if the MQTT client must generate clientId automatically (default is true) | -| `@autoKeepAlive` | `Boolean` | Set if the MQTT client must handle PINGREQ automatically (default is true) | -| `@cleanSession` | `Boolean` | Set to start with a clean session (or not) | -| `@clientId` | `String` | Set the client identifier | -| `@connectTimeout` | `Number (int)` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@hostnameVerificationAlgorithm` | `String` | \- | -| `@idleTimeout` | `Number (int)` | Do the same thing as link. Use it instead. | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keepAliveTimeSeconds` | `Number (int)` | Set the keep alive timeout in seconds | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@localAddress` | `String` | \- | -| `@logActivity` | `Boolean` | \- | -| `@maxInflightQueue` | `Number (int)` | Set max count of unacknowledged messages | -| `@maxMessageSize` | `Number (int)` | Set max MQTT message size | -| `@metricsName` | `String` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@password` | `String` | Set the password | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@proxyOptions` | `ProxyOptions` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reconnectAttempts` | `Number (int)` | \- | -| `@reconnectInterval` | `Number (long)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@trafficClass` | `Number (int)` | \- | -| `@trustAll` | `Boolean` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | -| `@username` | `String` | Set the username | -| `@willFlag` | `Boolean` | Set if will information are provided on connection | -| `@willMessage` | `String` | Set the content of the will message | -| `@willQoS` | `Number (int)` | Set the QoS level for the will message | -| `@willRetain` | `Boolean` | Set if the will message must be retained | -| `@willTopic` | `String` | Set the topic on which the will message will be published | - -# MqttServerOptions - -Represents options used by the MQTT server - -| | | | -| ---------------------------------- | ---------------------- | --------------------------------------------------------------- | -| Name | Type | Description | -| `@acceptBacklog` | `Number (int)` | \- | -| `@autoClientId` | `Boolean` | Set if clientid should be auto-generated when it's "zero-bytes" | -| `@clientAuth` | `ClientAuth` | \- | -| `@clientAuthRequired` | `Boolean` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@host` | `String` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@logActivity` | `Boolean` | \- | -| `@maxMessageSize` | `Number (int)` | Set max MQTT message size | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@port` | `Number (int)` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@sni` | `Boolean` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@timeoutOnConnect` | `Number (int)` | Set the timeout on CONNECT packet | -| `@trafficClass` | `Number (int)` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | - -# MqttWill - -Will information from the remote MQTT client - -| | | | -| -------------- | -------------- | ----------- | -| Name | Type | Description | -| `@willFlag` | `Boolean` | | -| `@willMessage` | `String` | | -| `@willQos` | `Number (int)` | | -| `@willRetain` | `Boolean` | | -| `@willTopic` | `String` | | diff --git a/docs/manual/@vertx/vertx-mqtt/index.md b/docs/manual/@vertx/vertx-mqtt/index.md deleted file mode 100644 index 54a7b57e3..000000000 --- a/docs/manual/@vertx/vertx-mqtt/index.md +++ /dev/null @@ -1,532 +0,0 @@ -# Using Vert.x MQTT - -This component had officially released in the Vert.x stack, just -following dependency to the *dependencies* section of your build -descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-mqtt - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -compile io.vertx:vertx-mqtt:${maven.version} -``` - -# Vert.x MQTT server - -This component provides a server which is able to handle connections, -communication and messages exchange with remote [MQTT](http://mqtt.org/) -clients. Its API provides a bunch of events related to raw protocol -messages received by clients and exposes some features in order to send -messages to them. - -It’s not a fully featured MQTT broker but can be used for building -something like that or for protocol translation. - -> **Warning** -> -> this module has the tech preview status, this means the API can change -> between versions. - -## Getting Started - -### Handling client connection/disconnection - -This example shows how it’s possible to handle the connection request -from a remote MQTT client. First, an `MqttServer` instance is created -and the `endpointHandler` method is used to specify the handler called -when a remote client sends a CONNECT message for connecting to the -server itself. The `MqttEndpoint` instance, provided as parameter to the -handler, brings all main information related to the CONNECT message like -client identifier, username/password, "will" information, clean session -flag, protocol version and the "keep alive" timeout. Inside that -handler, the *endpoint* instance provides the `accept` method for -replying to the remote client with the corresponding CONNACK message : -in this way, the connection is established. Finally, the server is -started using the `listen` method with the default behavior (on -localhost and default MQTT port 1883). The same method allows to specify -an handler in order to check if the server is started properly or not. - -``` js -import { MqttServer } from "@vertx/mqtt" - -let mqttServer = MqttServer.create(vertx); -mqttServer.endpointHandler((endpoint) => { - - // shows main connect info - console.log("MQTT client [" + endpoint.clientIdentifier() + "] request to connect, clean session = " + endpoint.isCleanSession()); - - if ((endpoint.auth() !== null && endpoint.auth() !== undefined)) { - console.log("[username = " + endpoint.auth().username + ", password = " + endpoint.auth().password + "]"); - } - if ((endpoint.will() !== null && endpoint.will() !== undefined)) { - console.log("[will topic = " + endpoint.will().willTopic + " msg = " + new (Java.type("java.lang.String"))(endpoint.will().willMessageBytes) + " QoS = " + endpoint.will().willQos + " isRetain = " + endpoint.will().illRetain + "]"); - } - - console.log("[keep alive timeout = " + endpoint.keepAliveTimeSeconds() + "]"); - - // accept connection from the remote client - endpoint.accept(false); - -}).listen((ar) => { - - if (ar.succeeded()) { - - console.log("MQTT server is listening on port " + ar.result().actualPort()); - } else { - - console.log("Error on starting the server"); - ar.cause().printStackTrace(); - } -}); -``` - -The same *endpoint* instance provides the `disconnectHandler` for -specifying the handler called when the remote client sends a DISCONNECT -message in order to disconnect from the server; this handler takes no -parameters. - -``` js -// handling disconnect message -endpoint.disconnectHandler((v) => { - - console.log("Received disconnect from client"); -}); -``` - -### Handling client connection/disconnection with SSL/TLS support - -The server has the support for accepting connection requests through the -SSL/TLS protocol for authentication and encryption. In order to do that, -the `MqttServerOptions` class provides the `setSsl` method for setting -the usage of SSL/TLS (passing 'true' as value) and some other useful -methods for providing server certificate and related private key (as -Java key store reference, PEM or PFX format). In the following example, -the `setKeyCertOptions` method is used in order to pass the certificates -in PEM format. This method requires an instance of the possible -implementations of the `KeyCertOptions` interface and in this case the -`PemKeyCertOptions` class is used in order to provide the path for the -server certificate and the private key with the correspondent -`setCertPath` and `setKeyPath` methods. The MQTT server is started -passing the Vert.x instance as usual and the above MQTT options instance -to the creation method. - -``` js -import { MqttServer } from "@vertx/mqtt" - -let options = new MqttServerOptions() - .setPort(8883) - .setKeyCertOptions(new PemKeyCertOptions() - .setKeyPath("./src/test/resources/tls/server-key.pem") - .setCertPath("./src/test/resources/tls/server-cert.pem")) - .setSsl(true); - -let mqttServer = MqttServer.create(vertx, options); -mqttServer.endpointHandler((endpoint) => { - - // shows main connect info - console.log("MQTT client [" + endpoint.clientIdentifier() + "] request to connect, clean session = " + endpoint.isCleanSession()); - - if ((endpoint.auth() !== null && endpoint.auth() !== undefined)) { - console.log("[username = " + endpoint.auth().username + ", password = " + endpoint.auth().password + "]"); - } - if ((endpoint.will() !== null && endpoint.will() !== undefined)) { - console.log("[will topic = " + endpoint.will().willTopic + " msg = " + new (Java.type("java.lang.String"))(endpoint.will().willMessageBytes) + " QoS = " + endpoint.will().willQos + " isRetain = " + endpoint.will().illRetain + "]"); - } - - console.log("[keep alive timeout = " + endpoint.keepAliveTimeSeconds() + "]"); - - // accept connection from the remote client - endpoint.accept(false); - -}).listen((ar) => { - - if (ar.succeeded()) { - - console.log("MQTT server is listening on port " + ar.result().actualPort()); - } else { - - console.log("Error on starting the server"); - ar.cause().printStackTrace(); - } -}); -``` - -All the other stuff related to handle endpoint connection and related -disconnection is managed in the same way without SSL/TLS support. - -### Handling client subscription/unsubscription request - -After a connection is established between client and server, the client -can send a subscription request for a topic using the SUBSCRIBE message. -The `MqttEndpoint` interface allows to specify an handler for the -incoming subscription request using the `subscribeHandler` method. Such -handler receives an instance of the `MqttSubscribeMessage` interface -which brings the list of topics with related QoS levels as desired by -the client. Finally, the endpoint instance provides the -`subscribeAcknowledge` method for replying to the client with the -related SUBACK message containing the granted QoS levels. - -``` js -// handling requests for subscriptions -endpoint.subscribeHandler((subscribe) => { - - let grantedQosLevels = []; - subscribe.topicSubscriptions().forEach(s => { - console.log("Subscription for " + s.topicName() + " with QoS " + s.qualityOfService()); - grantedQosLevels.push(s.qualityOfService()); - }); - // ack the subscriptions request - endpoint.subscribeAcknowledge(subscribe.messageId(), grantedQosLevels); - -}); -``` - -In the same way, it’s possible to use the `unsubscribeHandler` method on -the endpoint in order to specify the handler called when the client -sends an UNSUBSCRIBE message. This handler receives an instance of the -`MqttUnsubscribeMessage` interface as parameter with the list of topics -to unsubscribe. Finally, the endpoint instance provides the -`unsubscribeAcknowledge` method for replying to the client with the -related UNSUBACK message. - -``` js -// handling requests for unsubscriptions -endpoint.unsubscribeHandler((unsubscribe) => { - - unsubscribe.topics().forEach(t => { - console.log("Unsubscription for " + t); - }); - // ack the subscriptions request - endpoint.unsubscribeAcknowledge(unsubscribe.messageId()); -}); -``` - -### Handling client published message - -In order to handle incoming messages published by the remote client, the -`MqttEndpoint` interface provides the `publishHandler` method for -specifying the handler called when the client sends a PUBLISH message. -This handler receives an instance of the `MqttPublishMessage` interface -as parameter with the payload, the QoS level, the duplicate and retain -flags. - -If the QoS level is 0 (AT\_MOST\_ONCE), there is no need from the -endpoint to reply the client. - -If the QoS level is 1 (AT\_LEAST\_ONCE), the endpoind needs to reply -with a PUBACK message using the available `publishAcknowledge` method. - -If the QoS level is 2 (EXACTLY\_ONCE), the endpoint needs to reply with -a PUBREC message using the available `publishReceived` method; in this -case the same endpoint should handle the PUBREL message received from -the client as well (the remote client sends it after receiving the -PUBREC from the endpoint) and it can do that specifying the handler -through the `publishReleaseHandler` method. In order to close the QoS -level 2 delivery, the endpoint can use the `publishComplete` method for -sending the PUBCOMP message to the client. - -``` js -// handling incoming published messages -endpoint.publishHandler((message) => { - - console.log("Just received message [" + message.payload().toString(Java.type("java.nio.charset.Charset").defaultCharset()) + "] with QoS [" + message.qosLevel() + "]"); - - if (message.qosLevel() === MqttQoS.AT_LEAST_ONCE) { - endpoint.publishAcknowledge(message.messageId()); - } else if (message.qosLevel() === MqttQoS.EXACTLY_ONCE) { - endpoint.publishReceived(message.messageId()); - } - -}).publishReleaseHandler((messageId) => { - - endpoint.publishComplete(messageId); -}); -``` - -### Publish message to the client - -The endpoint can publish a message to the remote client (sending a -PUBLISH message) using the `publish` method which takes the following -input parameters : the topic to publish, the payload, the QoS level, the -duplicate and retain flags. - -If the QoS level is 0 (AT\_MOST\_ONCE), the endpoint won’t receiving any -feedback from the client. - -If the QoS level is 1 (AT\_LEAST\_ONCE), the endpoint needs to handle -the PUBACK message received from the client in order to receive final -acknowledge of delivery. It’s possible using the -`publishAcknowledgeHandler` method specifying such an handler. - -If the QoS level is 2 (EXACTLY\_ONCE), the endpoint needs to handle the -PUBREC message received from the client. The `publishReceivedHandler` -method allows to specify the handler for that. Inside that handler, the -endpoint can use the `publishRelease` method for replying to the client -with the PUBREL message. The last step is to handle the PUBCOMP message -received from the client as final acknowledge for the published message; -it’s possible using the `publishCompletionHandler` for specifying the -handler called when the final PUBCOMP message is received. - -``` js -import { Buffer } from "@vertx/core" - -// just as example, publish a message with QoS level 2 -endpoint.publish("my_topic", Buffer.buffer("Hello from the Vert.x MQTT server"), MqttQoS.EXACTLY_ONCE, false, false); - -// specifing handlers for handling QoS 1 and 2 -endpoint.publishAcknowledgeHandler((messageId) => { - - console.log("Received ack for message = " + messageId); - -}).publishReceivedHandler((messageId) => { - - endpoint.publishRelease(messageId); - -}).publishCompletionHandler((messageId) => { - - console.log("Received ack for message = " + messageId); -}); -``` - -### Be notified by client keep alive - -The underlying MQTT keep alive mechanism is handled by the server -internally. When the CONNECT message is received, the server takes care -of the keep alive timeout specified inside that message in order to -check if the client doesn’t send messages in such timeout. At same time, -for every PINGREQ received, the server replies with the related -PINGRESP. - -Even if there is no need for the high level application to handle that, -the `MqttEndpoint` interface provides the `pingHandler` method for -specifying an handler called when a PINGREQ message is received from the -client. It’s just a notification to the application that the client -isn’t sending meaningful messages but only pings for keeping alive; in -any case the PINGRESP is automatically sent by the server internally as -described above. - -``` js -// handling ping from client -endpoint.pingHandler((v) => { - - console.log("Ping received from client"); -}); -``` - -### Closing the server - -The `MqttServer` interface provides the `close` method that can be used -for closing the server; it stops to listen for incoming connections and -closes all the active connections with remote clients. This method is -asynchronous and one overload provides the possibility to specify a -complention handler that will be called when the server is really -closed. - -``` js -mqttServer.close((v) => { - - console.log("MQTT server closed"); -}); -``` - -### Automatic clean-up in verticles - -If you’re creating MQTT servers from inside verticles, those servers -will be automatically closed when the verticle is undeployed. - -### Scaling : sharing MQTT servers - -The handlers related to the MQTT server are always executed in the same -event loop thread. It means that on a system with more cores, only one -instance is deployed so only one core is used. In order to use more -cores, it’s possible to deploy more instances of the MQTT server. - -It’s possible to do that programmatically: - -``` js -import { MqttServer } from "@vertx/mqtt" - -for (let i = 0;i < 10;i++) { - - let mqttServer = MqttServer.create(vertx); - mqttServer.endpointHandler((endpoint) => { - // handling endpoint - }).listen((ar) => { - - // handling start listening - }); - -} -``` - -or using a verticle specifying the number of instances: - -``` js -let options = new DeploymentOptions() - .setInstances(10); -vertx.deployVerticle("com.mycompany.MyVerticle", options); -``` - -What’s really happen is that even only MQTT server is deployed but as -incoming connections arrive, Vert.x distributes them in a round-robin -fashion to any of the connect handlers executed on different cores. - -# Vert.x MQTT client - -This component provides an [MQTT](http://mqtt.org/) client which is -compliant with the 3.1.1 spec. Its API provides a bunch of methods for -connecting/disconnecting to a broker, publishing messages (with all -three different levels of QoS) and subscribing to topics. - -> **Warning** -> -> this module has the tech preview status, this means the API can change -> between versions. - -## Getting started - -### Connect/Disconnect - -The client gives you opportunity to connect to a server and disconnect -from it. Also, you could specify things like the host and port of a -server you would like to connect to passing instance of -`MqttClientOptions` as a param through constructor. - -This example shows how you could connect to a server and disconnect from -it using Vert.x MQTT client and calling `connect` and `disconnect` -methods. - -``` js -import { MqttClient } from "@vertx/mqtt" -let client = MqttClient.create(vertx); - -client.connect(1883, "mqtt.eclipse.org", (s) => { - client.disconnect(); -}); -``` - -> **Note** -> -> default address of server provided by `MqttClientOptions` is -> localhost:1883 and localhost:8883 if you are using SSL/TSL. - -### Subscribe to a topic - -Now, lest go deeper and take look at this example: - -``` js -client.publishHandler((s) => { - console.log("There are new message in topic: " + s.topicName()); - console.log("Content(as string) of the message: " + s.payload().toString()); - console.log("QoS: " + s.qosLevel()); -}).subscribe("rpi2/temp", 2); -``` - -Here we have the example of usage of `subscribe` method. In order to -receive messages from rpi2/temp topic we call `subscribe` method. -Although, to handle received messages from server you need to provide a -handler, which will be called each time you have a new messages in the -topics you subscribe on. As this example shows, handler could be -provided via `publishHandler` method. - -### Publishing message to a topic - -If you would like to publish some message into topic then `publish` -should be called. Let’s take a look at the example: - -``` js -import { Buffer } from "@vertx/core" -client.publish("temperature", Buffer.buffer("hello"), MqttQoS.AT_LEAST_ONCE, false, false); -``` - -In the example we send message to topic with name "temperature". - -### Keep connection with server alive - -In order to keep connection with server you should time to time send -something to server otherwise server will close the connection. The -right way to keep connection alive is a `ping` method. - -> **Important** -> -> by default you client keep connections with server automatically. That -> means that you don’t need to call `ping` in order to keep connections -> with server. The `MqttClient` will do it for you. - -If you want to disable this feature then you should call -`setAutoKeepAlive` with `false` as argument: - -``` js -options.autoKeepAlive = false; -``` - -### Be notified when - - - publish is completed - - You could provide handler by calling `publishCompletionHandler`. The - handler will be called each time publish is completed. This one is - pretty useful because you could see the packetId of just received - PUBACK or PUBCOMP packet. - - - - import { Buffer } from "@vertx/core" - client.publishCompletionHandler((id) => { - console.log("Id of just received PUBACK or PUBCOMP packet is " + id); - }).publish("hello", Buffer.buffer("hello"), MqttQoS.EXACTLY_ONCE, false, false).publish("hello", Buffer.buffer("hello"), MqttQoS.AT_LEAST_ONCE, false, false).publish("hello", Buffer.buffer("hello"), MqttQoS.AT_LEAST_ONCE, false, false); - -> **Warning** -> -> The handler WILL NOT BE CALLED if sent publish packet with QoS=0. - - - subscribe completed - - ``` js - client.subscribeCompletionHandler((mqttSubAckMessage) => { - console.log("Id of just received SUBACK packet is " + mqttSubAckMessage.messageId()); - mqttSubAckMessage.grantedQoSLevels().forEach(s => { - if (s === 128) { - console.log("Failure"); - } else { - console.log("Success. Maximum QoS is " + s); - } - }); - }).subscribe("temp", 1).subscribe("temp2", 2); - ``` - - - unsubscribe completed - - ``` js - client.unsubscribeCompletionHandler((id) => { - console.log("Id of just received UNSUBACK packet is " + id); - }).subscribe("temp", 1).unsubscribe("temp"); - ``` - - - unsubscribe sent - - ``` js - Code not translatable - ``` - - - PINGRESP received - - ``` js - client.pingResponseHandler((s) => { - //The handler will be called time to time by default - console.log("We have just received PINGRESP packet"); - }); - ``` diff --git a/docs/manual/@vertx/web-api-contract/dataobjects.md b/docs/manual/@vertx/web-api-contract/dataobjects.md deleted file mode 100644 index c6e2014c7..000000000 --- a/docs/manual/@vertx/web-api-contract/dataobjects.md +++ /dev/null @@ -1,28 +0,0 @@ -# OperationRequest - -| | | | -| --------- | ------------- | ------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@extra` | `Json object` | Get extra payload | -| `@params` | `Json object` | Get request parsedParameters as JSON | -| `@user` | `Json object` | Get request principal user as routingContext.user().principal(), null if no user is authenticated | - -# OperationResponse - -| | | | -| ---------------- | ------------------ | ----------- | -| Name | Type | Description | -| `@payload` | `Buffer` | \- | -| `@statusCode` | `Number (Integer)` | \- | -| `@statusMessage` | `String` | \- | - -# RouterFactoryOptions - -| | | | -| ---------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@mountNotImplementedHandler` | `Boolean` | If true, Router Factory will automatically mount an handler that return HTTP 501 status code for each operation where you didn't specify an handler. You can customize the response with link | -| `@mountResponseContentTypeHandler` | `Boolean` | If true, when required, the factory will mount a link | -| `@mountValidationFailureHandler` | `Boolean` | Enable or disable validation failure handler. If you enable it during router creation a failure handler that manages ValidationException will be mounted. You can change the validation failure handler with with function link. If failure is different from ValidationException, next failure handler will be called. | -| `@operationModelKey` | `String` | When set, an additional handler will be created to expose the operation model in the routing context under the given key. When the key is null, the handler is not added. | -| `@requireSecurityHandlers` | `Boolean` | If true, when you call link the factory will mount for every path the required security handlers and, if a security handler is not defined, it throws an link | diff --git a/docs/manual/@vertx/web-api-contract/enums.md b/docs/manual/@vertx/web-api-contract/enums.md deleted file mode 100644 index 48c0a4168..000000000 --- a/docs/manual/@vertx/web-api-contract/enums.md +++ /dev/null @@ -1,56 +0,0 @@ -# ContainerSerializationStyle - -This enum contains supported object and arrays serialization styles. -Every style has a enum value, and an array of strings to refeer to it. - -| | | -| ------------------------ | ------------------------------------------------------------------------------------------------- | -| Name | Description | -| `csv` | Comma separated values: "value1,value2,value3" aliases: "csv", "commaDelimited", "form", "simple" | -| `ssv` | Space separated values: "value1 value2 value3" aliases: "ssv", "spaceDelimited" | -| `psv` | \+ Pipe separated values: "value1 | -| value2 | value3" aliases: "psv", "pipeDelimited" + | -| `dsv` | Dot delimited values: "value1.value2.value3" aliases: "dsv", "dotDelimited", "label" | -| `simple_exploded_object` | For internal usage, don't use it | -| `matrix_exploded_array` | For internal usage, don't use it | - -# ParameterLocation - -ParameterLocation describe the location of parameter inside HTTP Request - -| | | -| ----------- | ----------- | -| Name | Description | -| `HEADER` | \- | -| `QUERY` | \- | -| `PATH` | \- | -| `FILE` | \- | -| `BODY_FORM` | \- | -| `BODY` | \- | -| `BODY_JSON` | \- | -| `BODY_XML` | \- | -| `COOKIE` | \- | - -# ParameterType - -ParameterType contains prebuilt type validators. To access to -ParameterTypeValidator of every ParameterType, use link - -| | | -| ---------------- | -------------------------------------------------------------- | -| Name | Description | -| `GENERIC_STRING` | STRING Type accept every string | -| `EMAIL` | \- | -| `URI` | \- | -| `BOOL` | It allows true, false, t, f, 1, 0 | -| `INT` | INT type does the validation with Integer.parseInt(value) | -| `FLOAT` | FLOAT type does the validation with Float.parseFloat(value) | -| `DOUBLE` | DOUBLE type does the validation with Double.parseDouble(value) | -| `DATE` | DATE as defined by full-date - RFC3339 | -| `DATETIME` | DATETIME as defined by date-time - RFC3339 | -| `TIME` | TIME as defined by partial-time - RFC3339 | -| `BASE64` | \- | -| `IPV4` | \- | -| `IPV6` | \- | -| `HOSTNAME` | \- | -| `UUID` | UUID as defined by RFC4122 | diff --git a/docs/manual/@vertx/web-api-contract/index.md b/docs/manual/@vertx/web-api-contract/index.md deleted file mode 100644 index 2b0d75125..000000000 --- a/docs/manual/@vertx/web-api-contract/index.md +++ /dev/null @@ -1,379 +0,0 @@ -Vert.x Web API Contract extends Vert.x Web to support -[OpenAPI 3](https://www.openapis.org/), bringing to you a simple -interface to build your router and mount security and validation -handler. - -If you are interested in building an application that routes API -Requests to event bus, check out [Vert.x Web API -Service](https://vertx.io/docs/vertx-web-api-service/java/) - -# Using Vert.x API Contract - -To use Vert.x API Contract, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-web-api-contract - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile 'io.vertx:vertx-web-api-contract:${maven.version}' -} -``` - -# HTTP Requests validation - -Vert.x provides a validation framework that will validate requests for -you and will put results of validation inside a container. To define a -`HTTPRequestValidationHandler`: - -``` js -import { HTTPRequestValidationHandler } from "@vertx/web-api-contract" -// Create Validation Handler with some stuff -let validationHandler = HTTPRequestValidationHandler.create().addQueryParam("parameterName", ParameterType.INT, true).addFormParamWithPattern("formParameterName", "a{4}", true).addPathParam("pathParam", ParameterType.FLOAT); -``` - -Then you can mount your validation handler: - -``` js -import { BodyHandler } from "@vertx/web" -// BodyHandler is required to manage body parameters like forms or json body -router.route().handler(BodyHandler.create()); - -router.get("/awesome/:pathParam").handler(validationHandler).handler((routingContext) => { - // Get Request parameters container - let params = routingContext.get("parsedParameters"); - - // Get parameters - let parameterName = params.queryParameter("parameterName").getInteger(); - let formParameterName = params.formParameter("formParameterName").getString(); - let pathParam = params.pathParameter("pathParam").getFloat(); -}).failureHandler((routingContext) => { - let failure = routingContext.failure(); - if (failure instanceof ValidationException) { - // Something went wrong during validation! - let validationErrorMessage = failure.getMessage(); - } -}); -``` - -If validation succeeds, It returns request parameters inside -`RequestParameters`, otherwise It will throw a fail inside -`RoutingContext` with 400 status code and `ValidationException` failure. - -## Types of request parameters - -Every parameter has a type validator, a class that describes the -expected type of parameter. A type validator validates the value, casts -it in required language type and then loads it inside a -`RequestParameter` object. There are three ways to describe the type of -your parameter: - - - There is a set of prebuilt types that you can use: `ParameterType` - - - You can instantiate a custom instance of prebuilt type validators - using static methods of `ParameterTypeValidator` and then load it - into `HTTPRequestValidationHandler` using functions ending with - `WithCustomTypeValidator` - - - You can create your own `ParameterTypeValidator` implementing - `ParameterTypeValidator` interface - -## Handling parameters - -Now you can handle parameter values: - -``` js -let params = routingContext.get("parsedParameters"); -let awesomeParameter = params.queryParameter("awesomeParameter"); -if ((awesomeParameter !== null && awesomeParameter !== undefined)) { - if (!awesomeParameter.isEmpty()) { - // Parameter exists and isn't empty - // ParameterTypeValidator mapped the parameter in equivalent language object - let awesome = awesomeParameter.getInteger(); - } else { - // Parameter exists, but it's empty - } -} else { - // Parameter doesn't exist (it's not required) -} -``` - -As you can see, every parameter is mapped in respective language -objects. You can also get a json body: - -``` js -let body = params.body(); -if ((body !== null && body !== undefined)) { - let jsonBody = body.getJsonObject(); -} -``` - -## Manage validation failures - -A validation error fails the `RoutingContext` with 400 status code and -`ValidationException` failure. You can manage these failures both at -route level using `failureHandler` or at router level using -`errorHandler`: - -``` js -router.get("/awesome/:pathParam").handler(validationHandler).handler((routingContext) => { - // Your logic -}).failureHandler((routingContext) => { - let failure = routingContext.failure(); - if (failure instanceof ValidationException) { - // Something went wrong during validation! - let validationErrorMessage = failure.getMessage(); - } -}); - -// Manage the validation failure for all routes in the router -router.errorHandler(400, (routingContext) => { - if (routingContext.failure() instanceof ValidationException) { - // Something went wrong during validation! - let validationErrorMessage = routingContext.failure().getMessage(); - } else { - // Unknown 400 failure happened - routingContext.response().setStatusCode(400).end(); - } -}); -``` - -# OpenAPI 3 - -Vert.x allows you to use your OpenAPI 3 specification directly inside -your code using the design first approach. Vert.x-Web API Contract -provides: - - - OpenAPI 3 compliant API specification validation with automatic - **loading of external Json schemas** - - - Automatic request validation - - - Automatic mount of security validation handlers - -You can also use the community project -[`vertx-starter`](https://github.com/pmlopes/vertx-starter) to generate -server code from your OpenAPI 3 specification. - -## The Router Factory - -You can create your web service based on OpenAPI 3 specification with -`OpenAPI3RouterFactory`. This class, as name says, is a router factory -based on your OpenAPI 3 specification. `OpenAPI3RouterFactory` is -intended to give you a really simple user interface to use OpenAPI 3 -related features. It includes: - - - Async loading of specification and its schema dependencies - - - Mount path with operationId or with combination of path and HTTP - method - - - Automatic generation of validation handlers - - - Automatic conversion between OpenAPI style paths and Vert.x style - paths - - - Lazy methods: operations are mounted in declaration order inside - specification - - - Automatic mount of security handlers - -## Create a new router factory - -To create a new router factory, use method -`OpenAPI3RouterFactory.create`. As location It accepts absolute paths, -local paths and local or remote URLs (HTTP or file protocol). - -For example to load a spec from the local filesystem: - -``` js -import { OpenAPI3RouterFactory } from "@vertx/web-api-contract" -OpenAPI3RouterFactory.create(vertx, "src/main/resources/petstore.yaml", (ar) => { - if (ar.succeeded()) { - // Spec loaded with success - let routerFactory = ar.result(); - } else { - // Something went wrong during router factory initialization - let exception = ar.cause(); - } -}); -``` - -You can also construct a router factory from a remote spec: - -``` js -import { OpenAPI3RouterFactory } from "@vertx/web-api-contract" -OpenAPI3RouterFactory.create(vertx, "https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml", (ar) => { - if (ar.succeeded()) { - // Spec loaded with success - let routerFactory = ar.result(); - } else { - // Something went wrong during router factory initialization - let exception = ar.cause(); - } -}); -``` - -Or, you can also access a private remote spec by passing one or more -[AuthorizationValue](https://github.com/swagger-api/swagger-parser#usage): - -``` js -Code not translatable -``` - -You can also modify the behaviours of the router factory with -`RouterFactoryOptions`. - -## Mount the handlers - -Now load your first operation handlers. To load an handler use -`addHandlerByOperationId`. To load a failure handler use -`addFailureHandlerByOperationId` - -You can, of course, **add multiple handlers to same operation**, without -overwrite the existing ones. - -For example: - -``` js -routerFactory.addHandlerByOperationId("awesomeOperation", (routingContext) => { - let params = routingContext.get("parsedParameters"); - let body = params.body(); - let jsonBody = body.getJsonObject(); - // Do something with body -}); -routerFactory.addFailureHandlerByOperationId("awesomeOperation", (routingContext) => { - // Handle failure -}); -``` - -Now you can use parameter values as described above - -## Define security handlers - -A security handler is defined by a combination of schema name and scope. -You can mount only one security handler for a combination. For example: - -``` js -routerFactory.addSecurityHandler("security_scheme_name", securityHandler); -``` - -You can of course use included Vert.x security handlers, for example: - -``` js -import { JWTAuthHandler } from "@vertx/web" -routerFactory.addSecurityHandler("jwt_auth", JWTAuthHandler.create(jwtAuthProvider)); -``` - -When you generate the `Router` the Router Factory fails if For -debugging/testing purpose - -## Not Implemented Error - -Router Factory automatically mounts a default handler for operations -without a specified handler. This default handler fails the routing -context with 501 `Not Implemented` error. You can enable/disable it with -`setMountNotImplementedHandler` and you can customize this error -handling with `errorHandler` - -## Response Content Type Handler - -Router Factory automatically mounts a `ResponseContentTypeHandler` -handler when contract requires it. You can disable this feature with -`setMountResponseContentTypeHandler` - -## Operation model - -If you need to access to your operation contract while handling the -request, you can configure the router factory to push it inside the -`RoutingContext` with `setOperationModelKey`. For example: - -``` js -// Configure the operation model key and set options in router factory -options.operationModelKey = "operationPOJO"; -routerFactory.setOptions(options); - -// Add an handler that uses the operation model -routerFactory.addHandlerByOperationId("listPets", (routingContext) => { - let operation = routingContext.get("operationPOJO"); - - routingContext.response().setStatusCode(200).setStatusMessage("OK").end(operation.getOperationId()); -}); -``` - -## Body Handler - -Router Factory automatically mounts a `BodyHandler` to manage request -bodies. You can configure the instance of `BodyHandler` (e.g. to change -upload directory) with `setBodyHandler`. - -## `multipart/form-data` validation - -The validation handler separates file uploads and form attributes as -explained: - - - If the parameter doesn’t have an encoding associated field: - - - If the parameter has `type: string` and `format: base64` or - `format: binary` is a file upload with content-type - `application/octet-stream` - - - Otherwise is a form attribute - - - If the parameter has the encoding associated field is a file upload - -The form attributes are parsed and validated as other request -parameters, while for file uploads the validation handler just checks -the existence and the content type. - -## Custom global handlers - -If you need to mount handlers that must be executed for each operationin -your router before the operation specific handlers, you can use -`addGlobalHandler` - -## Router factory handlers mount order - -Handlers are loaded by the router factory in this order: - -1. Body handler - -2. Custom global handlers - -3. Global security handlers defined in upper spec level - -4. Operation specific security handlers - -5. Generated validation handler - -6. User handlers or "Not implemented" handler (if enabled) - -## Generate the router - -When you are ready, generate the router and use it: - -``` js -let router = routerFactory.getRouter(); - -let server = vertx.createHttpServer(new HttpServerOptions() - .setPort(8080) - .setHost("localhost")); -server.requestHandler(router).listen(); -``` - -This method can fail with a `RouterFactoryException` if you didn’t -provide the required security handlers. diff --git a/docs/manual/@vertx/web-client/dataobjects.md b/docs/manual/@vertx/web-client/dataobjects.md deleted file mode 100644 index 9a1ce8e1b..000000000 --- a/docs/manual/@vertx/web-client/dataobjects.md +++ /dev/null @@ -1,86 +0,0 @@ -# WebClientOptions - -| | | | -| --------------------------------------------- | ---------------------- | -------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@alpnVersions` | `Array of HttpVersion` | \- | -| `@connectTimeout` | `Number (int)` | \- | -| `@crlPaths` | `Array of String` | \- | -| `@crlValues` | `Array of Buffer` | \- | -| `@decoderInitialBufferSize` | `Number (int)` | \- | -| `@defaultHost` | `String` | \- | -| `@defaultPort` | `Number (int)` | \- | -| `@enabledCipherSuites` | `Array of String` | \- | -| `@enabledSecureTransportProtocols` | `Array of String` | \- | -| `@followRedirects` | `Boolean` | Configure the default behavior of the client to follow HTTP `30x` redirections. | -| `@forceSni` | `Boolean` | \- | -| `@http2ClearTextUpgrade` | `Boolean` | \- | -| `@http2ConnectionWindowSize` | `Number (int)` | \- | -| `@http2KeepAliveTimeout` | `Number (int)` | \- | -| `@http2MaxPoolSize` | `Number (int)` | \- | -| `@http2MultiplexingLimit` | `Number (int)` | \- | -| `@idleTimeout` | `Number (int)` | \- | -| `@idleTimeoutUnit` | `TimeUnit` | \- | -| `@initialSettings` | `Http2Settings` | \- | -| `@jdkSslEngineOptions` | `JdkSSLEngineOptions` | \- | -| `@keepAlive` | `Boolean` | \- | -| `@keepAliveTimeout` | `Number (int)` | \- | -| `@keyStoreOptions` | `JksOptions` | \- | -| `@localAddress` | `String` | \- | -| `@logActivity` | `Boolean` | \- | -| `@maxChunkSize` | `Number (int)` | \- | -| `@maxHeaderSize` | `Number (int)` | \- | -| `@maxInitialLineLength` | `Number (int)` | \- | -| `@maxPoolSize` | `Number (int)` | \- | -| `@maxRedirects` | `Number (int)` | \- | -| `@maxWaitQueueSize` | `Number (int)` | \- | -| `@maxWebSocketFrameSize` | `Number (int)` | \- | -| `@maxWebSocketMessageSize` | `Number (int)` | \- | -| `@maxWebsocketFrameSize` | `Number (int)` | \- | -| `@maxWebsocketMessageSize` | `Number (int)` | \- | -| `@metricsName` | `String` | \- | -| `@openSslEngineOptions` | `OpenSSLEngineOptions` | \- | -| `@pemKeyCertOptions` | `PemKeyCertOptions` | \- | -| `@pemTrustOptions` | `PemTrustOptions` | \- | -| `@pfxKeyCertOptions` | `PfxOptions` | \- | -| `@pfxTrustOptions` | `PfxOptions` | \- | -| `@pipelining` | `Boolean` | \- | -| `@pipeliningLimit` | `Number (int)` | \- | -| `@poolCleanerPeriod` | `Number (int)` | \- | -| `@protocolVersion` | `HttpVersion` | \- | -| `@proxyOptions` | `ProxyOptions` | \- | -| `@receiveBufferSize` | `Number (int)` | \- | -| `@reuseAddress` | `Boolean` | \- | -| `@reusePort` | `Boolean` | \- | -| `@sendBufferSize` | `Number (int)` | \- | -| `@sendUnmaskedFrames` | `Boolean` | \- | -| `@soLinger` | `Number (int)` | \- | -| `@ssl` | `Boolean` | \- | -| `@sslHandshakeTimeout` | `Number (long)` | \- | -| `@sslHandshakeTimeoutUnit` | `TimeUnit` | \- | -| `@tcpCork` | `Boolean` | \- | -| `@tcpFastOpen` | `Boolean` | \- | -| `@tcpKeepAlive` | `Boolean` | \- | -| `@tcpNoDelay` | `Boolean` | \- | -| `@tcpQuickAck` | `Boolean` | \- | -| `@trafficClass` | `Number (int)` | \- | -| `@trustAll` | `Boolean` | \- | -| `@trustStoreOptions` | `JksOptions` | \- | -| `@tryUseCompression` | `Boolean` | \- | -| `@tryUsePerFrameWebSocketCompression` | `Boolean` | \- | -| `@tryUsePerFrameWebsocketCompression` | `Boolean` | \- | -| `@tryUsePerMessageWebSocketCompression` | `Boolean` | \- | -| `@tryUsePerMessageWebsocketCompression` | `Boolean` | \- | -| `@tryWebSocketDeflateFrameCompression` | `Boolean` | \- | -| `@tryWebsocketDeflateFrameCompression` | `Boolean` | \- | -| `@useAlpn` | `Boolean` | \- | -| `@usePooledBuffers` | `Boolean` | \- | -| `@userAgent` | `String` | Sets the Web Client user agent header. Defaults to Vert.x-WebClient/\. | -| `@userAgentEnabled` | `Boolean` | Sets whether the Web Client should send a user agent header. Defaults to true. | -| `@verifyHost` | `Boolean` | \- | -| `@webSocketCompressionAllowClientNoContext` | `Boolean` | \- | -| `@webSocketCompressionLevel` | `Number (int)` | \- | -| `@webSocketCompressionRequestServerNoContext` | `Boolean` | \- | -| `@websocketCompressionAllowClientNoContext` | `Boolean` | \- | -| `@websocketCompressionLevel` | `Number (int)` | \- | -| `@websocketCompressionRequestServerNoContext` | `Boolean` | \- | diff --git a/docs/manual/@vertx/web-client/enums.md b/docs/manual/@vertx/web-client/enums.md deleted file mode 100644 index 7b5ad0a39..000000000 --- a/docs/manual/@vertx/web-client/enums.md +++ /dev/null @@ -1,7 +0,0 @@ -# StatusExpectations - -| | | -| --------- | ----------- | -| Name | Description | -| `SUCCESS` | \- | -| `OK` | \- | diff --git a/docs/manual/@vertx/web-client/index.md b/docs/manual/@vertx/web-client/index.md deleted file mode 100644 index 2b7adabcb..000000000 --- a/docs/manual/@vertx/web-client/index.md +++ /dev/null @@ -1,818 +0,0 @@ -Vert.x Web Client is an asynchronous HTTP and HTTP/2 client. - -The Web Client makes easy to do HTTP request/response interactions with -a web server, and provides advanced features like: - - - Json body encoding / decoding - - - request/response pumping - - - request parameters - - - unified error handling - - - form submissions - -The Web Client does not deprecate the Vert.x Core `HttpClient`, indeed -it is based on this client and inherits its configuration and great -features like pooling, HTTP/2 support, pipelining support, etc…​ The -`HttpClient` should be used when fine grained control over the HTTP -requests/responses is necessary. - -The Web Client does not provide a WebSocket API, the Vert.x Core -`HttpClient` should be used. It also does not handle cookies at the -moment. - -# Using the Web Client - -To use Vert.x Web Client, add the following dependency to the -*dependencies* section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-web-client - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile 'io.vertx:vertx-web-client:${maven.version}' -} -``` - -# Re-cap on Vert.x core HTTP client - -Vert.x Web Client uses the API from Vert.x core, so it’s well worth -getting familiar with the basic concepts of using `HttpClient` using -Vert.x core, if you’re not already. - -# Creating a Web Client - -You create an `WebClient` instance with default options as follows - -``` js -import { WebClient } from "@vertx/web-client" -let client = WebClient.create(vertx); -``` - -If you want to configure options for the client, you create it as -follows - -``` js -import { WebClient } from "@vertx/web-client" -let options = new WebClientOptions() - .setUserAgent("My-App/1.2.3"); -options.keepAlive = false; -let client = WebClient.create(vertx, options); -``` - -Web Client options inherit Http Client options so you can set any one of -them. - -If your already have an HTTP Client in your application you can also -reuse it - -``` js -import { WebClient } from "@vertx/web-client" -let client = WebClient.wrap(httpClient); -``` - -> **Important** -> -> In most cases, a Web Client should be created once on application -> startup and then reused. Otherwise you lose a lot of benefits such as -> connection pooling and may leak resources if instances are not closed -> properly. - -# Making requests - -## Simple requests with no body - -Often, you’ll want to make HTTP requests with no request body. This is -usually the case with HTTP GET, OPTIONS and HEAD requests - -``` js -import { WebClient } from "@vertx/web-client" - -let client = WebClient.create(vertx); - -// Send a GET request -client.get(8080, "myserver.mycompany.com", "/some-uri").send((ar) => { - if (ar.succeeded()) { - // Obtain response - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); - -// Send a HEAD request -client.head(8080, "myserver.mycompany.com", "/some-uri").send((ar) => { - if (ar.succeeded()) { - // Obtain response - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -You can add query parameters to the request URI in a fluent fashion - -``` js -client.get(8080, "myserver.mycompany.com", "/some-uri").addQueryParam("param", "param_value").send((ar) => { - if (ar.succeeded()) { - // Obtain response - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -Any request URI parameter will pre-populate the request - -``` js -let request = client.get(8080, "myserver.mycompany.com", "/some-uri?param1=param1_value¶m2=param2_value"); - -// Add param3 -request.addQueryParam("param3", "param3_value"); - -// Overwrite param2 -request.setQueryParam("param2", "another_param2_value"); -``` - -Setting a request URI discards existing query parameters - -``` js -let request = client.get(8080, "myserver.mycompany.com", "/some-uri"); - -// Add param1 -request.addQueryParam("param1", "param1_value"); - -// Overwrite param1 and add param2 -request.uri("/some-uri?param1=param1_value¶m2=param2_value"); -``` - -## Writing request bodies - -When you need to make a request with a body, you use the same API and -call then `sendXXX` methods that expects a body to send. - -Use `sendBuffer` to send a buffer body - -``` js -// Send a buffer to the server using POST, the content-length header will be set for you -client.post(8080, "myserver.mycompany.com", "/some-uri").sendBuffer(buffer, (ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -Sending a single buffer is useful but often you don’t want to load fully -the content in memory because it may be too large or you want to handle -many concurrent requests and want to use just the minimum for each -request. For this purpose the Web Client can send `ReadStream` -(e.g a `AsyncFile` is a ReadStream\\`) with the `sendStream` -method - -``` js -// When the stream len is unknown sendStream sends the file to the server using chunked transfer encoding -client.post(8080, "myserver.mycompany.com", "/some-uri").sendStream(stream, (ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -The Web Client takes care of setting up the transfer pump for you. Since -the length of the stream is not know the request will use chunked -transfer encoding . - -When you know the size of the stream, you shall specify before using the -`content-length` header - -``` js -fs.open("content.txt", new OpenOptions(), (fileRes) => { - if (fileRes.succeeded()) { - let fileStream = fileRes.result(); - - let fileLen = "1024"; - - // Send the file to the server using POST - client.post(8080, "myserver.mycompany.com", "/some-uri").putHeader("content-length", fileLen).sendStream(fileStream, (ar) => { - if (ar.succeeded()) { - // Ok - } - }); - } -}); -``` - -The POST will not be chunked. - -### Json bodies - -Often you’ll want to send Json body requests, to send a `JsonObject` use -the `sendJsonObject` - -``` js -client.post(8080, "myserver.mycompany.com", "/some-uri").sendJsonObject({ - "firstName" : "Dale", - "lastName" : "Cooper" -}, (ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -In Java, Groovy or Kotlin, you can use the `sendJson` method that maps a -POJO (Plain Old Java Object) to a Json object using `Json.encode` method - -``` js -client.post(8080, "myserver.mycompany.com", "/some-uri").sendJson(new (Java.type("examples.WebClientExamples.User"))("Dale", "Cooper"), (ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -> **Note** -> -> the `Json.encode` uses the Jackson mapper to encode the object to -> Json. - -### Form submissions - -You can send http form submissions bodies with the `sendForm` variant. - -``` js -import { MultiMap } from "@vertx/core" -let form = MultiMap.caseInsensitiveMultiMap(); -form.set("firstName", "Dale"); -form.set("lastName", "Cooper"); - -// Submit the form as a form URL encoded body -client.post(8080, "myserver.mycompany.com", "/some-uri").sendForm(form, (ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -By default the form is submitted with the -`application/x-www-form-urlencoded` content type header. You can set the -`content-type` header to `multipart/form-data` instead - -``` js -import { MultiMap } from "@vertx/core" -let form = MultiMap.caseInsensitiveMultiMap(); -form.set("firstName", "Dale"); -form.set("lastName", "Cooper"); - -// Submit the form as a multipart form body -client.post(8080, "myserver.mycompany.com", "/some-uri").putHeader("content-type", "multipart/form-data").sendForm(form, (ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -If you want to upload files and send attributes, you can create a -`MultipartForm` and use `sendMultipartForm`. - -``` js -import { MultipartForm } from "@vertx/web-common" -let form = MultipartForm.create().attribute("imageDescription", "a very nice image").binaryFileUpload("imageFile", "image.jpg", "/path/to/image", "image/jpeg"); - -// Submit the form as a multipart form body -client.post(8080, "myserver.mycompany.com", "/some-uri").sendMultipartForm(form, (ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -## Writing request headers - -You can write headers to a request using the headers multi-map as -follows: - -``` js -let request = client.get(8080, "myserver.mycompany.com", "/some-uri"); -let headers = request.headers(); -headers.set("content-type", "application/json"); -headers.set("other-header", "foo"); -``` - -The headers are an instance of `MultiMap` which provides operations for -adding, setting and removing entries. Http headers allow more than one -value for a specific key. - -You can also write headers using putHeader - -``` js -let request = client.get(8080, "myserver.mycompany.com", "/some-uri"); -request.putHeader("content-type", "application/json"); -request.putHeader("other-header", "foo"); -``` - -## Configure the request to add authentication. - -Authentication can be performed manually by setting the correct headers, -or, using our predefined methods (We strongly suggest having HTTPS -enabled, especially for authenticated requests): - -In basic HTTP authentication, a request contains a header field of the -form `Authorization: Basic `, where credentials is the -base64 encoding of id and password joined by a colon. - -You can configure the request to add basic access authentication as -follows: - -``` js -let request = client.get(8080, "myserver.mycompany.com", "/some-uri").basicAuthentication("myid", "mypassword"); -``` - -In OAuth 2.0, a request contains a header field of the form -`Authorization: Bearer `, where bearerToken is the bearer -token issued by an authorization server to access protected resources. - -You can configure the request to add bearer token authentication as -follows: - -``` js -let request = client.get(8080, "myserver.mycompany.com", "/some-uri").bearerTokenAuthentication("myBearerToken"); -``` - -## Reusing requests - -The `send` method can be called multiple times safely, making it very -easy to configure and reuse `HttpRequest` objects - -``` js -let get = client.get(8080, "myserver.mycompany.com", "/some-uri"); -get.send((ar) => { - if (ar.succeeded()) { - // Ok - } -}); - -// Same request again -get.send((ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -Beware though that `HttpRequest` instances are mutable. Therefore you -should call the `copy` method before modifying a cached instance. - -``` js -let get = client.get(8080, "myserver.mycompany.com", "/some-uri"); -get.send((ar) => { - if (ar.succeeded()) { - // Ok - } -}); - -// The "get" request instance remains unmodified -get.copy().putHeader("a-header", "with-some-value").send((ar) => { - if (ar.succeeded()) { - // Ok - } -}); -``` - -## Timeouts - -You can set a timeout for a specific http request using `timeout`. - -``` js -client.get(8080, "myserver.mycompany.com", "/some-uri").timeout(5000).send((ar) => { - if (ar.succeeded()) { - // Ok - } else { - // Might be a timeout when cause is java.util.concurrent.TimeoutException - } -}); -``` - -If the request does not return any data within the timeout period an -exception will be passed to the response handler. - -# Handling http responses - -When the Web Client sends a request you always deal with a single async -result `HttpResponse`. - -On a success result the callback happens after the response has been -received - -``` js -client.get(8080, "myserver.mycompany.com", "/some-uri").send((ar) => { - if (ar.succeeded()) { - - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -> **Caution** -> -> By default, a Vert.x Web Client request ends with an error only if -> something wrong happens at the network level. In other words, a `404 -> Not Found` response, or a response with the wrong content type, are -> **not** considered as failures. Use [response -> predicates](#response-predicates) if you want the Web Client to -> perform sanity checks automatically. - -> **Warning** -> -> Responses are fully buffered, use `BodyCodec.pipe` to pipe the -> response to a write stream - -## Decoding responses - -By default the Web Client provides an http response body as a `Buffer` -and does not apply any decoding. - -Custom response body decoding can be achieved using `BodyCodec`: - - - Plain String - - - Json object - - - Json mapped POJO - - - `WriteStream` - -A body codec can decode an arbitrary binary data stream into a specific -object instance, saving you the decoding step in your response handlers. - -Use `BodyCodec.jsonObject` To decode a Json object: - -``` js -import { BodyCodec } from "@vertx/web-common" -client.get(8080, "myserver.mycompany.com", "/some-uri").as(BodyCodec.jsonObject()).send((ar) => { - if (ar.succeeded()) { - let response = ar.result(); - - let body = response.body(); - - console.log("Received response with status code" + response.statusCode() + " with body " + body); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -In Java, Groovy or Kotlin, custom Json mapped POJO can be decoded - -``` js -import { BodyCodec } from "@vertx/web-common" -client.get(8080, "myserver.mycompany.com", "/some-uri").as(BodyCodec.json(Java.type("examples.WebClientExamples.User").class)).send((ar) => { - if (ar.succeeded()) { - let response = ar.result(); - - let user = response.body(); - - console.log("Received response with status code" + response.statusCode() + " with body " + user.getFirstName() + " " + user.getLastName()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -When large response are expected, use the `BodyCodec.pipe`. This body -codec pumps the response body buffers to a `WriteStream` and signals the -success or the failure of the operation in the async result response - -``` js -import { BodyCodec } from "@vertx/web-common" -client.get(8080, "myserver.mycompany.com", "/some-uri").as(BodyCodec.pipe(writeStream)).send((ar) => { - if (ar.succeeded()) { - - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -Finally if you are not interested at all by the response content, the -`BodyCodec.none` simply discards the entire response body - -``` js -import { BodyCodec } from "@vertx/web-common" -client.get(8080, "myserver.mycompany.com", "/some-uri").as(BodyCodec.none()).send((ar) => { - if (ar.succeeded()) { - - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -When you don’t know in advance the content type of the http response, -you can still use the `bodyAsXXX()` methods that decode the response to -a specific type - -``` js -client.get(8080, "myserver.mycompany.com", "/some-uri").send((ar) => { - if (ar.succeeded()) { - - let response = ar.result(); - - // Decode the body as a json object - let body = response.bodyAsJsonObject(); - - console.log("Received response with status code" + response.statusCode() + " with body " + body); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -> **Warning** -> -> this is only valid for the response decoded as a buffer. - -## Response predicates - -By default, a Vert.x Web Client request ends with an error only if -something wrong happens at the network level. - -In other words, you must perform sanity checks manually after the -response is received: - -``` js -client.get(8080, "myserver.mycompany.com", "/some-uri").send((ar) => { - if (ar.succeeded()) { - - let response = ar.result(); - - if (response.statusCode() === 200 && response.getHeader("content-type") == "application/json") { - - // Decode the body as a json object - let body = response.bodyAsJsonObject(); - console.log("Received response with status code" + response.statusCode() + " with body " + body); - - } else { - console.log("Something went wrong " + response.statusCode()); - } - - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -You can trade flexibility for clarity and conciseness using *response -predicates*. - -`Response predicates` can fail a request when the response does not -match a criteria. - -The Web Client comes with a set of out of the box predicates ready to -use: - -``` js -import { ResponsePredicate } from "@vertx/web-client" -client.get(8080, "myserver.mycompany.com", "/some-uri").expect(ResponsePredicate.SC_SUCCESS).expect(ResponsePredicate.JSON).send((ar) => { - if (ar.succeeded()) { - - let response = ar.result(); - - // Safely decode the body as a json object - let body = response.bodyAsJsonObject(); - console.log("Received response with status code" + response.statusCode() + " with body " + body); - - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -You can also create custom predicates when existing predicates don’t fit -your needs: - -``` js -import { ResponsePredicateResult } from "@vertx/web-client" - -// Check CORS header allowing to do POST -let methodsPredicate = (resp) => { - let methods = resp.getHeader("Access-Control-Allow-Methods"); - if ((methods !== null && methods !== undefined)) { - if (methods.contains("POST")) { - return ResponsePredicateResult.success() - } - } - return ResponsePredicateResult.failure("Does not work") -}; - -// Send pre-flight CORS request -client.request(HttpMethod.OPTIONS, 8080, "myserver.mycompany.com", "/some-uri").putHeader("Origin", "Server-b.com").putHeader("Access-Control-Request-Method", "POST").expect(methodsPredicate).send((ar) => { - if (ar.succeeded()) { - // Process the POST request now - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -> **Tip** -> -> Response predicates are evaluated *before* the response body is -> received. Therefore you can’t inspect the response body in a predicate -> test function. - -### Predefined predicates - -As a convenience, the Web Client ships a few predicates for common uses -cases . - -For status codes, e.g `ResponsePredicate.SC_SUCCESS` to verify that the -response has a `2xx` code, you can also create a custom one: - -``` js -import { ResponsePredicate } from "@vertx/web-client" -client.get(8080, "myserver.mycompany.com", "/some-uri").expect(ResponsePredicate.status(200, 202)).send((ar) => { - // .... -}); -``` - -For content types, e.g `ResponsePredicate.JSON` to verify that the -response body contains JSON data, you can also create a custom one: - -``` js -import { ResponsePredicate } from "@vertx/web-client" -client.get(8080, "myserver.mycompany.com", "/some-uri").expect(ResponsePredicate.contentType("some/content-type")).send((ar) => { - // .... -}); -``` - -Please refer to the `ResponsePredicate` documentation for a full list of -predefined predicates. - -## Handling 30x redirections - -By default the client follows redirections, you can configure the -default behavior in the `WebClientOptions`: - -``` js -import { WebClient } from "@vertx/web-client" - -// Change the default behavior to not follow redirects -let client = WebClient.create(vertx, new WebClientOptions() - .setFollowRedirects(false)); -``` - -The client will follow at most `16` requests redirections, it can be -changed in the same options: - -``` js -import { WebClient } from "@vertx/web-client" - -// Follow at most 5 redirections -let client = WebClient.create(vertx, new WebClientOptions() - .setMaxRedirects(5)); -``` - -> **Note** -> -> For security reason, client won’t follow redirects for request with -> methods different from GET or HEAD - -# Using HTTPS - -Vert.x Web Client can be configured to use HTTPS in exactly the same way -as the Vert.x `HttpClient`. - -You can specify the behavior per request - -``` js -client.get(443, "myserver.mycompany.com", "/some-uri").ssl(true).send((ar) => { - if (ar.succeeded()) { - // Obtain response - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -Or using create methods with absolute URI argument - -``` js -client.getAbs("https://myserver.mycompany.com:4043/some-uri").send((ar) => { - if (ar.succeeded()) { - // Obtain response - let response = ar.result(); - - console.log("Received response with status code" + response.statusCode()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` - -# Sessions management - -Vert.x web offers a web session management facility; to use it, you -create a `WebClientSession` for every user (session) and use it instead -of the `WebClient`. - -## Creating a WebSession - -You create a `WebClientSession` instance as follows - -``` js -import { WebClient } from "@vertx/web-client" -let client = WebClient.create(vertx); -let session = Java.type("io.vertx.ext.web.client.WebClientSession").create(client); -``` - -## Making requests - -Once created, a `WebClientSession` can be used instead of a `WebClient` -to do HTTP(s) requests and automatically manage any cookies received -from the server(s) you are calling. - -## Setting session level headers - -You can set any session level headers to be added to every request as -follows: - -``` js -let session = Java.type("io.vertx.ext.web.client.WebClientSession").create(client); -session.addHeader("my-jwt-token", jwtToken); -``` - -The headers will then be added to every request; notice that these -headers will be sent to all hosts; if you need to send different headers -to different hosts, you have to add them manually to every single -request and not to the `WebClientSession`. - -# Domain sockets - -Since 3.7.1 the Web Client supports domain sockets, e.g you can interact -with the [local Docker -daemon](https://docs.docker.com/engine/reference/commandline/dockerd/). - -To achieve this, the `Vertx` instance must be created using a native -transport, you can read the Vert.x core documentation that explains it -clearly. - -``` js -import { SocketAddress } from "@vertx/core" -import { BodyCodec } from "@vertx/web-common" -import { ResponsePredicate } from "@vertx/web-client" - -// Creates the unix domain socket address to access the Docker API -let serverAddress = SocketAddress.domainSocketAddress("/var/run/docker.sock"); - -// We still need to specify host and port so the request HTTP header will be localhost:8080 -// otherwise it will be a malformed HTTP request -// the actual value does not matter much for this example -client.request(HttpMethod.GET, serverAddress, 8080, "localhost", "/images/json").expect(ResponsePredicate.SC_ACCEPTED).as(BodyCodec.jsonObject()).send((ar) => { - if (ar.succeeded()) { - // Obtain response - let response = ar.result(); - - console.log("Current Docker images" + response.body()); - } else { - console.log("Something went wrong " + ar.cause().getMessage()); - } -}); -``` diff --git a/docs/manual/@vertx/web-graphql/dataobjects.md b/docs/manual/@vertx/web-graphql/dataobjects.md deleted file mode 100644 index cf2cc779c..000000000 --- a/docs/manual/@vertx/web-graphql/dataobjects.md +++ /dev/null @@ -1,30 +0,0 @@ -# ApolloWSOptions - -Options for configuring the link. - -| | | | -| ------------ | --------------- | -------------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@keepAlive` | `Number (long)` | Set the interval in milliseconds to send `KEEPALIVE` messages to all clients. Defaults to `30000`. | - -# GraphQLHandlerOptions - -Options for configuring the link. - -| | | | -| ------------------------- | --------- | ---------------------------------------------------------------- | -| Name | Type | Description | -| `@requestBatchingEnabled` | `Boolean` | Whether request batching should be enabled. Defaults to `false`. | - -# GraphiQLHandlerOptions - -Embedded GraphiQL user interface options. - -| | | | -| ------------- | ------------- | ------------------------------------------------------------------------------------------- | -| Name | Type | Description | -| `@enabled` | `Boolean` | Whether the GraphiQL development tool should be enabled. Defaults to `false`. | -| `@graphQLUri` | `String` | Set the GraphQL endpoint URI. Defaults to the path used to get the GraphiQL user interface. | -| `@headers` | `String` | A fixed set of HTTP headers to add to GraphiQL requests. Defaults to `null`. | -| `@query` | `String` | Initial value of the query area in the GraphiQL user interface. Defaults to `null`. | -| `@variables` | `Json object` | Initial value of the variables area in the GraphiQL user interface. Defaults to `null`. | diff --git a/docs/manual/@vertx/web-graphql/enums.md b/docs/manual/@vertx/web-graphql/enums.md deleted file mode 100644 index e337d124f..000000000 --- a/docs/manual/@vertx/web-graphql/enums.md +++ /dev/null @@ -1,17 +0,0 @@ -# ApolloWSMessageType - -The link types. - -| | | -| ----------------------- | ----------- | -| Name | Description | -| `CONNECTION_INIT` | \- | -| `CONNECTION_TERMINATE` | \- | -| `START` | \- | -| `STOP` | \- | -| `CONNECTION_ACK` | \- | -| `CONNECTION_ERROR` | \- | -| `CONNECTION_KEEP_ALIVE` | \- | -| `DATA` | \- | -| `ERROR` | \- | -| `COMPLETE` | \- | diff --git a/docs/manual/@vertx/web-graphql/index.md b/docs/manual/@vertx/web-graphql/index.md deleted file mode 100644 index cf7ae3bdf..000000000 --- a/docs/manual/@vertx/web-graphql/index.md +++ /dev/null @@ -1,333 +0,0 @@ -Vert.x Web GraphQL extends Vert.x Web with the -[GraphQL-Java](https://www.graphql-java.com) library so that you can -build a GraphQL server. - -> **Tip** -> -> This is the reference documentation for Vert.x Web GraphQL. It is -> highly recommended to get familiar with the GraphQL-Java API first. -> You may start by reading the [GraphQL-Java -> documentation](https://www.graphql-java.com/documentation/${graphql.java.doc.version}/). - -> **Warning** -> -> This module has *Tech Preview* status, this means the API can change -> between versions. - -# Getting started - -To use this module, add the following to the *dependencies* section of -your Maven POM file: - -``` xml - - io.vertx - vertx-web-graphql - ${maven.version} - -``` - -Or, if you use Gradle: - -``` groovy -compile 'io.vertx:vertx-web-graphql:${maven.version}' -``` - -# Handler setup - -Create a Vert.x Web `Route` and a `GraphQLHandler` for it: - -``` js -import { GraphQLHandler } from "@vertx/web-graphql" -let graphQL = setupGraphQLJava(); - -router.route("/graphql").handler(GraphQLHandler.create(graphQL)); -``` - -The handler serves both `GET` and `POST` requests. However you can -restrict the service to one type of HTTP method: - -``` js -import { GraphQLHandler } from "@vertx/web-graphql" -let graphQL = setupGraphQLJava(); - -router.post("/graphql").handler(GraphQLHandler.create(graphQL)); -``` - -> **Tip** -> -> The `GraphQLHandler` does not require a `BodyHandler` to read `POST` -> requests content. - -## GraphiQL client - -As you are building your application, testing your GraphQL queries in -[GraphiQL](https://github.com/graphql/graphiql) can be handy. - -To do so, create a route for GraphiQL resources and a `GraphiQLHandler` -for them: - -``` js -import { GraphiQLHandler } from "@vertx/web-graphql" -let options = new GraphiQLHandlerOptions() - .setEnabled(true); - -router.route("/graphiql/*").handler(GraphiQLHandler.create(options)); -``` - -Then browse to . - -> **Note** -> -> The GraphiQL user interface is disabled by default for security -> reasons. This is why you must configure the `GraphiQLHandlerOptions` -> to enable it. - -> **Tip** -> -> GraphiQL is enabled automatically when Vert.x Web runs in development -> mode. To switch the development mode on, use the -> `VERTXWEB_ENVIRONMENT` environment variable or `vertxweb.environment` -> system property and set it to `dev`. In this case, create the -> `GraphiQLHandler` without changing the `enabled` property. - -If your application is protected by authentication, you can customize -the headers sent by GraphiQL dynamically: - -``` js -import { MultiMap } from "@vertx/core" -graphiQLHandler.graphiQLRequestHeaders((rc) => { - let token = rc.get("token"); - return MultiMap.caseInsensitiveMultiMap().add(Java.type("io.vertx.core.http.HttpHeaders").AUTHORIZATION, "Bearer " + token) -}); - -router.route("/graphiql/*").handler(graphiQLHandler); -``` - -Please refer to the `GraphiQLHandlerOptions` documentation for further -details. - -## Enable query batching - -Query batching consists in posting an array instead of a single object -to the GraphQL endpoint. - -Vert.x Web GraphQL can handle such requests but by default the feature -is disabled. To enable it, create the `GraphQLHandler` with options: - -``` js -import { GraphQLHandler } from "@vertx/web-graphql" -let options = new GraphQLHandlerOptions() - .setRequestBatchingEnabled(true); - -let handler = GraphQLHandler.create(graphQL, options); -``` - -# Building a GraphQL server - -The GraphQL-Java API is very well suited for the asynchronous world: the -asynchronous execution strategy is the default for queries (serial -asynchronous for mutations). - -To [avoid blocking the event -loop](https://vertx.io/docs/vertx-core/java/#golden_rule), all you have -to do is implement [data -fetchers](https://www.graphql-java.com/documentation/${graphql.java.doc.version}/data-fetching/) -that return a `CompletionStage` instead of the result directly. - -``` js -let dataFetcher = (environment) => { - - let completableFuture = new (Java.type("java.util.concurrent.CompletableFuture"))(); - - retrieveLinksFromBackend(environment, (ar) => { - if (ar.succeeded()) { - completableFuture.complete(ar.result()); - } else { - completableFuture.completeExceptionally(ar.cause()); - } - }); - - return completableFuture -}; - -let runtimeWiring = Java.type("graphql.schema.idl.RuntimeWiring").newRuntimeWiring().type("Query", (builder) => { - builder.dataFetcher("allLinks", dataFetcher); -}).build(); -``` - -## Fetching data with callback-based APIs - -Implementing a data fetcher that returns a `CompletionStage` is not a -complex task. But when you work with Vert.x callback-based APIs, it -requires a bit of boilerplate. - -This is where the `VertxDataFetcher` can help: - -``` js -let dataFetcher = new (Java.type("io.vertx.ext.web.handler.graphql.VertxDataFetcher"))((environment, future) => { - - retrieveLinksFromBackend(environment, future); - -}); - -let runtimeWiring = Java.type("graphql.schema.idl.RuntimeWiring").newRuntimeWiring().type("Query", (builder) => { - builder.dataFetcher("allLinks", dataFetcher); -}).build(); -``` - -## Providing data fetchers with some context - -Very often, the `GraphQLHandler` will be declared after other route -handlers. For example, you could protect your application with -authentication. - -In this case, it is likely that your data fetchers will need to know -which user is logged-in to narrow down the results. Let’s say your -authentication layer stores a `User` object in the `RoutingContext`. - -You may retrieve this object by inspecting the -`DataFetchingEnvironment`: - -``` js -let dataFetcher = new (Java.type("io.vertx.ext.web.handler.graphql.VertxDataFetcher"))((environment, future) => { - - let routingContext = environment.getContext(); - - let user = routingContext.get("user"); - - retrieveLinksPostedBy(user, future); - -}); -``` - -> **Note** -> -> The routing context is available with any kind of data fetchers, not -> just `VertxDataFetcher`. - -If you prefer not to expose the routing context to your data fetchers, -configure the GraphQL handler to customize the context object: - -``` js -import { GraphQLHandler } from "@vertx/web-graphql" -let dataFetcher = new (Java.type("io.vertx.ext.web.handler.graphql.VertxDataFetcher"))((environment, future) => { - - // User as custom context object - let user = environment.getContext(); - - retrieveLinksPostedBy(user, future); - -}); - -let graphQL = setupGraphQLJava(dataFetcher); - -// Customize the query context object when setting up the handler -let handler = GraphQLHandler.create(graphQL).queryContext((routingContext) => { - - return routingContext.get("user") - -}); - -router.route("/graphql").handler(handler); -``` - -## JSON data results - -The default GraphQL data fetcher is `PropertyDataFetcher`. As a -consequence, it will be able to read the fields of your domain objects -without further configuration. - -Nevertheless, some Vert.x data clients return `JsonArray` and -`JsonObject` results. - -If you don’t need (or don’t wish to) use a domain object layer, you can -configure GraphQL-Java to use `VertxPropertyDataFetcher` instead: - -``` js -let builder = Java.type("graphql.schema.idl.RuntimeWiring").newRuntimeWiring(); - -builder.wiringFactory(new (Java.type("graphql.schema.idl.WiringFactory"))()); -``` - -> **Tip** -> -> `VertxPropertyDataFetcher` wraps a `PropertyDataFetcher` so you can -> still use it with domain objects. - -## Using dataloaders - -Dataloaders help you to load data efficiently by batching fetch requests -and caching results. - -First, create a batch loader: - -``` js -let linksBatchLoader = (keys, environment) => { - - return retrieveLinksFromBackend(keys, environment) - -}; -``` - -> **Tip** -> -> If you work with Vert.x callback-based APIs, you may use a -> `VertxBatchLoader` or a `VertxMappedBatchLoader` to simplify your -> code. - -Then, configure the `GraphQLHandler` to create a `DataLoaderRegistry` -for each request: - -``` js -Code not translatable -``` - -## Apollo WebSocketLink - -You can use an [Apollo -WebSocketLink](https://www.apollographql.com/docs/link/links/ws/) which -connects over a websocket. This is specially useful if you want to add -subscriptions to your GraphQL schema, but you can also use the websocket -for queries and mutations. - -``` js -import { ApolloWSHandler } from "@vertx/web-graphql" -let graphQL = setupGraphQLJava(); - -router.route("/graphql").handler(ApolloWSHandler.create(graphQL)); -``` - -> **Important** -> -> To support the `graphql-ws` websocket subprotocol, it has to be added -> to the server configuration: - -``` js -let httpServerOptions = new HttpServerOptions() - .setWebSocketSubProtocols(["graphql-ws"]); -vertx.createHttpServer(httpServerOptions).requestHandler(router).listen(8080); -``` - -> **Note** -> -> If you want to support a WebSocketLink and a HttpLink in the same -> path, you can add the ApolloWSHandler in first place and then the -> GraphQLHandler. - -``` js -import { ApolloWSHandler } from "@vertx/web-graphql" -import { GraphQLHandler } from "@vertx/web-graphql" -let graphQL = setupGraphQLJava(); - -router.route("/graphql").handler(ApolloWSHandler.create(graphQL)); -router.route("/graphql").handler(GraphQLHandler.create(graphQL)); -``` - -Here you can find how to configure the Apollo SubscriptionClient: - - -> **Important** -> -> A subscription `DataFetcher` has to return a -> `org.reactivestreams.Publisher` instance. diff --git a/docs/manual/@vertx/web/dataobjects.md b/docs/manual/@vertx/web/dataobjects.md deleted file mode 100644 index fbcef12f5..000000000 --- a/docs/manual/@vertx/web/dataobjects.md +++ /dev/null @@ -1,67 +0,0 @@ -# BridgeOptions - -Deprecated: use link instead. - -| | | | -| ----------------------- | --------------------------- | ----------- | -| Name | Type | Description | -| `@inboundPermitted` | `Array of PermittedOptions` | \- | -| `@inboundPermitteds` | `Array of PermittedOptions` | \- | -| `@maxAddressLength` | `Number (int)` | \- | -| `@maxHandlersPerSocket` | `Number (int)` | \- | -| `@outboundPermitted` | `Array of PermittedOptions` | \- | -| `@outboundPermitteds` | `Array of PermittedOptions` | \- | -| `@pingTimeout` | `Number (long)` | \- | -| `@replyTimeout` | `Number (long)` | \- | - -# Http2PushMapping - -| | | | -| ------------------ | --------- | ----------- | -| Name | Type | Description | -| `@extensionTarget` | `String` | \- | -| `@filePath` | `String` | \- | -| `@noPush` | `Boolean` | \- | - -# PermittedOptions - -Specify a match to allow for inbound and outbound traffic using the -link. - -| | | | -| -------------------- | ------------- | ----------- | -| Name | Type | Description | -| `@address` | `String` | \- | -| `@addressRegex` | `String` | \- | -| `@match` | `Json object` | \- | -| `@requiredAuthority` | `String` | \- | - -# SockJSBridgeOptions - -Options for configuring the event bus bridge. - -| | | | -| ----------------------- | --------------------------- | ----------- | -| Name | Type | Description | -| `@inboundPermitted` | `Array of PermittedOptions` | \- | -| `@inboundPermitteds` | `Array of PermittedOptions` | \- | -| `@maxAddressLength` | `Number (int)` | \- | -| `@maxHandlersPerSocket` | `Number (int)` | \- | -| `@outboundPermitted` | `Array of PermittedOptions` | \- | -| `@outboundPermitteds` | `Array of PermittedOptions` | \- | -| `@pingTimeout` | `Number (long)` | \- | -| `@replyTimeout` | `Number (long)` | \- | - -# SockJSHandlerOptions - -Options for configuring a SockJS handler - -| | | | -| --------------------- | ----------------- | ----------- | -| Name | Type | Description | -| `@disabledTransports` | `Array of String` | \- | -| `@heartbeatInterval` | `Number (long)` | \- | -| `@insertJSESSIONID` | `Boolean` | \- | -| `@libraryURL` | `String` | \- | -| `@maxBytesStreaming` | `Number (int)` | \- | -| `@sessionTimeout` | `Number (long)` | \- | diff --git a/docs/manual/@vertx/web/enums.md b/docs/manual/@vertx/web/enums.md deleted file mode 100644 index eb1b20f17..000000000 --- a/docs/manual/@vertx/web/enums.md +++ /dev/null @@ -1,23 +0,0 @@ -# LoggerFormat - -The possible out of the box formats. - -| | | -| --------- | -------------------------------------------------------------------------------------------------- | -| Name | Description | -| `DEFAULT` | remote-client - - \[timestamp\] "method uri version" status content-length "referrer" "user-agent" | -| `SHORT` | remote-client - method uri version status content-length duration ms | -| `TINY` | method uri status - content-length duration | - -# Transport - -The available SockJS transports - -| | | -| -------------- | -------------------------------------------------------------------------------------------------------------------------- | -| Name | Description | -| `WEBSOCKET` | rfc 6455 | -| `EVENT_SOURCE` | Event source | -| `HTML_FILE` | HtmlFile. | -| `JSON_P` | Slow and old fashioned JSONP polling. This transport will show "busy indicator" (aka: "spinning wheel") when sending data. | -| `XHR` | Long-polling using cross domain XHR | diff --git a/docs/manual/@vertx/web/index.md b/docs/manual/@vertx/web/index.md deleted file mode 100644 index 1979b5c36..000000000 --- a/docs/manual/@vertx/web/index.md +++ /dev/null @@ -1,3552 +0,0 @@ -Vert.x-Web is a set of building blocks for building web applications -with Vert.x. Think of it as a Swiss Army Knife for building modern, -scalable, web apps. - -Vert.x core provides a fairly low level set of functionality for -handling HTTP, and for some applications that will be sufficient. - -Vert.x-Web builds on Vert.x core to provide a richer set of -functionality for building real web applications, more easily. - -It’s the successor to [Yoke](http://pmlopes.github.io/yoke/) in Vert.x -2.x, and takes inspiration from projects such as -[Express](http://expressjs.com/) in the Node.js world and -[Sinatra](http://www.sinatrarb.com/) in the Ruby world. - -Vert.x-Web is designed to be powerful, un-opionated and fully -embeddable. You just use the parts you want and nothing more. Vert.x-Web -is not a container. - -You can use Vert.x-Web to create classic server-side web applications, -RESTful web applications, 'real-time' (server push) web applications, or -any other kind of web application you can think of. Vert.x-Web doesn’t -care. It’s up to you to chose the type of app you prefer, not -Vert.x-Web. - -Vert.x-Web is a great fit for writingRESTful HTTP micro-services\*, but -we don’tforce\* you to write apps like that. - -Some of the key features of Vert.x-Web include: - - - Routing (based on method, path, etc) - - - Regular expression pattern matching for paths - - - Extraction of parameters from paths - - - Content negotiation - - - Request body handling - - - Body size limits - - - Cookie parsing and handling - - - Multipart forms - - - Multipart file uploads - - - Sub routers - - - Session support - both local (for sticky sessions) and clustered - (for non sticky) - - - CORS (Cross Origin Resource Sharing) support - - - Error page handler - - - Basic Authentication - - - Redirect based authentication - - - Authorisation handlers - - - JWT based authorization - - - User/role/permission authorisation - - - Favicon handling - - - Template support for server side rendering, including support for - the following template engines out of the box: - - - Handlebars - - - Jade, - - - MVEL - - - Thymeleaf - - - Apache FreeMarker - - - Pebble - - - Rocker - - - Response time handler - - - Static file serving, including caching logic and directory listing. - - - Request timeout support - - - SockJS support - - - Event-bus bridge - - - CSRF Cross Site Request Forgery - - - VirtualHost - -Most features in Vert.x-Web are implemented as handlers so you can -always write your own. We envisage many more being written over time. - -We’ll discuss all these features in this manual. - -# Using Vert.x Web - -To use vert.x web, add the following dependency to the *dependencies* -section of your build descriptor: - - - Maven (in your `pom.xml`): - - - -``` xml - - io.vertx - vertx-web - ${maven.version} - -``` - - - Gradle (in your `build.gradle` file): - - - -``` groovy -dependencies { - compile 'io.vertx:vertx-web:${maven.version}' -} -``` - -## Development mode - -Vert.x Web by default operates in production mode. You can switch the -development mode by assigning the `dev` value to either: - - - the `VERTXWEB_ENVIRONMENT` environment variable, or - - - the `vertxweb.environment` system property - -In development mode: - - - template engine caches are disabled - - - the `ErrorHandler` does not display exception details - - - the `StaticHandler` does not handle cache headers - - - the GraphiQL development tool is disabled - -# Re-cap on Vert.x core HTTP servers - -Vert.x-Web uses and exposes the API from Vert.x core, so it’s well worth -getting familiar with the basic concepts of writing HTTP servers using -Vert.x core, if you’re not already. - -The Vert.x core HTTP documentation goes into a lot of detail on this. - -Here’s a hello world web server written using Vert.x core. At this point -there is no Vert.x-Web involved: - -``` java -let server = vertx.createHttpServer(); - -server.requestHandler((request) => { - - // This handler gets called for each request that arrives on the server - let response = request.response(); - response.putHeader("content-type", "text/plain"); - - // Write to the response and end it - response.end("Hello World!"); -}); - -server.listen(8080); -``` - -We create an HTTP server instance, and we set a request handler on it. -The request handler will be called whenever a request arrives on the -server. - -When that happens we are just going to set the content type to -`text/plain`, and write `Hello World!` and end the response. - -We then tell the server to listen at port `8080` (default host is -`localhost`). - -You can run this, and point your browser at `http://localhost:8080` to -verify that it works as expected. - -# Basic Vert.x-Web concepts - -Here’s the 10000 foot view: - -A `Router` is one of the core concepts of Vert.x-Web. It’s an object -which maintains zero or more `Routes` . - -A router takes an HTTP request and finds the first matching route for -that request, and passes the request to that route. - -The route can have a *handler* associated with it, which then receives -the request. You then *do something* with the request, and then, either -end it or pass it to the next matching handler. - -Here’s a simple router example: - -``` js -import { Router } from "@vertx/web" -let server = vertx.createHttpServer(); - -let router = Router.router(vertx); - -router.route().handler((routingContext) => { - - // This handler will be called for every request - let response = routingContext.response(); - response.putHeader("content-type", "text/plain"); - - // Write to the response and end it - response.end("Hello World from Vert.x-Web!"); -}); - -server.requestHandler(router).listen(8080); -``` - -It basically does the same thing as the Vert.x Core HTTP server hello -world example from the previous section, but this time using Vert.x-Web. - -We create an HTTP server as before, then we create a router. Once we’ve -done that we create a simple route with no matching criteria so it will -match *all* requests that arrive on the server. - -We then specify a handler for that route. That handler will be called -for all requests that arrive on the server. - -The object that gets passed into the handler is a `RoutingContext` - -this contains the standard Vert.x `HttpServerRequest` and -`HttpServerResponse` but also various other useful stuff that makes -working with Vert.x-Web simpler. - -For every request that is routed there is a unique routing context -instance, and the same instance is passed to all handlers for that -request. - -Once we’ve set up the handler, we set the request handler of the HTTP -server to pass all incoming requests to `handle`. - -So, that’s the basics. Now we’ll look at things in more detail: - -# Handling requests and calling the next handler - -When Vert.x-Web decides to route a request to a matching route, it calls -the handler of the route passing in an instance of `RoutingContext`. A -route can have different handlers, that you can append using `handler` - -If you don’t end the response in your handler, you should call `next` so -another matching route can handle the request (if any). - -You don’t have to call `next` before the handler has finished executing. -You can do this some time later, if you want: - -``` js -let route = router.route("/some/path/"); -route.handler((routingContext) => { - - let response = routingContext.response(); - // enable chunked responses because we will be adding data as - // we execute over other handlers. This is only required once and - // only if several handlers do output. - response.setChunked(true); - - response.write("route1\n"); - - // Call the next matching route after a 5 second delay - routingContext.vertx().setTimer(5000, (tid) => { - routingContext.next(); - }); -}); - -route.handler((routingContext) => { - - let response = routingContext.response(); - response.write("route2\n"); - - // Call the next matching route after a 5 second delay - routingContext.vertx().setTimer(5000, (tid) => { - routingContext.next(); - }); -}); - -route.handler((routingContext) => { - - let response = routingContext.response(); - response.write("route3"); - - // Now end the response - routingContext.response().end(); -}); -``` - -In the above example `route1` is written to the response, then 5 seconds -later `route2` is written to the response, then 5 seconds later `route3` -is written to the response and the response is ended. - -Note, all this happens without any thread blocking. - -# Using blocking handlers - -Sometimes, you might have to do something in a handler that might block -the event loop for some time, e.g. call a legacy blocking API or do some -intensive calculation. - -You can’t do that in a normal handler, so we provide the ability to set -blocking handlers on a route. - -A blocking handler looks just like a normal handler but it’s called by -Vert.x using a thread from the worker pool not using an event loop. - -You set a blocking handler on a route with `blockingHandler`. Here’s an -example: - -``` js -router.route().blockingHandler((routingContext) => { - - // Do something that might take some time synchronously - service.doSomethingThatBlocks(); - - // Now call the next handler - routingContext.next(); - -}); -``` - -By default, any blocking handlers executed on the same context (e.g. the -same verticle instance) are *ordered* - this means the next one won’t be -executed until the previous one has completed. If you don’t care about -orderering and don’t mind your blocking handlers executing in parallel -you can set the blocking handler specifying `ordered` as false using -`blockingHandler`. - -Note, if you need to process multipart form data from a blocking -handler, you MUST use a non-blocking handler FIRST in order to call -`setExpectMultipart(true)`. Here is an example: - -``` js -router.post("/some/endpoint").handler((ctx) => { - ctx.request().setExpectMultipart(true); - ctx.next(); -}).blockingHandler((ctx) => { - // ... Do some blocking operation -}); -``` - -# Routing by exact path - -A route can be set-up to match the path from the request URI. In this -case it will match any request which has a path that’s the same as the -specified path. - -In the following example the handler will be called for a request -`/some/path/`. We also ignore trailing slashes so it will be called for -paths `/some/path` and `/some/path//` too: - -``` js -let route = router.route().path("/some/path/"); - -route.handler((routingContext) => { - // This handler will be called for the following request paths: - - // `/some/path/` - // `/some/path//` - // - // but not: - // `/some/path` the end slash in the path makes it strict - // `/some/path/subdir` -}); - -// paths that do not end with slash are not strict -// this means that the trailing slash is optional -// and they match regardless -let route2 = router.route().path("/some/path"); - -route2.handler((ctx) => { - // This handler will be called for the following request paths: - - // `/some/path` - // `/some/path/` - // `/some/path//` - // - // but not: - // `/some/path/subdir` -}); -``` - -# Routing by paths that begin with something - -Often you want to route all requests that begin with a certain path. You -could use a regex to do this, but a simply way is to use an asterisk `*` -at the end of the path when declaring the route path. - -In the following example the handler will be called for any request with -a URI path that starts with `/some/path/`. - -For example `/some/path/foo.html` and `/some/path/otherdir/blah.css` -would both match. - -``` js -let route = router.route().path("/some/path/*"); - -route.handler((routingContext) => { - // This handler will be called for any path that starts with - // `/some/path/`, e.g. - - // `/some/path/` - // `/some/path/subdir` - // `/some/path/subdir/blah.html` - // - // but not: - // `/some/path` the path is strict because it ends with slash - // `/some/bath` -}); -``` - -With any path it can also be specified when creating the route: - -``` js -let route = router.route("/some/path/*"); - -route.handler((routingContext) => { - // This handler will be called same as previous example -}); -``` - -# Capturing path parameters - -It’s possible to match paths using placeholders for parameters which are -then available in the request `params`. - -Here’s an example - -``` js -let route = router.route(HttpMethod.POST, "/catalogue/products/:producttype/:productid/"); - -route.handler((routingContext) => { - - let productType = routingContext.request().getParam("producttype"); - let productID = routingContext.request().getParam("productid"); - - // Do something with them... -}); -``` - -The placeholders consist of `:` followed by the parameter name. -Parameter names consist of any alphabetic character, numeric character -or underscore. - -In the above example, if a POST request is made to path: -`/catalogue/products/tools/drill123/` then the route will match and -`productType` will receive the value `tools` and productID will receive -the value `drill123`. - -# Routing with regular expressions - -Regular expressions can also be used to match URI paths in routes. - -``` js -// Matches any path ending with 'foo' -let route = router.route().pathRegex(".*foo"); - -route.handler((routingContext) => { - - // This handler will be called for: - - // /some/path/foo - // /foo - // /foo/bar/wibble/foo - // /bar/foo - - // But not: - // /bar/wibble -}); -``` - -Alternatively the regex can be specified when creating the route: - -``` js -let route = router.routeWithRegex(".*foo"); - -route.handler((routingContext) => { - - // This handler will be called same as previous example - -}); -``` - -# Capturing path parameters with regular expressions - -You can also capture path parameters when using regular expressions, -here’s an example: - -``` js -let route = router.routeWithRegex(".*foo"); - -// This regular expression matches paths that start with something like: -// "/foo/bar" - where the "foo" is captured into param0 and the "bar" is captured into -// param1 -route.pathRegex("\\/([^\\/]+)\\/([^\\/]+)").handler((routingContext) => { - - let productType = routingContext.request().getParam("param0"); - let productID = routingContext.request().getParam("param1"); - - // Do something with them... -}); -``` - -In the above example, if a request is made to path: `/tools/drill123/` -then the route will match and `productType` will receive the value -`tools` and productID will receive the value `drill123`. - -Captures are denoted in regular expressions with capture groups (i.e. -surrounding the capture with round brackets) - -# Using named capture groups - -Using int index param names might be troublesome in some cases. It’s -possible to use named capture groups in the regex path. - -``` js -// This regular expression matches paths that start with something like: "/foo/bar" -// It uses named regex groups to capture path params -let route = router.routeWithRegex("\\/(?[^\\/]+)\\/(?[^\\/]+)").handler((routingContext) => { - - let productType = routingContext.request().getParam("productType"); - let productID = routingContext.request().getParam("productId"); - - // Do something with them... -}); -``` - -In the example above, named capture groups are mapped to path parameters -of the same name as the group. - -Additionally, you can still access group parameters as you would with -normal groups (i.e. `params0, params1…​`) - -# Routing by HTTP method - -By default a route will match all HTTP methods. - -If you want a route to only match for a specific HTTP method you can use -`method` - -``` js -let route = router.route().method(HttpMethod.POST); - -route.handler((routingContext) => { - - // This handler will be called for any POST request - -}); -``` - -Or you can specify this with a path when creating the route: - -``` js -let route = router.route(HttpMethod.POST, "/some/path/"); - -route.handler((routingContext) => { - - // This handler will be called for any POST request to a URI path starting with /some/path/ - -}); -``` - -If you want to route for a specific HTTP method you can also use the -methods such as `get`, `post` and `put` named after the HTTP method -name. For example: - -``` js -router.get().handler((routingContext) => { - - // Will be called for any GET request - -}); - -router.get("/some/path/").handler((routingContext) => { - - // Will be called for any GET request to a path - // starting with /some/path - -}); - -router.getWithRegex(".*foo").handler((routingContext) => { - - // Will be called for any GET request to a path - // ending with `foo` - -}); - -// There are also equivalents to the above for PUT, POST, DELETE, HEAD and OPTIONS -``` - -If you want to specify a route will match for more than HTTP method you -can call `method` multiple times: - -``` js -let route = router.route().method(HttpMethod.POST).method(HttpMethod.PUT); - -route.handler((routingContext) => { - - // This handler will be called for any POST or PUT request - -}); -``` - -# Route order - -By default routes are matched in the order they are added to the router. - -When a request arrives the router will step through each route and check -if it matches, if it matches then the handler for that route will be -called. - -If the handler subsequently calls `next` the handler for the next -matching route (if any) will be called. And so on. - -Here’s an example to illustrate this: - -``` js -let route1 = router.route("/some/path/").handler((routingContext) => { - - let response = routingContext.response(); - // enable chunked responses because we will be adding data as - // we execute over other handlers. This is only required once and - // only if several handlers do output. - response.setChunked(true); - - response.write("route1\n"); - - // Now call the next matching route - routingContext.next(); -}); - -let route2 = router.route("/some/path/").handler((routingContext) => { - - let response = routingContext.response(); - response.write("route2\n"); - - // Now call the next matching route - routingContext.next(); -}); - -let route3 = router.route("/some/path/").handler((routingContext) => { - - let response = routingContext.response(); - response.write("route3"); - - // Now end the response - routingContext.response().end(); -}); -``` - -In the above example the response will contain: - - route1 - route2 - route3 - -As the routes have been called in that order for any request that starts -with `/some/path`. - -If you want to override the default ordering for routes, you can do so -using `order`, specifying an integer value. - -Routes are assigned an order at creation time corresponding to the order -in which they were added to the router, with the first route numbered -`0`, the second route numbered `1`, and so on. - -By specifying an order for the route you can override the default -ordering. Order can also be negative, e.g. if you want to ensure a route -is evaluated before route number `0`. - -Let’s change the ordering of route2 so it runs before route1: - -``` js -let route1 = router.route("/some/path/").order(1).handler((routingContext) => { - - let response = routingContext.response(); - response.write("route1\n"); - - // Now call the next matching route - routingContext.next(); -}); - -let route2 = router.route("/some/path/").order(0).handler((routingContext) => { - - let response = routingContext.response(); - // enable chunked responses because we will be adding data as - // we execute over other handlers. This is only required once and - // only if several handlers do output. - response.setChunked(true); - - response.write("route2\n"); - - // Now call the next matching route - routingContext.next(); -}); - -let route3 = router.route("/some/path/").order(2).handler((routingContext) => { - - let response = routingContext.response(); - response.write("route3"); - - // Now end the response - routingContext.response().end(); -}); -``` - -then the response will now contain: - - route2 - route1 - route3 - -If two matching routes have the same value of order, then they will be -called in the order they were added. - -You can also specify that a route is handled last, with `last` - -Note: Route order can be specified only before you configure an -handler\! - -# Routing based on MIME type of request - -You can specify that a route will match against matching request MIME -types using `consumes`. - -In this case, the request will contain a `content-type` header -specifying the MIME type of the request body. This will be matched -against the value specified in `consumes`. - -Basically, `consumes` is describing which MIME types the handler can -*consume*. - -Matching can be done on exact MIME type matches: - -``` js -// Exact match -router.route().consumes("text/html").handler((routingContext) => { - - // This handler will be called for any request with - // content-type header set to `text/html` - -}); -``` - -Multiple exact matches can also be specified: - -``` js -// Multiple exact matches -router.route().consumes("text/html").consumes("text/plain").handler((routingContext) => { - - // This handler will be called for any request with - // content-type header set to `text/html` or `text/plain`. - -}); -``` - -Matching on wildcards for the sub-type is supported: - -``` js -// Sub-type wildcard match -router.route().consumes("text/*").handler((routingContext) => { - - // This handler will be called for any request with top level type `text` - // e.g. content-type header set to `text/html` or `text/plain` will both match - -}); -``` - -And you can also match on the top level type - -``` js -// Top level type wildcard match -router.route().consumes("*/json").handler((routingContext) => { - - // This handler will be called for any request with sub-type json - // e.g. content-type header set to `text/json` or `application/json` will both match - -}); -``` - -If you don’t specify a `/` in the consumers, it will assume you meant -the sub-type. - -# Routing based on MIME types acceptable by the client - -The HTTP `accept` header is used to signify which MIME types of the -response are acceptable to the client. - -An `accept` header can have multiple MIME types separated by “,”. - -MIME types can also have a `q` value appended to them\* which signifies -a weighting to apply if more than one response MIME type is available -matching the accept header. The q value is a number between 0 and 1.0. -If omitted it defaults to 1.0. - -For example, the following `accept` header signifies the client will -accept a MIME type of only `text/plain`: - -Accept: text/plain - -With the following the client will accept `text/plain` or `text/html` -with no preference. - -Accept: text/plain, text/html - -With the following the client will accept `text/plain` or `text/html` -but prefers `text/html` as it has a higher `q` value (the default value -is q=1.0) - -Accept: text/plain; q=0.9, text/html - -If the server can provide both text/plain and text/html it should -provide the text/html in this case. - -By using `produces` you define which MIME type(s) the route produces, -e.g. the following handler produces a response with MIME type -`application/json`. - -``` java -router.route().produces("application/json").handler((routingContext) => { - - let response = routingContext.response(); - response.putHeader("content-type", "application/json"); - response.write(someJSON).end(); - -}); -``` - -In this case the route will match with any request with an `accept` -header that matches `application/json`. - -Here are some examples of `accept` headers that will match: - -Accept: application/json Accept: application/\* Accept: -application/json, text/html Accept: application/json;q=0.7, -text/html;q=0.8, text/plain - -You can also mark your route as producing more than one MIME type. If -this is the case, then you use `getAcceptableContentType` to find out -the actual MIME type that was accepted. - -``` js -// This route can produce two different MIME types -router.route().produces("application/json").produces("text/html").handler((routingContext) => { - - let response = routingContext.response(); - - // Get the actual MIME type acceptable - let acceptableContentType = routingContext.getAcceptableContentType(); - - response.putHeader("content-type", acceptableContentType); - response.write(whatever).end(); -}); -``` - -In the above example, if you sent a request with the following `accept` -header: - -Accept: application/json; q=0.7, text/html - -Then the route would match and `acceptableContentType` would contain -`text/html` as both are acceptable but that has a higher `q` value. - -# Combining routing criteria - -You can combine all the above routing criteria in many different ways, -for example: - -``` js -let route = router.route(HttpMethod.PUT, "myapi/orders").consumes("application/json").produces("application/json"); - -route.handler((routingContext) => { - - // This would be match for any PUT method to paths starting with "myapi/orders" with a - // content-type of "application/json" - // and an accept header matching "application/json" - -}); -``` - -# Enabling and disabling routes - -You can disable a route with `disable`. A disabled route will be ignored -when matching. - -You can re-enable a disabled route with `enable` - -# Context data - -You can use the context data in the `RoutingContext` to maintain any -data that you want to share between handlers for the lifetime of the -request. - -Here’s an example where one handler sets some data in the context data -and a subsequent handler retrieves it: - -You can use the `put` to put any object, and `get` to retrieve any -object from the context data. - -A request sent to path `/some/path/other` will match both routes. - -``` js -router.get("/some/path").handler((routingContext) => { - - routingContext.put("foo", "bar"); - routingContext.next(); - -}); - -router.get("/some/path/other").handler((routingContext) => { - - let bar = routingContext.get("foo"); - // Do something with bar - routingContext.response().end(); - -}); -``` - -# Reroute - -Until now all routing mechanism allow you to handle your requests in a -sequential way, however there might be times where you will want to go -back. Since the context does not expose any information about the -previous or next handler, mostly because this information is dynamic -there is a way to restart the whole routing from the start of the -current Router. - -``` js -router.get("/some/path").handler((routingContext) => { - - routingContext.put("foo", "bar"); - routingContext.next(); - -}); - -router.get("/some/path/B").handler((routingContext) => { - routingContext.response().end(); -}); - -router.get("/some/path").handler((routingContext) => { - routingContext.reroute("/some/path/B"); -}); -``` - -So from the code you can see that if a request arrives at `/some/path` -if first add a value to the context, then moves to the next handler that -re routes the request to `/some/path/B` which terminates the request. - -You can reroute based on a new path or based on a new path and method. -Note however that rerouting based on method might introduce security -issues since for example a usually safe GET request can become a DELETE. - -Reroute is also allowed on the failure handler, however due to the -nature of re router when called the current status code and failure -reason are reset. In order the rerouted handler should generate the -correct status code if needed, for example: - -``` js -router.get("/my-pretty-notfound-handler").handler((ctx) => { - ctx.response().setStatusCode(404).end("NOT FOUND fancy html here!!!"); -}); - -router.get().failureHandler((ctx) => { - if (ctx.statusCode() === 404) { - ctx.reroute("/my-pretty-notfound-handler"); - } else { - ctx.next(); - } -}); -``` - -It should be clear that reroute works on `paths`, so if you need to -preserve and or add state across reroutes, one should use the -`RoutingContext` object. For example you want to reroute to a new path -with a extra parameter: - -``` js -router.get("/final-target").handler((ctx) => { - // continue from here... -}); - -// THE WRONG WAY! (Will reroute to /final-target excluding the query string) -router.get().handler((ctx) => { - ctx.reroute("/final-target?variable=value"); -}); - -// THE CORRECT WAY! -router.get().handler((ctx) => { - ctx.put("variable", "value").reroute("/final-target"); -}); -``` - -Even though the wrong reroute path will warn you that the query string -is ignored, the reroute will happen since the implementation will strip -any query string or html fragment from the path. - -# Sub-routers - -Sometimes if you have a lot of handlers it can make sense to split them -up into multiple routers. This is also useful if you want to reuse a set -of handlers in a different application, rooted at a different path root. - -To do this you can mount a router at a *mount point* in another router. -The router that is mounted is called a *sub-router*. Sub routers can -mount other sub routers so you can have several levels of sub-routers if -you like. - -Let’s look at a simple example of a sub-router mounted with another -router. - -This sub-router will maintain the set of handlers that corresponds to a -simple fictional REST API. We will mount that on another router. The -full implementation of the REST API is not shown. - -Here’s the sub-router: - -``` js -import { Router } from "@vertx/web" - -let restAPI = Router.router(vertx); - -restAPI.get("/products/:productID").handler((rc) => { - - // TODO Handle the lookup of the product.... - rc.response().write(productJSON); - -}); - -restAPI.put("/products/:productID").handler((rc) => { - - // TODO Add a new product... - rc.response().end(); - -}); - -restAPI.delete("/products/:productID").handler((rc) => { - - // TODO delete the product... - rc.response().end(); - -}); -``` - -If this router was used as a top level router, then GET/PUT/DELETE -requests to urls like `/products/product1234` would invoke the API. - -However, let’s say we already have a web-site as described by another -router: - -``` js -import { Router } from "@vertx/web" -let mainRouter = Router.router(vertx); - -// Handle static resources -mainRouter.route("/static/*").handler(myStaticHandler); - -mainRouter.route(".*\\.templ").handler(myTemplateHandler); -``` - -We can now mount the sub router on the main router, against a mount -point, in this case `/productsAPI` - -``` js -mainRouter.mountSubRouter("/productsAPI", restAPI); -``` - -This means the REST API is now accessible via paths like: -`/productsAPI/products/product1234` - -# Localization - -Vert.x Web parses the `Accept-Language` header and provides some helper -methods to identify which is the preferred locale for a client or the -sorted list of preferred locales by quality. - -``` js -let route = router.get("/localized").handler((rc) => { - // although it might seem strange by running a loop with a switch we - // make sure that the locale order of preference is preserved when - // replying in the users language. - rc.acceptableLanguages().forEach(language => { - return - }); - // we do not know the user language so lets just inform that back: - rc.response().end("Sorry we don't speak: " + rc.preferredLanguage()); -}); -``` - -The main method `acceptableLocales` will return the ordered list of -locales the user understands, if you’re only interested in the user -prefered locale then the helper: `preferredLocale` will return the 1st -element of the list or `null` if no locale was provided by the user. - -# Route match failures - -If no routes match for any particular request, Vert.x-Web will signal an -error depending on match failure: - - - 404 If no route matches the path - - - 405 If a route matches the path but don’t match the HTTP Method - - - 406 If a route matches the path and the method but It can’t provide - a response with a content type matching `Accept` header - - - 415 If a route matches the path and the method but It can’t accept - the `Content-type` - - - 400 If a route matches the path and the method but It can’t accept - an empty body - -You can manually manage those failures using `errorHandler` - -# Error handling - -As well as setting handlers to handle requests you can also set handlers -to handle failures in routing. - -Failure handlers are used with the exact same route matching criteria -that you use with normal handlers. - -For example you can provide a failure handler that will only handle -failures on certain paths, or for certain HTTP methods. - -This allows you to set different failure handlers for different parts of -your application. - -Here’s an example failure handler that will only be called for failure -that occur when routing to GET requests to paths that start with -`/somepath/`: - -``` js -let route = router.get("/somepath/*"); - -route.failureHandler((frc) => { - - // This will be called for failures that occur - // when routing requests to paths starting with - // '/somepath/' - -}); -``` - -Failure routing will occur if a handler throws an exception, or if a -handler calls `fail` specifying an HTTP status code to deliberately -signal a failure. - -If an exception is caught from a handler this will result in a failure -with status code `500` being signalled. - -When handling the failure, the failure handler is passed the routing -context which also allows the failure or failure code to be retrieved so -the failure handler can use that to generate a failure response. - -``` js -let route1 = router.get("/somepath/path1/"); - -route1.handler((routingContext) => { - - // Let's say this throws a RuntimeException - throw "something happened!"; - -}); - -let route2 = router.get("/somepath/path2"); - -route2.handler((routingContext) => { - - // This one deliberately fails the request passing in the status code - // E.g. 403 - Forbidden - routingContext.fail(403); - -}); - -// Define a failure handler -// This will get called for any failures in the above handlers -let route3 = router.get("/somepath/*"); - -route3.failureHandler((failureRoutingContext) => { - - let statusCode = failureRoutingContext.statusCode(); - - // Status code will be 500 for the RuntimeException or 403 for the other failure - let response = failureRoutingContext.response(); - response.setStatusCode(statusCode).end("Sorry! Not today"); - -}); -``` - -For the eventuality that an error occurs when running the error handler -related usage of not allowed characters in status message header, then -the original status message will be changed to the default message from -the error code. This is a tradeoff to keep the semantics of the HTTP -protocol working instead of abruptly creash and close the socket without -properly completing the protocol. - -# Request body handling - -The `BodyHandler` allows you to retrieve request bodies, limit body -sizes and handle file uploads. - -You should make sure a body handler is on a matching route for any -requests that require this functionality. - -The usage of this handler requires that it is installed as soon as -possible in the router since it needs to install handlers to consume the -HTTP request body and this must be done before executing any async call. - -``` js -import { BodyHandler } from "@vertx/web" - -// This body handler will be called for all routes -router.route().handler(BodyHandler.create()); -``` - -If an async call is required before, the `HttpServerRequest` should be -paused and then resumed so that the request events are not delivered -until the body handler is ready to process them. - -``` js -import { BodyHandler } from "@vertx/web" - -router.route().handler((routingContext) => { - - let request = routingContext.request(); - - // Pause the request - request.pause(); - - someAsyncCall((result) => { - - // Resume the request - request.resume(); - - // And continue processing - routingContext.next(); - }); -}); - -// This body handler will be called for all routes -router.route().handler(BodyHandler.create()); -``` - -## Getting the request body - -If you know the request body is JSON, then you can use `getBodyAsJson`, -if you know it’s a string you can use `getBodyAsString`, or to retrieve -it as a buffer use `getBody`. - -## Limiting body size - -To limit the size of a request body, create the body handler then use -`setBodyLimit` to specifying the maximum body size, in bytes. This is -useful to avoid running out of memory with very large bodies. - -If an attempt to send a body greater than the maximum size is made, an -HTTP status code of 413 - `Request Entity Too Large`, will be sent. - -There is no body limit by default. - -## Merging form attributes - -By default, the body handler will merge any form attributes into the -request parameters. If you don’t want this behaviour you can use disable -it with `setMergeFormAttributes`. - -## Handling file uploads - -Body handler is also used to handle multi-part file uploads. - -If a body handler is on a matching route for the request, any file -uploads will be automatically streamed to the uploads directory, which -is `file-uploads` by default. - -Each file will be given an automatically generated file name, and the -file uploads will be available on the routing context with -`fileUploads`. - -Here’s an example: - -``` js -import { BodyHandler } from "@vertx/web" - -router.route().handler(BodyHandler.create()); - -router.post("/some/path/uploads").handler((routingContext) => { - - let uploads = routingContext.fileUploads(); - // Do something with uploads.... - -}); -``` - -Each file upload is described by a `FileUpload` instance, which allows -various properties such as the name, file-name and size to be accessed. - -# Handling cookies - -Vert.x-Web has out of the box cookies support. - -Before 3.8.1, cookie required to use the `CookieHandler` to active this -functionality. - -Since 3.8.1, the `CookieHandler` has been deprecated and should not be -used anymore. - -## Manipulating cookies - -You use `getCookie` to retrieve a cookie by name, or use `cookieMap` to -retrieve the entire set. - -To remove a cookie, use `removeCookie`. - -To add a cookie use `addCookie`. - -The set of cookies will be written back in the response automatically -when the response headers are written so the browser can store them. - -Cookies are described by instances of `Cookie`. This allows you to -retrieve the name, value, domain, path and other normal cookie -properties. - -Here’s an example of querying and adding cookies: - -``` js -import { Cookie } from "@vertx/core" - -let someCookie = routingContext.getCookie("mycookie"); -let cookieValue = someCookie.getValue(); - -// Do something with cookie... - -// Add a cookie - this will get written back in the response automatically -routingContext.addCookie(Cookie.cookie("othercookie", "somevalue")); -``` - -# Handling sessions - -Vert.x-Web provides out of the box support for sessions. - -Sessions last between HTTP requests for the length of a browser session -and give you a place where you can add session-scope information, such -as a shopping basket. - -Vert.x-Web uses session cookies to identify a session. The session -cookie is temporary and will be deleted by your browser when it’s -closed. - -We don’t put the actual data of your session in the session cookie - the -cookie simply uses an identifier to look-up the actual session on the -server. The identifier is a random UUID generated using a secure random, -so it should be effectively unguessable. - -Cookies are passed across the wire in HTTP requests and responses so -it’s always wise to make sure you are using HTTPS when sessions are -being used. Vert.x will warn you if you attempt to use sessions over -straight HTTP. - -To enable sessions in your application you must have a `SessionHandler` -on a matching route before your application logic. - -The session handler handles the creation of session cookies and the -lookup of the session so you don’t have to do that yourself. - -Sessions data is saved to a session store automatically after the -response headers have been sent to the client. But note that, with this -mechanism, there is no guarantee the data is fully persisted before the -client receives the response. There are occasions though when this -guarantee is needed. In this case you can force a flush. This will -disable the automatic saving process, unless the flushing operation -failed. This allows to control the state before completing the response -like: - -``` js -router.route().handler((ctx) => { - sessionHandler.flush(ctx, (flush) => { - if (flush.succeeded()) { - ctx.response().end("Success!"); - } else { - // session wasn't saved... - // go for plan B - } - }); -}); -``` - -## Session stores - -To create a session handler you need to have a session store instance. -The session store is the object that holds the actual sessions for your -application. - -The session store is responsible for holding a secure pseudo random -number generator in order to guarantee secure session ids. This PRNG is -independent of the store which means that given a session id from store -A one cannot derive the session id of store B since they have different -seeds and states. - -By default this PRNG uses a mixed mode, blocking for seeding, non -blocking for generating. The PRNG will also reseed every 5 minutes with -64bits of new entropy. However this can all be configured using the -system properties: - - - io.vertx.ext.auth.prng.algorithm e.g.: SHA1PRNG - - - io.vertx.ext.auth.prng.seed.interval e.g.: 1000 (every second) - - - io.vertx.ext.auth.prng.seed.bits e.g.: 128 - -Most users should not need to configure these values unless if you -notice that the performance of your application is being affected by the -PRNG algorithm. - -Vert.x-Web comes with two session store implementations out of the box, -and you can also write your own if you prefer. - -The implementations are expected to follow the `ServiceLoader` -conventions and all stores that are available at runtime from the -classpath will be exposed. When more than 1 implementations are -available the first one that can be instantiated and configured with -success becomes the default. If none is available, then the default -depends on the mode Vert.x was created. If cluster mode is available the -the clustered session store is the default otherwise the local storage -is the default. - -### Local session store - -With this store, sessions are stored locally in memory and only -available in this instance. - -This store is appropriate if you have just a single Vert.x instance of -you are using sticky sessions in your application and have configured -your load balancer to always route HTTP requests to the same Vert.x -instance. - -If you can’t ensure your requests will all terminate on the same server -then don’t use this store as your requests might end up on a server -which doesn’t know about your session. - -Local session stores are implemented by using a shared local map, and -have a reaper which clears out expired sessions. - -The reaper interval can be configured with a json message with the key: -`reaperInterval`. - -Here are some examples of creating a local `SessionStore` - -``` js -import { LocalSessionStore } from "@vertx/web" - -// Create a local session store using defaults -let store1 = LocalSessionStore.create(vertx); - -// Create a local session store specifying the local shared map name to use -// This might be useful if you have more than one application in the same -// Vert.x instance and want to use different maps for different applications -let store2 = LocalSessionStore.create(vertx, "myapp3.sessionmap"); - -// Create a local session store specifying the local shared map name to use and -// setting the reaper interval for expired sessions to 10 seconds -let store3 = LocalSessionStore.create(vertx, "myapp3.sessionmap", 10000); -``` - -### Clustered session store - -With this store, sessions are stored in a distributed map which is -accessible across the Vert.x cluster. - -This store is appropriate if you’re *not* using sticky sessions, i.e. -your load balancer is distributing different requests from the same -browser to different servers. - -Your session is accessible from any node in the cluster using this -store. - -To you use a clustered session store you should make sure your Vert.x -instance is clustered. - -Here are some examples of creating a clustered `SessionStore` - -``` js -import { ClusteredSessionStore } from "@vertx/web" -import { Vertx } from "@vertx/core" - -// a clustered Vert.x -Vertx.clusteredVertx(new VertxOptions() - .setClustered(true), (res) => { - - let vertx = res.result(); - - // Create a clustered session store using defaults - let store1 = ClusteredSessionStore.create(vertx); - - // Create a clustered session store specifying the distributed map name to use - // This might be useful if you have more than one application in the cluster - // and want to use different maps for different applications - let store2 = ClusteredSessionStore.create(vertx, "myclusteredapp3.sessionmap"); -}); -``` - -## Creating the session handler - -Once you’ve created a session store you can create a session handler, -and add it to a route. You should make sure your session handler is -routed to before your application handlers. - -Here’s an example: - -``` js -import { Router } from "@vertx/web" -import { ClusteredSessionStore } from "@vertx/web" -import { SessionHandler } from "@vertx/web" - -let router = Router.router(vertx); - -// Create a clustered session store using defaults -let store = ClusteredSessionStore.create(vertx); - -let sessionHandler = SessionHandler.create(store); - -// the session handler controls the cookie used for the session -// this includes configuring, for example, the same site policy -// like this, for strict same site policy. -sessionHandler.setCookieSameSite(CookieSameSite.STRICT); - -// Make sure all requests are routed through the session handler too -router.route().handler(sessionHandler); - -// Now your application handlers -router.route("/somepath/blah/").handler((routingContext) => { - - let session = routingContext.session(); - session.put("foo", "bar"); - // etc - -}); -``` - -The session handler will ensure that your session is automatically -looked up (or created if no session exists) from the session store and -set on the routing context before it gets to your application handlers. - -## Using the session - -In your handlers you can access the session instance with `session`. - -You put data into the session with `put`, you get data from the session -with `get`, and you remove data from the session with `remove`. - -The keys for items in the session are always strings. The values can be -any type for a local session store, and for a clustered session store -they can be any basic type, or `Buffer`, `JsonObject`, `JsonArray` or a -serializable object, as the values have to serialized across the -cluster. - -Here’s an example of manipulating session data: - -``` js -router.route().handler(sessionHandler); - -// Now your application handlers -router.route("/somepath/blah").handler((routingContext) => { - - let session = routingContext.session(); - - // Put some data from the session - session.put("foo", "bar"); - - // Retrieve some data from a session - let age = session.get("age"); - - // Remove some data from a session - let obj = session.remove("myobj"); - -}); -``` - -Sessions are automatically written back to the store after after -responses are complete. - -You can manually destroy a session using `destroy`. This will remove the -session from the context and the session store. Note that if there is no -session a new one will be automatically created for the next request -from the browser that’s routed through the session handler. - -## Session timeout - -Sessions will be automatically timed out if they are not accessed for a -time greater than the timeout period. When a session is timed out, it is -removed from the store. - -Sessions are automatically marked as accessed when a request arrives and -the session is looked up and and when the response is complete and the -session is stored back in the store. - -You can also use `setAccessed` to manually mark a session as accessed. - -The session timeout can be configured when creating the session handler. -Default timeout is 30 minutes. - -# Authentication / authorisation - -Vert.x comes with some out-of-the-box handlers for handling both -authentication and authorisation. - -## Creating an auth handler - -To create an auth handler you need an instance of `AuthProvider`. Auth -provider is used for authentication and authorisation of users. Vert.x -provides several auth provider instances out of the box in the -vertx-auth project. For full information on auth providers and how to -use and configure them please consult the auth documentation. - -Here’s a simple example of creating a basic auth handler given an auth -provider. - -``` js -import { LocalSessionStore } from "@vertx/web" -import { SessionHandler } from "@vertx/web" -import { BasicAuthHandler } from "@vertx/web" - -router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx))); - -let basicAuthHandler = BasicAuthHandler.create(authProvider); -``` - -## Handling auth in your application - -Let’s say you want all requests to paths that start with `/private/` to -be subject to auth. To do that you make sure your auth handler is before -your application handlers on those paths: - -``` js -import { LocalSessionStore } from "@vertx/web" -import { SessionHandler } from "@vertx/web" -import { BasicAuthHandler } from "@vertx/web" - -router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)).setAuthProvider(authProvider)); - -let basicAuthHandler = BasicAuthHandler.create(authProvider); - -// All requests to paths starting with '/private/' will be protected -router.route("/private/*").handler(basicAuthHandler); - -router.route("/someotherpath").handler((routingContext) => { - - // This will be public access - no login required - -}); - -router.route("/private/somepath").handler((routingContext) => { - - // This will require a login - - // This will have the value true - let isAuthenticated = (routingContext.user() !== null && routingContext.user() !== undefined); - -}); -``` - -If the auth handler has successfully authenticated and authorised the -user it will inject a `User` object into the `RoutingContext` so it’s -available in your handlers with: `user`. - -If you want your User object to be stored in the session so it’s -available between requests so you don’t have to authenticate on each -request, then you should make sure you have a session handler and a user -session handler on matching routes before the auth handler. - -Once you have your user object you can also programmatically use the -methods on it to authorise the user. - -If you want to cause the user to be logged out you can call `clearUser` -on the routing context. - -## HTTP Basic Authentication - -[HTTP Basic -Authentication](http://en.wikipedia.org/wiki/Basic_access_authentication) -is a simple means of authentication that can be appropriate for simple -applications. - -With basic auth, credentials are sent unencrypted across the wire in -HTTP headers so it’s essential that you serve your application using -HTTPS not HTTP. - -With basic auth, if a user requests a resource that requires -authorisation, the basic auth handler will send back a `401` response -with the header `WWW-Authenticate` set. This prompts the browser to show -a log-in dialogue and prompt the user to enter their username and -password. - -The request is made to the resource again, this time with the -`Authorization` header set, containing the username and password encoded -in Base64. - -When the basic auth handler receives this information, it calls the -configured `AuthProvider` with the username and password to authenticate -the user. If the authentication is successful the handler attempts to -authorise the user. If that is successful then the routing of the -request is allowed to continue to the application handlers, otherwise a -`403` response is returned to signify that access is denied. - -The auth handler can be set-up with a set of authorities that are -required for access to the resources to be granted. - -## Redirect auth handler - -With redirect auth handling the user is redirected to towards a login -page in the case they are trying to access a protected resource and they -are not logged in. - -The user then fills in the login form and submits it. This is handled by -the server which authenticates the user and, if authenticated redirects -the user back to the original resource. - -To use redirect auth you configure an instance of `RedirectAuthHandler` -instead of a basic auth handler. - -You will also need to setup handlers to serve your actual login page, -and a handler to handle the actual login itself. To handle the login we -provide a prebuilt handler `FormLoginHandler` for the purpose. - -Here’s an example of a simple app, using a redirect auth handler on the -default redirect url `/loginpage`. - -``` js -import { LocalSessionStore } from "@vertx/web" -import { SessionHandler } from "@vertx/web" -import { RedirectAuthHandler } from "@vertx/web" -import { FormLoginHandler } from "@vertx/web" -import { StaticHandler } from "@vertx/web" - -router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)).setAuthProvider(authProvider)); - -let redirectAuthHandler = RedirectAuthHandler.create(authProvider); - -// All requests to paths starting with '/private/' will be protected -router.route("/private/*").handler(redirectAuthHandler); - -// Handle the actual login -// One of your pages must POST form login data -router.post("/login").handler(FormLoginHandler.create(authProvider)); - -// Set a static server to serve static resources, e.g. the login page -router.route().handler(StaticHandler.create()); - -router.route("/someotherpath").handler((routingContext) => { - // This will be public access - no login required -}); - -router.route("/private/somepath").handler((routingContext) => { - - // This will require a login - - // This will have the value true - let isAuthenticated = (routingContext.user() !== null && routingContext.user() !== undefined); - -}); -``` - -## JWT authorisation - -With JWT authorisation resources can be protected by means of -permissions and users without enough rights are denied access. You need -to add the `io.vertx:vertx-auth-jwt:${maven.version}` dependency to use -`JWTAuthProvider` - -To use this handler there are 2 steps involved: - - - Setup an handler to issue tokens (or rely on a 3rd party) - - - Setup the handler to filter the requests - -Please note that these 2 handlers should be only available on HTTPS, not -doing so allows sniffing the tokens in transit which leads to session -hijacking attacks. - -Here’s an example on how to issue tokens: - -``` js -import { Router } from "@vertx/web" -import { JWTAuth } from "@vertx/auth-jwt" - -let router = Router.router(vertx); - -let authConfig = new JWTAuthOptions() - .setKeyStore(new KeyStoreOptions() - .setType("jceks") - .setPath("keystore.jceks") - .setPassword("secret")); - -let authProvider = JWTAuth.create(vertx, authConfig); - -router.route("/login").handler((ctx) => { - // this is an example, authentication should be done with another provider... - if ("paulo" == ctx.request().getParam("username") && "secret" == ctx.request().getParam("password")) { - ctx.response().end(authProvider.generateToken({ - "sub" : "paulo" - }, new JWTOptions())); - } else { - ctx.fail(401); - } -}); -``` - -Now that your client has a token all it is required is that forall\* -consequent request the HTTP header `Authorization` is filled with: -`Bearer ` e.g.: - -``` js -import { Router } from "@vertx/web" -import { JWTAuth } from "@vertx/auth-jwt" -import { JWTAuthHandler } from "@vertx/web" - -let router = Router.router(vertx); - -let authConfig = new JWTAuthOptions() - .setKeyStore(new KeyStoreOptions() - .setType("jceks") - .setPath("keystore.jceks") - .setPassword("secret")); - -let authProvider = JWTAuth.create(vertx, authConfig); - -router.route("/protected/*").handler(JWTAuthHandler.create(authProvider)); - -router.route("/protected/somepage").handler((ctx) => { - // some handle code... -}); -``` - -JWT allows you to add any information you like to the token itself. By -doing this there is no state in the server which allows you to scale -your applications without need for clustered session data. In order to -add data to the token, during the creation of the token just add data to -the JsonObject parameter: - -``` js -import { JWTAuth } from "@vertx/auth-jwt" - -let authConfig = new JWTAuthOptions() - .setKeyStore(new KeyStoreOptions() - .setType("jceks") - .setPath("keystore.jceks") - .setPassword("secret")); - -let authProvider = JWTAuth.create(vertx, authConfig); - -authProvider.generateToken({ - "sub" : "paulo", - "someKey" : "some value" -}, new JWTOptions()); -``` - -And the same when consuming: - -``` js -let handler = (rc) => { - let theSubject = rc.user().principal().sub; - let someKey = rc.user().principal().someKey; -}; -``` - -## Configuring required authorities - -With any auth handler you can also configure required authorities to -access the resource. - -By default, if no authorities are configured then it is sufficient to be -logged in to access the resource, otherwise the user must be both logged -in (authenticated) and have the required authorities. - -Here’s an example of configuring an app so that different authorities -are required for different parts of the app. Note that the meaning of -the authorities is determined by the underlying auth provider that you -use. E.g. some may support a role/permission based model but others -might use another model. - -``` js -import { RedirectAuthHandler } from "@vertx/web" - -let listProductsAuthHandler = RedirectAuthHandler.create(authProvider); -listProductsAuthHandler.addAuthority("list_products"); - -// Need "list_products" authority to list products -router.route("/listproducts/*").handler(listProductsAuthHandler); - -let settingsAuthHandler = RedirectAuthHandler.create(authProvider); -settingsAuthHandler.addAuthority("role:admin"); - -// Only "admin" has access to /private/settings -router.route("/private/settings/*").handler(settingsAuthHandler); -``` - -## Chaining multiple auth handlers - -There are times when you want to support multiple authN/authZ mechanisms -in a single application. For this you can use the `ChainAuthHandler`. -The chain auth handler will attempt to perform authentication on a chain -of handlers. The chain works both for AuthN and AuthZ, so if the -authentication is valid at a given handler of the chain, then that same -handler will be used to perform authorization (if requested). - -It is important to know that some handlers require specific providers, -for example: - - - The `JWTAuthHandler` requires `JWTAuth`. - - - The `DigestAuthHandler` requires `HtdigestAuth`. - - - The `OAuth2AuthHandler` requires `OAuth2Auth`. - -So it is not expected that the providers will be shared across all -handlers. There are cases where one can share the provider across -handlers, for example: - - - The `BasicAuthHandler` can take any provider. - - - The `RedirectAuthHandler` can take any provider. - -So say that you want to create an application that accepts both `HTTP -Basic Authentication` and `Form Redirect`. You would start configuring -your chain as: - -``` js -import { ChainAuthHandler } from "@vertx/web" -import { BasicAuthHandler } from "@vertx/web" -import { RedirectAuthHandler } from "@vertx/web" - -let chain = ChainAuthHandler.create(); - -// add http basic auth handler to the chain -chain.append(BasicAuthHandler.create(provider)); -// add form redirect auth handler to the chain -chain.append(RedirectAuthHandler.create(provider)); - -// secure your route -router.route("/secure/resource").handler(chain); -// your app -router.route("/secure/resource").handler((ctx) => { - // do something... -}); -``` - -So when a user makes a request without a `Authorization` header, this -means that the chain will fail to authenticate with the basic auth -handler and will attempt to authenticate with the redirect handler. -Since the redirect handler always redirects you will be sent to the -login form that you configured in that handler. - -Like the normal routing in vertx-web, auth chaning is a sequence, so if -you would prefer to fallback to your browser asking for the user -credentials using HTTP Basic authentication instead of the redirect all -you need to to is reverse the order of appending to the chain. - -Now assume that you make a request where you provide the header -`Authorization` with the value `Basic [token]`. In this case the basic -auth handler will attempt to authenticate and if it is sucessful the -chain will stop and vertx-web will continue to process your handlers. If -the token is not valid, for example bad username/password, then the -chain will continue to the following entry. In this specific case the -redirect auth handler. - -# Serving static resources - -Vert.x-Web comes with an out of the box handler for serving static web -resources so you can write static web servers very easily. - -To serve static resources such as `.html`, `.css`, `.js` or any other -static resource, you use an instance of `StaticHandler`. - -Any requests to paths handled by the static handler will result in files -being served from a directory on the file system or from the classpath. -The default static file directory is `webroot` but this can be -configured. - -In the following example all requests to paths starting with `/static/` -will get served from the directory `webroot`: - -``` js -import { StaticHandler } from "@vertx/web" - -router.route("/static/*").handler(StaticHandler.create()); -``` - -For example, if there was a request with path `/static/css/mystyles.css` -the static serve will look for a file in the directory -`webroot/css/mystyle.css`. - -It will also look for a file on the classpath called -`webroot/css/mystyle.css`. This means you can package up all your static -resources into a jar file (or fatjar) and distribute them like that. - -When Vert.x finds a resource on the classpath for the first time it -extracts it and caches it in a temporary directory on disk so it doesn’t -have to do this each time. - -The handler will handle range aware requests. When a client makes a -request to a static resource, the handler will notify that it can handle -range aware request by stating the unit on the `Accept-Ranges` header. -Further requests that contain the `Range` header with the correct unit -and start and end indexes will then receive partial responses with the -correct `Content-Range` header. - -## Configuring caching - -By default the static handler will set cache headers to enable browsers -to effectively cache files. - -Vert.x-Web sets the headers `cache-control`,`last-modified`, and `date`. - -`cache-control` is set to `max-age=86400` by default. This corresponds -to one day. This can be configured with `setMaxAgeSeconds` if required. - -If a browser sends a GET or a HEAD request with an `if-modified-since` -header and the resource has not been modified since that date, a `304` -status is returned which tells the browser to use its locally cached -resource. - -If handling of cache headers is not required, it can be disabled with -`setCachingEnabled`. - -When cache handling is enabled Vert.x-Web will cache the last modified -date of resources in memory, this avoids a disk hit to check the actual -last modified date every time. - -Entries in the cache have an expiry time, and after that time, the file -on disk will be checked again and the cache entry updated. - -If you know that your files never change on disk, then the cache entry -will effectively never expire. This is the default. - -If you know that your files might change on disk when the server is -running then you can set files read only to false with -`setFilesReadOnly`. - -To enable the maximum number of entries that can be cached in memory at -any one time you can use `setMaxCacheSize`. - -To configure the expiry time of cache entries you can use -`setCacheEntryTimeout`. - -## Configuring the index page - -Any requests to the root path `/` will cause the index page to be -served. By default the index page is `index.html`. This can be -configured with `setIndexPage`. - -## Changing the web root - -By default static resources will be served from the directory `webroot`. -To configure this use `setWebRoot`. - -## Serving hidden files - -By default the serve will serve hidden files (files starting with `.`). - -If you do not want hidden files to be served you can configure it with -`setIncludeHidden`. - -## Directory listing - -The server can also perform directory listing. By default directory -listing is disabled. To enabled it use `setDirectoryListing`. - -When directory listing is enabled the content returned depends on the -content type in the `accept` header. - -For `text/html` directory listing, the template used to render the -directory listing page can be configured with `setDirectoryTemplate`. - -## Disabling file caching on disk - -By default, Vert.x will cache files that are served from the classpath -into a file on disk in a sub-directory of a directory called `.vertx` in -the current working directory. This is mainly useful when deploying -services as fatjars in production where serving a file from the -classpath every time can be slow. - -In development this can cause a problem, as if you update your static -content while the server is running, the cached file will be served not -the updated file. - -To disable file caching you can provide your vert.x options the property -`fileResolverCachingEnabled` to `false`. For backwards compatibility it -will also default that value to the system property -`vertx.disableFileCaching`. E.g. you could set up a run configuration in -your IDE to set this when running your main class. - -# CORS handling - -[Cross Origin Resource -Sharing](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) is -a safe mechanism for allowing resources to be requested from one domain -and served from another. - -Vert.x-Web includes a handler `CorsHandler` that handles the CORS -protocol for you. - -Here’s an example: - -``` js -import { CorsHandler } from "@vertx/web" - -// Will only accept GET requests from origin "vertx.io" -router.route().handler(CorsHandler.create("vertx\\.io").allowedMethod(HttpMethod.GET)); - -router.route().handler((routingContext) => { - - // Your app handlers - -}); -``` - -# Multi Tenant - -There are cases where your application needs to handle more than just 1 -tenant. In this case a helper handler is provided that simplifies -setting up the application. - -In the case the tenant is identified by a HTTP header, say for example -`X-Tenant`, then creating the handler is as simple as: - -``` js -import { MultiTenantHandler } from "@vertx/web" -router.route().handler(MultiTenantHandler.create("X-Tenant")); -``` - -You now should register what handler should be executed for the given -tenant: - -``` js -import { MultiTenantHandler } from "@vertx/web" -MultiTenantHandler.create("X-Tenant").addTenantHandler("tenant-A", (ctx) => { - // do something for tenant A... -}).addTenantHandler("tenant-B", (ctx) => { - // do something for tenant B... -}).addDefaultHandler((ctx) => { - // do something when no tenant matches... -}); -``` - -This is useful for security situations: - -``` js -import { GithubAuth } from "@vertx/auth-oauth2" -import { OAuth2AuthHandler } from "@vertx/web" -import { OAuth2Auth } from "@vertx/auth-oauth2" -import { MultiTenantHandler } from "@vertx/web" -// create an OAuth2 provider, clientID and clientSecret should be requested to github -let gitHubAuthProvider = GithubAuth.create(vertx, "CLIENT_ID", "CLIENT_SECRET"); -// create a oauth2 handler on our running server -// the second argument is the full url to the callback as you entered in your provider management console. -let githubOAuth2 = OAuth2AuthHandler.create(gitHubAuthProvider, "https://myserver.com/github-callback"); -// setup the callback handler for receiving the GitHub callback -githubOAuth2.setupCallback(router.route()); - -// create an OAuth2 provider, clientID and clientSecret should be requested to Google -let googleAuthProvider = OAuth2Auth.create(vertx, new OAuth2ClientOptions() - .setClientID("CLIENT_ID") - .setClientSecret("CLIENT_SECRET") - .setFlow("AUTH_CODE") - .setSite("https://accounts.google.com") - .setTokenPath("https://www.googleapis.com/oauth2/v3/token") - .setAuthorizationPath("/o/oauth2/auth")); - -// create a oauth2 handler on our domain: "http://localhost:8080" -let googleOAuth2 = OAuth2AuthHandler.create(googleAuthProvider, "http://localhost:8080"); - - -MultiTenantHandler.create("X-Tenant").addTenantHandler("tenant-github", githubOAuth2).addTenantHandler("tenant-google", googleOAuth2).addDefaultHandler((ctx) => { - ctx.fail(401); -}); -``` - -# Templates - -Vert.x-Web includes dynamic page generation capabilities by including -out of the box support for several popular template engines. You can -also easily add your own. - -Template engines are described by `TemplateEngine`. In order to render a -template `render` is used. - -The simplest way to use templates is not to call the template engine -directly but to use the `TemplateHandler`. This handler calls the -template engine for you based on the path in the HTTP request. - -By default the template handler will look for templates in a directory -called `templates`. This can be configured. - -The handler will return the results of rendering with a content type of -`text/html` by default. This can also be configured. - -When you create the template handler you pass in an instance of the -template engine you want. Template engines are not embedded in vertx-web -so, you need to configure your project to access them. Configuration is -provided for each template engine. - -Here are some examples: - -``` javascript -var HandlebarsTemplateEngine = require("vertx-web-js/handlebars_template_engine"); -var TemplateHandler = require("vertx-web-js/template_handler"); - -var engine = HandlebarsTemplateEngine.create(); -var handler = TemplateHandler.create(engine); - -// This will route all GET requests starting with /dynamic/ to the template handler -// E.g. /dynamic/graph.hbs will look for a template in /templates/graph.hbs -router.get("/dynamic/*").handler(handler.handle); - -// Route all GET requests for resource ending in .hbs to the template handler -router.getWithRegex(".+\\.hbs").handler(handler.handle); -``` - -## MVEL template engine - -To use MVEL, you need to add the following *dependency* to your project: -`${maven.groupId}:vertx-web-templ-mvel:${maven.version}`. Create an -instance of the MVEL template engine using: -`io.vertx.ext.web.templ.MVELTemplateEngine#create()` - -When using the MVEL template engine, it will by default look for -templates with the `.templ` extension if no extension is specified in -the file name. - -The routing context `RoutingContext` is available in the MVEL template -as the `context` variable, this means you can render the template based -on anything in the context including the request, response, session or -context data. - -Here are some examples: - - The request path is @{context.request().path()} - - The variable 'foo' from the session is @{context.session().get('foo')} - - The value 'bar' from the context data is @{context.get('bar')} - -Please consult the [MVEL templates -documentation](http://mvel.codehaus.org/MVEL+2.0+Templating+Guide) for -how to write MVEL templates. - -## Jade template engine - -To use the Jade template engine, you need to add the following -*dependency* to your project: -`${maven.groupId}:vertx-web-templ-jade:${maven.version}`. Create an -instance of the Jade template engine using: -`io.vertx.ext.web.templ.JadeTemplateEngine#create()`. - -When using the Jade template engine, it will by default look for -templates with the `.jade` extension if no extension is specified in the -file name. - -The routing context `RoutingContext` is available in the Jade template -as the `context` variable, this means you can render the template based -on anything in the context including the request, response, session or -context data. - -Here are some examples: - - !!! 5 - html - head - title= context.get('foo') + context.request().path() - body - -Please consult the [Jade4j -documentation](https://github.com/neuland/jade4j) for how to write Jade -templates. - -## Handlebars template engine - -To use Handlebars, you need to add the following *dependency* to your -project: `${maven.groupId}:vertx-web-templ-handlebars:${maven.version}`. -Create an instance of the Handlebars template engine using: -`io.vertx.ext.web.templ.HandlebarsTemplateEngine#create()`. - -When using the Handlebars template engine, it will by default look for -templates with the `.hbs` extension if no extension is specified in the -file name. - -Handlebars templates are not able to call arbitrary methods in objects -so we can’t just pass the routing context into the template and let the -template introspect it like we can with other template engines. - -Instead, the context `data` is available in the template. - -If you want to have access to other data like the request path, request -params or session data you should add it the context data in a handler -before the template handler. For example: - -``` js -import { TemplateHandler } from "@vertx/web" - -let handler = TemplateHandler.create(engine); - -router.get("/dynamic").handler((routingContext) => { - - routingContext.put("request_path", routingContext.request().path()); - routingContext.put("session_data", routingContext.session().data()); - - routingContext.next(); -}); - -router.get("/dynamic/").handler(handler); -``` - -Please consult the [Handlebars Java port -documentation](https://github.com/jknack/handlebars.java) for how to -write handlebars templates. - -## Thymeleaf template engine - -To use Thymeleaf, you need to add the following *dependency* to your -project: `${maven.groupId}:vertx-web-templ-thymeleaf:${maven.version}`. -Create an instance of the Thymeleaf template engine using: -`io.vertx.ext.web.templ.ThymeleafTemplateEngine#create()`. - -When using the Thymeleaf template engine, it will by default look for -templates with the `.html` extension if no extension is specified in the -file name. - -The routing context `RoutingContext` is available in the Thymeleaf -template as the `context` variable, this means you can render the -template based on anything in the context including the request, -response, session or context data. - -Here are some examples: - - [snip] -

- - io.vertx - vertx-docgen - 0.9.3 - - - io.vertx - vertx-codetrans - ${stack.version} - junit junit diff --git a/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScript.java b/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScript.java deleted file mode 100644 index 87eda4361..000000000 --- a/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScript.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.reactiverse.es4x.codetrans; - -import io.vertx.codetrans.CodeBuilder; -import io.vertx.codetrans.Lang; -import io.vertx.codetrans.Script; - -public class EcmaScript implements Lang { - @Override - public String id() { - return "es4x"; - } - - @Override - public Script loadScript(ClassLoader classLoader, String s, String s1) throws Exception { - throw new UnsupportedOperationException(); - } - - @Override - public String getExtension() { - return "js"; - } - - @Override - public CodeBuilder codeBuilder() { - return new EcmaScriptCodeBuilder(); - } -} diff --git a/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptCodeBuilder.java b/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptCodeBuilder.java deleted file mode 100644 index 72fc9af04..000000000 --- a/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptCodeBuilder.java +++ /dev/null @@ -1,119 +0,0 @@ -package io.reactiverse.es4x.codetrans; - -import com.sun.source.tree.LambdaExpressionTree; -import io.vertx.codegen.type.*; -import io.vertx.codetrans.*; -import io.vertx.codetrans.expression.*; -import io.vertx.codetrans.statement.StatementModel; - -import java.util.Collections; -import java.util.LinkedHashSet; - -import static io.reactiverse.es4x.codegen.generator.Util.getNPMScope; - -class EcmaScriptCodeBuilder implements CodeBuilder { - - LinkedHashSet modules = new LinkedHashSet<>(); - - @Override - public CodeWriter newWriter() { - return new EcmaScriptWriter(this); - } - - @Override - public String render(RunnableCompilationUnit unit, RenderMode renderMode) { - CodeWriter writer = newWriter(); - for (ClassTypeInfo module : modules) { - writer - .append("import { ") - .append(module.getSimpleName()) - .append(" } from \"") - .append( getNPMScope(module.getModule())); - - switch (module.getKind()) { - case DATA_OBJECT: - writer.append("/options"); - break; - case ENUM: - writer.append("/enums"); - break; - } - - writer - .append("\"\n"); - } - unit.getMain().render(writer); - return writer.getBuffer().toString(); - } - - @Override - public ApiTypeModel apiType(ApiTypeInfo type) { - modules.add(type); - return CodeBuilder.super.apiType(type); - } - - @Override - public ExpressionModel toDataObjectValue(EnumFieldExpressionModel enumField) { - return new StringLiteralModel(this, enumField.identifier); - } - - @Override - public ExpressionModel asyncResultHandler(LambdaExpressionTree.BodyKind bodyKind, ParameterizedTypeInfo resultType, String resultName, CodeModel body, CodeModel succeededBody, CodeModel failedBody) { - return new LambdaExpressionModel(this, bodyKind, Collections.singletonList(resultType), Collections.singletonList(resultName), body); - } - - @Override - public StatementModel variableDecl(VariableScope scope, TypeInfo type, String name, ExpressionModel initializer) { - return StatementModel.render(renderer -> { - renderer.append("let ").append(name); - if (initializer != null) { - renderer.append(" = "); - initializer.render(renderer); - } - }); - } - - @Override - public StatementModel enhancedForLoop(String variableName, ExpressionModel expression, StatementModel body) { - return StatementModel.render((renderer) -> { - expression.render(renderer); - renderer.append(".forEach(").append(variableName).append(" => {\n"); - renderer.indent(); - body.render(renderer); - renderer.unindent(); - renderer.append("})"); - }); - } - - @Override - public StatementModel forLoop(StatementModel initializer, ExpressionModel condition, ExpressionModel update, StatementModel body) { - return StatementModel.conditional((renderer) -> { - renderer.append("for ("); - initializer.render(renderer); - renderer.append("; "); - condition.render(renderer); - renderer.append("; "); - update.render(renderer); - renderer.append(") {\n"); - renderer.indent(); - body.render(renderer); - renderer.unindent(); - renderer.append("}"); - }); - } - - @Override - public StatementModel sequenceForLoop(String variableName, ExpressionModel fromValue, ExpressionModel toValue, StatementModel body) { - return StatementModel.conditional((renderer) -> { - renderer.append("for (let ").append(variableName).append(" = "); - fromValue.render(renderer); - renderer.append(";").append(variableName).append(" < "); - toValue.render(renderer); - renderer.append(";").append(variableName).append("++) {\n"); - renderer.indent(); - body.render(renderer); - renderer.unindent(); - renderer.append("}"); - }); - } -} diff --git a/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptWriter.java b/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptWriter.java deleted file mode 100644 index 36a09e914..000000000 --- a/codegen/src/main/java/io/reactiverse/es4x/codetrans/EcmaScriptWriter.java +++ /dev/null @@ -1,461 +0,0 @@ -package io.reactiverse.es4x.codetrans; - -import com.sun.source.tree.LambdaExpressionTree; -import io.vertx.codegen.type.ApiTypeInfo; -import io.vertx.codegen.type.ClassTypeInfo; -import io.vertx.codegen.type.EnumTypeInfo; -import io.vertx.codegen.type.TypeInfo; -import io.vertx.codetrans.CodeModel; -import io.vertx.codetrans.CodeWriter; -import io.vertx.codetrans.MethodSignature; -import io.vertx.codetrans.TypeArg; -import io.vertx.codetrans.expression.*; -import io.vertx.codetrans.statement.StatementModel; - -import javax.lang.model.element.TypeElement; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.stream.IntStream; - -class EcmaScriptWriter extends CodeWriter { - - final EcmaScriptCodeBuilder builder; - - EcmaScriptWriter(EcmaScriptCodeBuilder builder) { - super(builder); - this.builder = builder; - } - - private String capitalize(String string) { - return string.substring(0, 1).toUpperCase() + string.substring(1); - } - - @Override - public void renderBinary(BinaryExpressionModel expression) { - ExpressionModel left = expression.getLeft(); - ExpressionModel right = expression.getRight(); - String op = expression.getOp(); - switch (op) { - case "==": - op = "==="; - if (right instanceof NullLiteralModel) { - ExpressionModel tmp = right; - right = left; - left = tmp; - } - if (left instanceof NullLiteralModel) { - // Todo find a way to suppress these when not needed i.e (( xxx )) - append("("); - right.render(this); - append(" === null || "); - right.render(this); - append(" === undefined)"); - return; - } - break; - case "!=": - if (right instanceof NullLiteralModel) { - ExpressionModel tmp = right; - right = left; - left = tmp; - } - if (left instanceof NullLiteralModel) { - // Todo find a way to suppress these when not needed i.e (( xxx )) - append("("); - right.render(this); - append(" !== null && "); - right.render(this); - append(" !== undefined)"); - return; - } - op = "!=="; - break; - } - super.renderBinary(new BinaryExpressionModel(builder, expression.getLeft(), op, expression.getRight())); - } - - @Override - public void renderStatement(StatementModel statement) { - statement.render(this); - // In javascript, conditional structure should not have an ending ;. This generates an empty instruction. - if (statement instanceof StatementModel.Expression) { - append(";"); - } - append("\n"); - } - - @Override - public void renderTryCatch(StatementModel tryBlock, StatementModel catchBlock) { - append("try {\n"); - indent(); - tryBlock.render(this); - unindent(); - append("} catch(err) {\n"); - indent(); - catchBlock.render(this); - unindent(); - append("}\n"); - } - - @Override - public void renderThis() { - append("this"); - } - - @Override - public void renderNewMap() { - append("{}"); - } - - @Override - public void renderNewList() { - append("[]"); - } - - public void renderDataObject(DataObjectLiteralModel model) { - append("new ").append(model.getType().getSimpleName()).append("()"); - boolean dataModelHasMembers = model.getMembers().iterator().hasNext(); - if (dataModelHasMembers) { - append("\n"); - indent(); - } - final AtomicBoolean needsNL = new AtomicBoolean(); - model.getMembers().forEach(member -> { - if (needsNL.get()) { - append("\n"); - } - append(".set").append(capitalize(member.getName())).append("("); - if (member instanceof Member.Single) { - ((Member.Single) member).getValue().render(this); - } else if (member instanceof Member.Sequence) { - append("["); - IntStream.range(0, ((Member.Sequence) member).getValues().size()).forEach(i -> { - if (i > 0) - append(", "); - ((Member.Sequence) member).getValues().get(i).render(this); - }); - append("]"); - } else if (member instanceof Member.Entries) { - append("todo-renderDataObject-entries"); - } - append(")"); - needsNL.set(true); - }); - if (dataModelHasMembers) { - unindent(); - } - } - - @Override - public void renderDataObjectToJson(IdentifierModel model) { - model.render(this); - } - - @Override - public void renderToDataObject(JsonObjectModel model, ClassTypeInfo type) { - model.render(this); - } - - public void renderJsonObject(JsonObjectLiteralModel jsonObject) { - renderJsonObject(jsonObject.getMembers()); - } - - public void renderJsonArray(JsonArrayLiteralModel jsonArray) { - renderJsonArray(jsonArray.getValues()); - } - - private void renderJsonObject(Iterable members) { - append("{\n"); - indent(); - for (Iterator iterator = members.iterator(); iterator.hasNext(); ) { - Member member = iterator.next(); - String name = member.getName(); - append("\""); - renderChars(name); - append("\" : "); - if (member instanceof Member.Single) { - ((Member.Single) member).getValue().render(this); - } else if (member instanceof Member.Sequence) { - renderJsonArray(((Member.Sequence) member).getValues()); - } else if (member instanceof Member.Entries) { - renderJsonObject(((Member.Entries) member).entries()); - } - if (iterator.hasNext()) { - append(','); - } - append('\n'); - } - unindent().append("}"); - } - - private void renderJsonArray(List values) { - append("[\n").indent(); - for (int i = 0; i < values.size(); i++) { - values.get(i).render(this); - if (i < values.size() - 1) { - append(','); - } - append('\n'); - } - unindent().append(']'); - } - - @Override - public void renderJsonObjectAssign(ExpressionModel expression, String name, ExpressionModel value) { - expression.render(this); - append('.'); - append(name); - append(" = "); - value.render(this); - } - - @Override - public void renderJsonArrayAdd(ExpressionModel expression, ExpressionModel value) { - expression.render(this); - append(".push("); - value.render(this); - append(")"); - } - - @Override - public void renderDataObjectAssign(ExpressionModel expression, String name, ExpressionModel value) { - renderJsonObjectAssign(expression, name, value); - } - - @Override - public void renderJsonObjectMemberSelect(ExpressionModel expression, Class type, String name) { - expression.render(this); - append('.'); - append(name); - } - - @Override - public void renderJsonObjectToString(ExpressionModel expression) { - append("JSON.stringify("); - expression.render(this); - append(")"); - } - - @Override - public void renderJsonArrayToString(ExpressionModel expression) { - append("JSON.stringify("); - expression.render(this); - append(")"); - } - - @Override - public void renderDataObjectMemberSelect(ExpressionModel expression, String name) { - renderJsonObjectMemberSelect(expression, Object.class, name); - } - - @Override - public void renderJsonObjectSize(ExpressionModel expression) { - append("Object.keys("); - expression.render(this); - append(").length"); - } - - @Override - public void renderJsonArraySize(ExpressionModel expression) { - expression.render(this); - append(".length"); - } - - @Override - public void renderLambda(LambdaExpressionTree.BodyKind bodyKind, List parameterTypes, List parameterNames, CodeModel body) { - append("("); - for (int i = 0; i < parameterNames.size(); i++) { - if (i > 0) { - append(", "); - } - append(parameterNames.get(i)); - } - append(") => {\n"); - indent(); - body.render(this); - if (bodyKind == LambdaExpressionTree.BodyKind.EXPRESSION) { - append(";\n"); - } - unindent(); - append("}"); - } - - @Override - public void renderEnumConstant(EnumTypeInfo type, String constant) { - append(type.getSimpleName()).append('.').append(constant); - } - - @Override - public void renderThrow(String throwableType, ExpressionModel reason) { - if (reason == null) { - append("throw ").append("\"an error occured\""); - } else { - append("throw "); - reason.render(this); - } - } - - @Override - public void renderSystemOutPrintln(ExpressionModel expression) { - append("console.log("); - expression.render(this); - append(")"); - } - - @Override - public void renderSystemErrPrintln(ExpressionModel expression) { - append("console.error("); - expression.render(this); - append(")"); - } - - @Override - public void renderListAdd(ExpressionModel list, ExpressionModel value) { - list.render(this); - append(".push("); - value.render(this); - append(")"); - } - - @Override - public void renderListSize(ExpressionModel list) { - list.render(this); - append(".length"); - } - - @Override - public void renderListGet(ExpressionModel list, ExpressionModel index) { - list.render(this); - append("["); - index.render(this); - append("]"); - } - - @Override - public void renderListLiteral(List arguments) { - append("["); - for (Iterator it = arguments.iterator(); it.hasNext(); ) { - it.next().render(this); - if (it.hasNext()) { - append(", "); - } - } - append("]"); - } - - @Override - public void renderMapGet(ExpressionModel map, ExpressionModel key) { - map.render(this); - append('['); - key.render(this); - append(']'); - } - - @Override - public void renderMapPut(ExpressionModel map, ExpressionModel key, ExpressionModel value) { - map.render(this); - append('['); - key.render(this); - append("] = "); - value.render(this); - } - - @Override - public void renderMapForEach(ExpressionModel map, String keyName, TypeInfo keyType, String valueName, TypeInfo valueType, LambdaExpressionTree.BodyKind bodyKind, CodeModel block) { - map.render(this); - append(".forEach("); - renderLambda(bodyKind, Arrays.asList(valueType, keyType), Arrays.asList(valueName, keyName), block); - append(")"); - } - - @Override - public void renderMethodReference(ExpressionModel expression, MethodSignature signature) { - if (!(expression instanceof ThisModel)) { - expression.render(this); - append('.'); - } - append(signature.getName()); - } - - @Override - public void renderApiType(ApiTypeInfo apiType) { - append(apiType.getSimpleName()); - } - - @Override - public void renderJavaType(ClassTypeInfo javaType) { - append("Java.type(\"").append(javaType.getName()).append("\")"); - } - - @Override - public void renderAsyncResultSucceeded(TypeInfo resultType, String name) { - append(name).append(".succeeded()"); - } - - @Override - public void renderAsyncResultFailed(TypeInfo resultType, String name) { - append(name).append(".failed()"); - } - - @Override - public void renderAsyncResultCause(TypeInfo resultType, String name) { - append(name).append(".cause()"); - } - - @Override - public void renderAsyncResultValue(TypeInfo resultType, String name) { - append(name).append(".result()"); - } - - @Override - public void renderMethodInvocation(ExpressionModel expression, TypeInfo receiverType, MethodSignature method, TypeInfo returnType, List typeArguments, List argumentModels, List argumentTypes) { - List parameterTypes = method.getParameterTypes(); - for (int i = 0; i < parameterTypes.size(); i++) { - TypeInfo parameterType = parameterTypes.get(i); - TypeInfo argumentType = argumentTypes.get(i); - if (io.vertx.codetrans.Helper.isHandler(parameterType) && io.vertx.codetrans.Helper.isInstanceOfHandler(argumentType)) { - ExpressionModel expressionModel = argumentModels.get(i); - argumentModels.set(i, builder.render(expressionModel::render)); - } - } - - // - if (!(expression instanceof ThisModel)) { - expression.render(this); - append('.'); - } - append(method.getName()); - append('('); - for (int i = 0; i < argumentModels.size(); i++) { - if (i > 0) { - append(", "); - } - argumentModels.get(i).render(this); - } - append(')'); - } - - @Override - public void renderNew(ExpressionModel expression, TypeInfo type, List argumentModels) { - append("new ("); - expression.render(this); - append(")"); - append('('); - for (int i = 0; i < argumentModels.size(); i++) { - if (i > 0) { - append(", "); - } - argumentModels.get(i).render(this); - } - append(')'); - } - - @Override - public void renderInstanceOf(ExpressionModel expression, TypeElement type) { - expression.render(this); - append(" instanceof "); - append(type.getSimpleName()); - } -} diff --git a/codegen/src/main/java/io/reactiverse/es4x/docgen/generator/ES4XDocGenerator.java b/codegen/src/main/java/io/reactiverse/es4x/docgen/generator/ES4XDocGenerator.java deleted file mode 100644 index bb0d0db55..000000000 --- a/codegen/src/main/java/io/reactiverse/es4x/docgen/generator/ES4XDocGenerator.java +++ /dev/null @@ -1,121 +0,0 @@ -package io.reactiverse.es4x.docgen.generator; - -import io.reactiverse.es4x.codetrans.EcmaScript; -import io.vertx.codegen.annotations.VertxGen; -import io.vertx.codegen.type.*; -import io.vertx.codetrans.CodeTranslator; -import io.vertx.docgen.Coordinate; -import io.vertx.docgen.DocGenerator; - -import javax.annotation.processing.ProcessingEnvironment; -import javax.lang.model.element.*; -import javax.lang.model.util.Elements; -import javax.lang.model.util.Types; - -import static io.reactiverse.es4x.codegen.generator.Util.getNPMScope; - -public class ES4XDocGenerator implements DocGenerator { - - private CodeTranslator translator; - private Elements elementUtils; - private Types typeUtils; - - @Override - public void init(ProcessingEnvironment processingEnv) { - translator = new CodeTranslator(processingEnv); - elementUtils = processingEnv.getElementUtils(); - typeUtils = processingEnv.getTypeUtils(); - } - - @Override - public String getName() { - return "js"; - } - - @Override - public String renderSource(ExecutableElement elt, String source) { - try { - return translator.translate(elt, new EcmaScript()); - } catch (Exception e) { - System.out.println("Cannot generate " + elt.getEnclosingElement().getSimpleName() + "#" + elt.getSimpleName() + " : " + e.getMessage()); - return "Code not translatable"; - } - } - - @Override - public String resolveTypeLink(TypeElement elt, Coordinate coordinate) { - try { - TypeMirrorFactory factory = new TypeMirrorFactory(elementUtils, typeUtils); - TypeInfo type = factory.create(elt.asType()); - - String baselink = getNPMScope(type.getRaw().getModule()); - String kind; - - switch (type.getKind()) { - case ENUM: - kind = "enums"; - break; - case DATA_OBJECT: - kind = "classes"; - break; - case HANDLER: - case ASYNC_RESULT: - kind = "interfaces"; - break; - case API: - boolean concrete = elt.getAnnotation(VertxGen.class) == null || elt.getAnnotation(VertxGen.class).concrete(); - if (concrete) { - kind = "classes"; - } else { - kind = "interfaces"; - } - break; - case OTHER: - return null; - default: - System.err.println("Could not resolve doc link for kind " + type.getKind()); - return null; - } - - return "/es4x/" + baselink + "/" + kind + "/" + elt.getSimpleName().toString().toLowerCase() + ".html"; - } catch (Exception e) { - System.out.println("Could not resolve doc link for type " + elt.getQualifiedName() + ": " + e.getMessage()); - return null; - } - } - - @Override - public String resolveMethodLink(ExecutableElement elt, Coordinate coordinate) { - TypeElement typeElt = (TypeElement) elt.getEnclosingElement(); - String link = resolveTypeLink(typeElt, coordinate); - if (link != null) { - link += '#' + elt.getSimpleName().toString().toLowerCase(); - } - return link; - } - - @Override - public String resolveLabel(Element elt, String defaultLabel) { - return defaultLabel; - } - - @Override - public String resolveConstructorLink(ExecutableElement elt, Coordinate coordinate) { - TypeElement typeElt = (TypeElement) elt.getEnclosingElement(); - String link = resolveTypeLink(typeElt, coordinate); - if (link != null) { - link += '#' + elt.getSimpleName().toString().toLowerCase(); - } - return link; - } - - @Override - public String resolveFieldLink(VariableElement elt, Coordinate coordinate) { - TypeElement typeElt = (TypeElement) elt.getEnclosingElement(); - String link = resolveTypeLink(typeElt, coordinate); - if (link != null) { - link += '#' + elt.getSimpleName().toString().toLowerCase(); - } - return link; - } -} diff --git a/codegen/src/main/resources/META-INF/services/io.vertx.docgen.DocGenerator b/codegen/src/main/resources/META-INF/services/io.vertx.docgen.DocGenerator deleted file mode 100644 index a2ef334d4..000000000 --- a/codegen/src/main/resources/META-INF/services/io.vertx.docgen.DocGenerator +++ /dev/null @@ -1 +0,0 @@ -io.reactiverse.es4x.docgen.generator.ES4XDocGenerator diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 282aea7d2..0990c7545 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -58,10 +58,6 @@ module.exports = { text: 'Advanced', link: '/advanced/' }, - { - text: 'Quick Guides', - link: '/quick-guide/' - }, { text: 'APIs', link: '/api/' @@ -96,24 +92,15 @@ module.exports = { collapsable: false, children: [ '', - 'async-errors', + 'commonjs', + 'esm', + 'vertx', + 'globals', 'worker', 'graphql' ] } ], - '/quick-guide/': [ - { - title: 'Quick Guides', - collapsable: false, - children: [ - '', - 'core/', - 'redis/', - 'unit/', - ] - } - ], '/api/': [ { title: 'APIs', @@ -145,10 +132,6 @@ module.exports = { text: 'Avançado', link: '/advanced/' }, - { - text: 'Guias Rápidos', - link: '/quick-guide/' - }, { text: 'APIs', link: '/api/' @@ -183,24 +166,15 @@ module.exports = { collapsable: false, children: [ '', - 'async-errors', + 'commonjs', + 'esm', + 'vertx', + 'globals', 'worker', 'graphql' ] } ], - '/quick-guide/': [ - { - title: 'Guias Rápidos', - collapsable: false, - children: [ - '', - 'core/', - 'redis/', - 'unit/', - ] - } - ], '/api/': [ { title: 'APIs', @@ -232,10 +206,6 @@ module.exports = { text: '进阶内容', link: '/zh/advanced/' }, - { - text: 'Quick Guides', - link: '/quick-guide/' - }, { text: 'API参考', link: '/api/' @@ -270,24 +240,15 @@ module.exports = { collapsable: false, children: [ '', - 'async-errors', + 'commonjs', + 'esm', + 'vertx', + 'globals', 'worker', 'graphql' ] } ], - '/quick-guide/': [ - { - title: 'Quick Guides', - collapsable: false, - children: [ - '', - 'core/', - 'redis/', - 'unit/', - ] - } - ], '/api/': [ { title: 'API参考', diff --git a/docs/README.md b/docs/README.md index 80dfb5efa..f612535c6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,24 +24,14 @@ footer: MIT Licensed | Copyright © 2018-present Paulo Lopes ### As Easy as 1, 2, 3 ``` bash -# install -yarn global add es4x-pm # OR npm install -g es4x-pm +# (1) create +npm init @es4x project -# create a project file -es4x init +# (2) install dependencies +npm install # OR yarn -# create a hello world -cat << EOF -vertx.createHttpServer() - .requestHandler(req => req.response().end('Hello ES4X world!')) - .listen(8080); -EOF > index.js - -# install dependencies (npm and maven) -yarn # OR npm install - -# run it -yarn start # OR npm start +# (3) run +npm start # OR yarn start ``` ::: warning COMPATIBILITY NOTE diff --git a/docs/advanced/README.md b/docs/advanced/README.md index d8500a16b..5e8457a3a 100644 --- a/docs/advanced/README.md +++ b/docs/advanced/README.md @@ -1,22 +1,29 @@ # GraalVM -ES4X uses GraalVM, however the same code will run either in **interpreted** mode on Java 8, 9, 10 and OpenJ9 or -**compiled** mode on JDK >= 11 (with JVMCI support) or GraalVM. +ES4X uses GraalVM, however the same code will run either in **interpreted** mode on Java 8, 9, 10 and OpenJ9. + +For JDK >= 11 (with JVMCI support) or GraalVM ES4X runs in **compiled** mode. + +::: tip +In order words, please use Java >= 11 or GraalVM. +::: There are benefits on using GraalJS namely the updated language support >=ES6 and support out of the box for generators, promises, etc.... -Java interop follows the **exact** class/method name from Java. For example, the usage of property names to refer to -getters and setters, must use the *getter* and *setter*. For example: +## Differences to Nashorn + +Unlike `Nashorn`, `GraalJS` *java* interop follows the **exact** class/method name from Java. For example, the usage of +property names to refer to getters and setters, must use the *getter* and *setter*. For example: ```java class Hello { private String name; - + public String getName() { return name; } - + public void setName(String name) { this.name = name; } @@ -43,8 +50,16 @@ var name = hello.getName(); hello.setName('Paulo'); ``` +## Threading + +GraalJS is very strict with only a single thread on the JS context at a time. When working with only Asynchronous Vert.x +APIs this shall not be an issue. However other libraries can cause problems. To avoid this limitation, it is advised to +use the `Worker` API or the `EventBus`. + +::: warning GraalJS will not allow multi thread access to the same script context. If there is a need to work with multiple threads, then consider looking at the [Worker API](./worker). +::: ## Native Images diff --git a/docs/advanced/commonjs.md b/docs/advanced/commonjs.md new file mode 100644 index 000000000..067b47f22 --- /dev/null +++ b/docs/advanced/commonjs.md @@ -0,0 +1,43 @@ +# CommonJS + +[CommonJS](http://www.commonjs.org/) module loader, the `require()` function, is also available on ES4X. It is important +to know that this loader is not the same as `nodejs` loader. It is a fork of [npm-jvm](https://github.com/nodyn/jvm-npm) +that is ES4X specific. + +## Specific differences + +Modules can be loaded from the file system or from within `jar` files. The loading process always goes over the +[Vert.x FileSystem](https://vertx.io/docs/vertx-core/java/#_using_the_file_system_with_vert_x). + +## ESM import syntax + +Editors such as [Visual Studio Code](https://code.visualstudio.com/) prefers to auto complete import statement using ESM +syntax. Of course this syntax is not compatible with `commonjs`, however the loader will attempt to adapt the import +statements to `commonjs` if possible. + +Consider the following example: + +```js{1} +import { TestSuite } from '@vertx/unit'; + +const suite = TestSuite.create("the_test_suite"); +// ... +suite.run(); +``` + +This code is not compatible with `commonjs`, however the `require()` function will transform the source code to: + +```js{1} +const TestSuite = require('@vertx/unit').TestSuite; + +const suite = TestSuite.create("the_test_suite"); +// ... +suite.run(); +``` + +::: warning +Even though import statement will be adapted, exports are not. All exports must use the commonjs format: +```js +module.exports = { /* ... */ } +``` +::: diff --git a/docs/advanced/esm.md b/docs/advanced/esm.md new file mode 100644 index 000000000..8bd971f82 --- /dev/null +++ b/docs/advanced/esm.md @@ -0,0 +1,55 @@ +# EcmaScript Modules + +EcmaScript modules are the **official** module format for the JavaScript language. `ESM` are supported by ES4X by using +one of the two options: + +* The initial script has extension `.mjs` +* The initial script is prefixed with: `mjs:` + +## Initial Script + +For the naked eye, the initial script is not that different from the commonjs script, for example `index.mjs`: + +```js +import { Router } from '@vertx/web'; +import { someRoute } from './routes'; + +const app = Router.router(vertx); + +app.route('/').handler(someRoute); + +vertx.createHttpServer() + .requestHandler(app) + .listen(8080); +``` + +In this case the `someRoute` is imported from the `routes.mjs` file: + +```js +export function someRoute(ctx) { + ctx.response() + .end('Hello from ES4X!'); +} +``` + +### Compatibility + +For compatibility reasons, you may have noticed that the `import` statement in the initial script, does not include an +extension: + +```js{2} +import { Router } from '@vertx/web'; +import { someRoute } from './routes'; + +// ... +``` + +This is a small divergence from the official spec where ES4X loader will lookup modules as follows: + +1. Look up the exact file name: `./routes` +2. Look up with `.mjs` suffix: `./routes.mjs` +2. Look up with `.js` suffix: `./routes.js` + +::: warning +When working with `ESM` the `require()` is not available! +::: diff --git a/docs/advanced/async-errors.md b/docs/advanced/globals.md similarity index 53% rename from docs/advanced/async-errors.md rename to docs/advanced/globals.md index 4f5dd50fb..a02fd4be6 100644 --- a/docs/advanced/async-errors.md +++ b/docs/advanced/globals.md @@ -1,4 +1,106 @@ -# Async Error Tracing +# Globals + +GraalJS is a pure JavaScript engine. This means that a few Global Objects (which are not standard but common) are +missing. ES4X tried to add the missing features or Enhanced the defaults as follows: + +## require() + +The official spec does not define the function `require()`, ES4X has it's own implementation as described in +[commonjs](./commonjs.md). + +## setTimeout() + +The `setTimeout()` method sets a timer which executes a function or specified piece of code once the timer expires. +This method is added to the global scope and uses `Vert.x Timers`: + +```js +setTimeout(handler => { + console.log('Hello from the future!') +}, 2000); +``` + +## setInterval() + +The `setInterval()` method sets a timer which executes a function or specified piece of code repeatably the timer. +This method is added to the global scope and uses `Vert.x Timers`: + +```js +setInterval(handler => { + console.log('Hello again from the future!') +}, 2000); +``` + +## setImmediate() + +The `setImmediate()` method executes a function or specified piece of code on the next event loop slot. +This method is added to the global scope and uses `Vert.x executeOnContext()`: + +```js +setImmediate(handler => { + console.log('Hello again from the future!') +}); +``` + +## clearTimeout() + +Clears a timeout. + + +## clearInterval() + +Clears a timeout. + +## clearImmediate() + +::: warning +This function is present to ensure many libraries don't break, **BUT** it has no effect due to the way callbacks are +scheduled on the Vert.x Event Loop. +::: + +## process Object + +The process object (popular by `nodejs`) is also available on ES4X, however it has less properties: + +```js +{ + env, // process environment variables (read only) + pid, // current process id + engine, // constant 'graaljs' + exit, // function that terminates the process with optional error code + nextTick, // enqueue a callback to be executed on the next event loop slot + // NOTE: this behavior is different from nodejs + on, // event emmiter function binding + stdout, // JVM System.out + stderr, // JVM System.err + stdin, // JVM System.in (WARNING this will block the event loop) + properties, // JVM System properties (read, write) + cwd // Function that returns the CWD +} +``` + +## console Object + +Console is added by ES4X. This object has the typical API: + +```js +console.debug('Hello', 'World', '!') +console.info('Hello', 'World', '!') +console.log('Hello', 'World', '!') +console.warn('Hello', 'World', '!') +console.error('Hello', 'World', '!') +``` + +Stack traces (both JS and JVM) can be printed with: + +```js +try { + throw new Error('durp!') +} catch (e) { + console.trace(e); +} +``` + +## Async Error Tracing Imagine the following piece of code: @@ -11,7 +113,7 @@ function one() { } function two(callback) { - setTimeout(function () { + setTimeout(function () { three(function(err) { if(err) return callback(err); console.log("three finished"); @@ -22,7 +124,7 @@ function two(callback) { function three(callback) { - setTimeout(function () { + setTimeout(function () { four(function(err) { if(err) return callback(err); console.log("four finished"); @@ -47,7 +149,7 @@ Error at Timer.callback (example.js:34) ``` -Which is not very useful if you need to debug. +Which is not very useful if you need to debug. In order to ease this there is a bundled module with ES4X that will stitch your exceptions together, every time you would handle a callback instead of passing the @@ -154,3 +256,25 @@ Caused by: java.nio.file.NoSuchFileException: durpa/durp.txt ``` If the error is a Java Throwable. + +## Date + +Many APIs from Vert.x return an `Instant` as temporal type, in order to use it from JS an helper static function is +added to the `Date` object: + +```js +let instant = someJVMInstant +let d = Date.fromInstant(instant) +``` + +## ArrayBuffer + +Array buffers are a builtin type, however if interop is required, then a JVM `ByteArray` should be passed to the +constructor and this allows accessing the underlying buffer without copies involved: + +```js +let javaBuffer = someJavaBuffer +let b = new ArrayBuffer(javaBuffer) +// the underlying buffer can be read using +b.nioByteBuffer +``` diff --git a/docs/advanced/vertx.md b/docs/advanced/vertx.md new file mode 100644 index 000000000..ead03e5d1 --- /dev/null +++ b/docs/advanced/vertx.md @@ -0,0 +1,117 @@ +# Vert.x Interop + +As it should be clear at this point, Vert.x is the IO and default programming model used by ES4X. There are however some +nice improvements to the standard [Vert.x APIs](https://vertx.io). + +## Promise/Future + +Vert.x has 2 types: + +* `io.vertx.core.Future` +* `io.vertx.core.Promise` + +Oddly enough, a Vert.x `Promise` is not the same as a JavaScript `Future`. A Vert.x `Promise` is the writable side of a +Vert.x `Future`. In JavaScript terms: + +* Vert.x `Future` === JavaScript `Promise Like (Thenable)` +* Vert.x `Promise` === JavaScript `Executor Function` + +## async/await + +`async/await` is supported without any need for a compilation step by `GraalVM`. ES4X adds an extra feature to Vert.x +`Future` type. APIs that return a Vert.x `Future` can be used as a `Thenable`, this means that: + +```js +// using the Java API +vertx.createHttpServer() + .listen(0) + .onSuccess(server => { + console.log('Server ready!') + }) + .onFailure(err => { + console.log('Server startup failed!') + }); +``` + +Can be used as a `Thenable`: + +```js +try { + let server = await vertx + .createHttpServer() + .listen(0); + + console.log('Server Ready!'); +} catch (err) { + console.log('Server startup failed!') +} +``` + +:::tip +`async/await` works even with loops, which makes working with asynchronous code quite easy, even mixing JS and Java +code. +::: + +## Type Conversions + +Vert.x is coded in `Java`, however in `JavaScript` we don't need to worry about types as much as with `Java`. ES4X +performs some automated conversions out of the box: + +| Java | TypeScript | +| :--- | ---------: | +| void | void | +| boolean | boolean | +| byte | number | +| short | number | +| int | number | +| long | number | +| float | number | +| double | number | +| char | string | +| boolean[] | boolean[] | +| byte[] | number[] | +| short[] | number[] | +| int[] | number[] | +| long[] | number[] | +| float[] | number[] | +| double[] | number[] | +| char[] | string[] | +| java.lang.Void | void | +| java.lang.Object | any | +| java.lang.Boolean | boolean | +| java.lang.Double | number | +| java.lang.Float | number | +| java.lang.Integer | number | +| java.lang.Long | number | +| java.lang.Short | number | +| java.lang.Char | string | +| java.lang.String | string | +| java.lang.CharSequence | string | +| java.lang.Boolean[] | boolean[] | +| java.lang.Double[] | number[] | +| java.lang.Float[] | number[] | +| java.lang.Integer[] | number[] | +| java.lang.Long[] | number[] | +| java.lang.Short[] | number[] | +| java.lang.Char[] | string[] | +| java.lang.String[] | string[] | +| java.lang.CharSequence[] | string[] | +| java.lang.Object[] | any[] | +| java.lang.Iterable | any[] | +| java.util.function.BiConsumer | <T extends any, U extends any>(arg0: T, arg1: U) => void | +| java.util.function.BiFunction | <T extends any, U extends any, R extends any>(arg0: T, arg1: U) => R | +| java.util.function.BinaryOperator | <T extends any>(arg0: T, arg1: T) => T | +| java.util.function.BiPredicate | <T extends any, U extends any>(arg0: T, arg1: U) => boolean | +| java.util.function.Consumer | <T extends any>(arg0: T) => void | +| java.util.function.Function | <T extends any, R extends any>(arg0: T) => R | +| java.util.function.Predicate | <T extends any>(arg0: T) => boolean | +| java.util.function.Supplier | <T extends any>() => T | +| java.util.function.UnaryOperator | <T extends any>(arg0: T) => T | +| java.time.Instant | Date | +| java.time.LocalDate | Date | +| java.time.LocalDateTime | Date | +| java.time.ZonedDateTime | Date | +| java.lang.Iterable<T> | <T>[] | +| java.util.Collection<T> | <T>[] | +| java.util.List<T> | <T>[] | +| java.util.Map<K, V> | { [key: <K>]: <V> } | diff --git a/docs/api/README.md b/docs/api/README.md index ba6c358a6..ba4af6d58 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -2,60 +2,98 @@ ## Vertx -* [core](/@vertx/core/index.html) -* [amqp-bridge](/@vertx/amqp-bridge/index.html) -* [auth-common](/@vertx/auth-common/index.html) -* [auth-digest](/@vertx/auth-digest/index.html) -* [auth-jdbc](/@vertx/auth-jdbc/index.html) -* [auth-jwt](/@vertx/auth-jwt/index.html) -* [auth-mongo](/@vertx/auth-mongo/index.html) -* [auth-oauth2](/@vertx/auth-oauth2/index.html) -* [auth-shiro](/@vertx/auth-shiro/index.html) -* [bridge-common](/@vertx/bridge-common/index.html) -* [camel-bridge](/@vertx/camel-bridge/index.html) -* [circuit-breaker](/@vertx/circuit-breaker/index.html) -* [cofig-redis](/@vertx/cofig-redis/index.html) -* [config](/@vertx/config/index.html) -* [config-consul](/@vertx/config-consul/index.html) -* [config-git](/@vertx/config-git/index.html) -* [config-hocon](/@vertx/config-hocon/index.html) -* [config-kubernetes-configmap](/@vertx/config-kubernetes-configmap/index.html) -* [config-spring-config-server](/@vertx/config-spring-config-server/index.html) -* [config-vault](/@vertx/config-vault/index.html) -* [config-yaml](/@vertx/config-yaml/index.html) -* [config-zookeeper](/@vertx/config-zookeeper/index.html) -* [consul-client](/@vertx/consul-client/index.html) -* [dropwizard-metrics](/@vertx/dropwizard-metrics/index.html) -* [hawkular-metrics](/@vertx/hawkular-metrics/index.html) -* [health-check](/@vertx/health-check/index.html) -* [jdbc-client](/@vertx/jdbc-client/index.html) -* [kafka-client](/@vertx/kafka-client/index.html) -* [mail-client](/@vertx/mail-client/index.html) -* [mongo-client](/@vertx/mongo-client/index.html) -* [mysql-postgresql-client](/@vertx/mysql-postgresql-client/index.html) -* [rabbitmq-client](/@vertx/rabbitmq-client/index.html) -* [redis-client](/@vertx/redis-client/index.html) -* [service-discovery](/@vertx/service-discovery/index.html) -* [service-discovery-backend-consul](/@vertx/service-discovery-backend-consul/index.html) -* [service-discovery-backend-redis](/@vertx/service-discovery-backend-redis/index.html) -* [service-discovery-backend-zookeeper](/@vertx/service-discovery-backend-zookeeper/index.html) -* [service-discovery-bridge-consul](/@vertx/service-discovery-bridge-consul/index.html) -* [service-discovery-bridge-docker](/@vertx/service-discovery-bridge-docker/index.html) -* [service-discovery-bridge-docker-links](/@vertx/service-discovery-bridge-docker-links/index.html) -* [service-discovery-bridge-kubernetes](/@vertx/service-discovery-bridge-kubernetes/index.html) -* [service-discovery-bridge-zookeeper](/@vertx/service-discovery-bridge-zookeeper/index.html) -* [shell](/@vertx/shell/index.html) -* [sql-common](/@vertx/sql-common/index.html) -* [stomp](/@vertx/stomp/index.html) -* [tcp-eventbus-bridge](/@vertx/tcp-eventbus-bridge/index.html) -* [unit](/@vertx/unit/index.html) -* [vertx-mqtt](/@vertx/vertx-mqtt/index.html) -* [web](/@vertx/web/index.html) -* [web-api-contract](/@vertx/web-api-contract/index.html) -* [web-client](/@vertx/web-client/index.html) -* [web-common](/@vertx/web-common/index.html) +The Vert.x core APIs contain the backbone for writing Vert.x applications and low-level support for HTTP, TCP, UDP, +file system, asynchronous streams and many other building blocks. It is also used by many other components of Vert.x. + +* [core](/@vertx/core) + +## Web + +A tool-kit for writing sophisticated modern web applications and HTTP microservices. + +* [web](/@vertx/web) +* [web-api-contract](/@vertx/web-api-contract) +* [web-client](/@vertx/web-client) +* [web-common](/@vertx/web-common) + +## Authentication / Authorization + +Modules to perform authentication and/or authorization. + +* [auth-common](/@vertx/auth-common) +* [auth-digest](/@vertx/auth-digest) +* [auth-jdbc](/@vertx/auth-jdbc) +* [auth-jwt](/@vertx/auth-jwt) +* [auth-mongo](/@vertx/auth-mongo) +* [auth-oauth2](/@vertx/auth-oauth2) +* [auth-shiro](/@vertx/auth-shiro) + +## Data Access + +Modules for accessing data. + +* [sql-common](/@vertx/sql-common) +* [jdbc-client](/@vertx/jdbc-client) +* [kafka-client](/@vertx/kafka-client) +* [mongo-client](/@vertx/mongo-client) +* [redis-client](/@vertx/redis-client) + +## Monitoring + +Modules to work with monitoring tools. + +* [dropwizard-metrics](/@vertx/dropwizard-metrics) +* [hawkular-metrics](/@vertx/hawkular-metrics) + +## Microservices + +Microservice related modules. + +* [circuit-breaker](/@vertx/circuit-breaker) +* [cofig-redis](/@vertx/cofig-redis) +* [config](/@vertx/config) +* [config-consul](/@vertx/config-consul) +* [config-git](/@vertx/config-git) +* [config-hocon](/@vertx/config-hocon) +* [config-kubernetes-configmap](/@vertx/config-kubernetes-configmap) +* [config-spring-config-server](/@vertx/config-spring-config-server) +* [config-vault](/@vertx/config-vault) +* [config-yaml](/@vertx/config-yaml) +* [config-zookeeper](/@vertx/config-zookeeper) +* [consul-client](/@vertx/consul-client) +* [health-check](/@vertx/health-check) +* [mysql-postgresql-client](/@vertx/mysql-postgresql-client) +* [service-discovery](/@vertx/service-discovery) +* [service-discovery-backend-consul](/@vertx/service-discovery-backend-consul) +* [service-discovery-backend-redis](/@vertx/service-discovery-backend-redis) +* [service-discovery-backend-zookeeper](/@vertx/service-discovery-backend-zookeeper) +* [service-discovery-bridge-consul](/@vertx/service-discovery-bridge-consul) +* [service-discovery-bridge-docker](/@vertx/service-discovery-bridge-docker) +* [service-discovery-bridge-docker-links](/@vertx/service-discovery-bridge-docker-links) +* [service-discovery-bridge-kubernetes](/@vertx/service-discovery-bridge-kubernetes) +* [service-discovery-bridge-zookeeper](/@vertx/service-discovery-bridge-zookeeper) + +## EventBus Bridges + +EventBus bridge modules. + +* [amqp-bridge](/@vertx/amqp-bridge) +* [bridge-common](/@vertx/bridge-common) +* [camel-bridge](/@vertx/camel-bridge) +* [tcp-eventbus-bridge](/@vertx/tcp-eventbus-bridge) + +## Other + +Other uncategorized modules. + +* [mail-client](/@vertx/mail-client) +* [shell](/@vertx/shell) +* [stomp](/@vertx/stomp) +* [unit](/@vertx/unit) +* [vertx-mqtt](/@vertx/vertx-mqtt) +* [rabbitmq-client](/@vertx/rabbitmq-client) ## Reactiverse -* [reactive-pg-client](/@reactiverse/reactive-pg-client/index.html) -* [elasticsearch-client](/@reactiverse/elasticsearch-client/index.html) +* [reactive-pg-client](/@reactiverse/reactive-pg-client) +* [elasticsearch-client](/@reactiverse/elasticsearch-client) diff --git a/docs/get-started/README.md b/docs/get-started/README.md index e9b398848..feaafdbf8 100644 --- a/docs/get-started/README.md +++ b/docs/get-started/README.md @@ -5,28 +5,30 @@ the help of [vert.x](https://vertx.io). JavaScript is the runtime language but i ## How it Works -Developing ES4X applications is not different than developing any other `JavaScript` application. A project is defined -using a `package.json` file. Project dependencies are fetched from [npm](https://www.npmjs.com/) and **also** from -[maven central](https://search.maven.org/). +Developing ES4X applications is not different from developing any other `JavaScript` application. The `package.json` +file defines a project. A project will use and fetch dependencies from 2 different sources: -ES4X makes use of [GraalVM](https://www.graalvm.org) which is a polyglot runtime on the JVM. This means it is possible -to use any JVM language as well as `JavaScript` in applications. +* [npm](https://www.npmjs.com/) +* **and** [maven central](https://search.maven.org/) + +ES4X makes use of [GraalVM](https://www.graalvm.org) which is a polyglot runtime on the JVM. This means +it is possible to use any JVM language as well as `JavaScript` in applications. Vert.x is used by ES4X in order to provide an optimized event loop and high performance IO library. Using `Java` from -the `JavaScript` however it can be tedious as there's no way for IDEs to infer type information or APIs out of the box. -For this reason ES4X has a few packages published on `npmjs` that make the development easier by providing a small -`shim` to map the `Java` API to `JavaScript` plus the full API as `TypeScript` `.d.ts` definition files. +`JavaScript` can be tedious as there's no way for IDEs to infer type information or APIs out of the box. For this reason +ES4X has a few packages published on `npm` that make the development easier by providing a small `shim` to map the +`Java` API to `JavaScript` plus the full API as `TypeScript` `.d.ts` definition files. ## Performance -ES4X is **the fastest** `JavaScript` according to TechEmpower Frameworks Benchmark +ES4X was **the fastest** `JavaScript` according to TechEmpower Frameworks Benchmark [Round #18](https://www.techempower.com/benchmarks/#section=data-r18). ES4X is the fastest on all tests when compared to `JavaScript` frameworks: ![round-18-js](./res/round-18-js.png) -And ES4X is on the top #10 among all other frameworks in several tests, showing better performance than the most popular -JVM frameworks: +And ES4X was on the top #10 among all other frameworks in several tests, showing better performance than the most +popular JVM frameworks: ![round-18-js](./res/round-18.png) diff --git a/docs/get-started/hello-world.md b/docs/get-started/hello-world.md index ca75d577d..e7b1c295a 100644 --- a/docs/get-started/hello-world.md +++ b/docs/get-started/hello-world.md @@ -19,7 +19,7 @@ $ es4x hello-es4x.js ::: tip In UNIX systems, scripts can be made executable and the shebang `#!/usr/bin/env es4x` used which will make them -auto-runnable. +auto-runnable. Note however that the dependencies should be already present in the current working directory. ::: And in a second terminal: @@ -46,21 +46,25 @@ mkdir myapp cd myapp # create the project -es4x init +es4x project ``` A project is a `package.json` file with a few items already pre configured: -```json{7-9,12} +```json{7-9,11-17} { "version" : "1.0.0", "description" : "This is a ES4X empty project.", "name" : "myapp", "main" : "index.js", "scripts" : { - "test" : "es4x-launcher test index.test.js", + "test" : "es4x test index.test.js", "postinstall" : "es4x install", - "start" : "es4x-launcher" + "start" : "es4x" + }, + "dependencies": { + "@vertx/create": "latest", + "@vertx/unit": "latest" }, "dependencies": { "@vertx/core": "latest" @@ -71,18 +75,23 @@ A project is a `package.json` file with a few items already pre configured: } ``` +::: tip +For `TypeScript` projects, run the project create tool with: `es4x --ts` +::: + The `post-install` hook will delegate to es4x to resolve all `maven` maven dependencies and create the `es4x-launcher` script. ::: tip -The `es4x-launcher` script will ensure that the application is run or tested using es4x and not `nodejs`. +The `es4x-launcher` script will ensure that the application runs using es4x and not `nodejs`. This script can be used +in production, where you can avoid `@vertx/create` package. ::: ### create-vertx-app -With the `create-vertx-app` you can quickly bootstrap your ES4X TypeScript or JavaScript -application with a new keystrokes. If GUI is the preferred way to create applications, then -the same generator can be used as a [PWA](https://vertx-starter.jetdrone.xyz/#npm). +With the `create-vertx-app` you can quickly bootstrap your ES4X TypeScript or JavaScript application with a few +keystrokes. If GUI is the preferred way to create applications, then the same generator can be used as a + [PWA](https://vertx-starter.jetdrone.xyz/#npm). @@ -92,11 +101,10 @@ Adding dependencies is not different from what `JavaScript` developers are used ```bash # add other dependencies... -yarn add -D @vertx/unit # OR npm install @vertx/unit --save-dev -yarn add @vertx/web # OR npm install @vertx/web --save-prod +npm install @vertx/unit --save-dev # OR yarn add -D @vertx/unit +npm install @vertx/web --save-prod # OR yarn add @vertx/web -# will trigger the download -# of the java dependencies +# will trigger the download of the npm + java dependencies npm install ``` @@ -119,7 +127,7 @@ script should be: The hello application `index.js` should be like: -```js{3} +```js{1-2} /// // @ts-check import { Router } from '@vertx/web'; @@ -134,7 +142,7 @@ app.route('/').handler(ctx => { vertx.createHttpServer() .requestHandler(app) .listen(8080); - + console.log('Server listening at: http://localhost:8080/') ``` diff --git a/docs/get-started/install.md b/docs/get-started/install.md index c305a9df5..5e1f18cc6 100644 --- a/docs/get-started/install.md +++ b/docs/get-started/install.md @@ -1,18 +1,28 @@ # Install Assuming you’ve already installed [Node.js](https://nodejs.org/) and ([Java](https://adoptopenjdk.net/) or -[GraalVM](http://www.graalvm.org/)), install the project management utilities development tool. +[GraalVM](http://www.graalvm.org/)), optionally install the project management utilities development tool. ## Using NPM ```bash -yarn global add es4x-pm # OR npm install -g es4x-pm +npm install -g @es4x/create # OR yarn global add @es4x/create ``` -::: tip -Using `npm` should be the preferred way to install as it allows easy upgrades and should be portable across different -*Operating Systems*. -::: +The package will install a `es4x` command globally that can be used to create projects and perform other tasks. To know +more about the tool: + +```bash +es4x --help +``` + +### Using NPX + +The same package can be used as a one-shot operation with `npx`. In this case refer to it as: + +```bash +npx @es4x/create --help +``` ## OS package @@ -28,6 +38,11 @@ ES4X='0.9.0' \ For Windows Operating Systems the same can be done using a `zip` file instead. +::: tip +Using `npm` should be the preferred way to install as it allows easy upgrades and should be portable across different +*Operating Systems*. +::: + ## Verify the installation @@ -43,7 +58,7 @@ Commands: bare Creates a bare instance of vert.x. dockerfile Creates a generic Dockerfile for building and deploying the current project. - init Initializes the 'package.json' to work with ES4X. + project Initializes the 'package.json' to work with ES4X. install Installs required jars from maven to 'node_modules'. list List vert.x applications run Runs a JS script called in its own instance of diff --git a/docs/get-started/package.md b/docs/get-started/package.md index 729907d17..08d91a4e7 100644 --- a/docs/get-started/package.md +++ b/docs/get-started/package.md @@ -10,7 +10,7 @@ npm pack location. However applications can also be [published](https://docs.npmjs.com/cli/publish) to a NPM registry. It is important to notice that in order to work with `published/packed` the target environment needs to have access to -the package [es4x-pm](https://www.npmjs.com/package/es4x-pm) as it will be required to install the `java` bits. +the package [@es4x/create](https://www.npmjs.com/package/@es4x/create) as it will be required to install the `java` bits. ## Docker @@ -48,7 +48,7 @@ This will produce a **optimized** runtime, which means it can be used instead of As comparision, a hello world application will produce a runtime weighting about **80Mb**, while a full JDK installation requires around **200Mb**. -This feature can be using in colaboration with `Dockerfile`. Instead of using the graal base image, use the `OpenJDK` +This feature can be using in collaboration with `Dockerfile`. Instead of using the graal base image, use the `OpenJDK` base image. Then on the second stage, run jlink: ```dockerfile @@ -87,4 +87,4 @@ ENV JAVA_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap ENTRYPOINT [ "./node_modules/.bin/es4x-launcher" ] ``` -This will produce a small final image but a larger layer as you're packaging the optimized runtime too. +This will produce a small final image, but a larger layer as you're packaging the optimized runtime too. diff --git a/docs/get-started/run.md b/docs/get-started/run.md index d663d42fc..59b7b4617 100644 --- a/docs/get-started/run.md +++ b/docs/get-started/run.md @@ -4,7 +4,7 @@ ES4X application should create a `es4x-launcher` during the install phase of `np running: ```bash -yarn # OR npm install +npm install # OR yarn ``` ::: tip @@ -14,7 +14,7 @@ The launcher should be created in `node_modules/.bin/es4x-lancher.*`. Running the application is now as simple as:: ```bash -yarn start # OR npm start +npm start # OR yarn start ``` This command replaces the default `npm` operation by running the application on the JVM runtime and using the *Hello @@ -72,4 +72,4 @@ Same as with the number of verticles, an ES4X application can be clustered as si ./node_modules/.bin/es4x-launcher -cluster ``` -To know more about clustering please read the official vert.x documentation. +To know more about clustering please read the official [vert.x](https://www.vertx.io) documentation. diff --git a/docs/get-started/shell.md b/docs/get-started/shell.md index 27d3e9c0e..c3748c97c 100644 --- a/docs/get-started/shell.md +++ b/docs/get-started/shell.md @@ -25,3 +25,7 @@ java -jar es4x-launcher.jar run "js:>" ``` A bootstrapped shell will be available to run your code with all the components available in your classpath. + +::: warning +The REPL will not be able to use `MJS` modules references as those are computed at initialization time. +::: diff --git a/docs/get-started/test.md b/docs/get-started/test.md index 5d262f92b..43b3dcdfd 100644 --- a/docs/get-started/test.md +++ b/docs/get-started/test.md @@ -4,10 +4,10 @@ In order to test code a test framework should be added to the project, since ver [vert.x unit](https://github.com/vert-x3/vertx-unit), we can add it easily with: ```bash -yarn add -D @vertx/unit # OR npm install @vertx/unit --save-dev +npm install @vertx/unit --save-dev # OR yarn add -D @vertx/unit # ensure es4x fetches the non npm dependencies -yarn # OR npm install +npm install # OR yarn ``` ## Writing test @@ -41,7 +41,7 @@ suite.run(); This command replaces the default `npm` operation by running the application on the JVM runtime. ```bash -Running: java ... +Running: java ... Begin test suite the_test_suite Begin test my_test_case Passed my_test_case @@ -55,7 +55,7 @@ In order to run tests using `npm`/`yarn` the `test` script must be present in th { ... "scripts" : { - "test" : "es4x-launcher test index.test.js", + "test" : "es4x test index.test.js", ... } ``` diff --git a/docs/quick-guide/README.md b/docs/quick-guide/README.md deleted file mode 100644 index 05db79c0b..000000000 --- a/docs/quick-guide/README.md +++ /dev/null @@ -1,222 +0,0 @@ -# Quick Guides - -In this area you will find some _byte_ size examples that can help you get quickly started with **ES4X**. - -## Core - -### Vert.x Core - -The Vert.x core APIs contain the backbone for writing Vert.x applications and low-level support for HTTP, TCP, UDP, file system, asynchronous streams and many other building blocks. It is also used by many other components of Vert.x. - -[Core Examples](./core) - -## Web - -### Vert.x Web - -A tool-kit for writing sophisticated modern web applications and HTTP microservices. - -### Web Client - -An easy-to-use client for HTTP and HTTP/2 with many advanced features. - -### Web Validation - -A library to declaratively parse and validate incoming Vert.x Web HTTP requests. - -### Web OpenAPI - -Extends Vert.x Web to support OpenAPI 3, bringing a simple interface for building web routers that conform to OpenAPI contracts. - -### Web API Service (Technical Preview) - -Directly connect your OpenAPI 3 web routers to event-bus services. - -### GraphQL (Technical Preview) - -Implement GraphQL servers with Vert.x web. - -## Clustering - -### Hazelcast Clustering - -Cluster manager implementation that uses Hazelcast. - -### Infinispan Clustering - -Cluster manager implementation that uses Infinispan. - -### Apache Ignite Clustering - -Cluster manager implementation that uses Apache Ignite. - -## Testing - -### Vert.x Unit - -A unit testing tool-kit designed to work with asynchronous code. Includes JUnit 4 support. - -[Unit Examples](./unit) - -## Standards -### JSON Schema - -An extensible implementation of the Json Schema specification to validate every JSON data structure, asynchronously. - -## Authentication and authorization -### Auth common - -Common APIs for authentication and authorization for your Vert.x applications, backed by several providers. - -### Oauth2 Auth - -OAuth2 (and to some extent OpenID Connect) implementation. - -### JWT Auth - -JSON web tokens (JWT) implementation. - -### Webauthn Auth (Technical Preview) - -FIDO2 WebAuthn (password-less) implementation. - -### SQL Client Auth - -Authentication and authorization support based on the Vert.x SQL client and a relational database. - -### MongoDB Auth - -Authentication and authorization support based on MongoDB. - -### Properties Auth - -Authentication and authorization support based on Java properties files. - -### LDAP Auth - -Implementation using JDK built-in LDAP capabilities. - -### .htpasswd Auth - -Authentication and authorization support based on .htpasswd files. - -### .htdigest Auth - -Authentication and authorization support based on .htdigest files. - -## Databases -### PostgreSQL Client (Technical Preview) - -A PostgreSQL client focusing on scalability and low overhead. - -### MySQL Client (Technical Preview) - -A lightweight, event-driven client for MySQL. - -### SQL Client Templates - -A small library designed to facilitate the execution and data manipulation of SQL queries. - -### MongoDB Client - -MongoDB client. - -### Redis Client - -Redis client. - -[Redis Examples](./redis) - -### Cassandra Client - -Apache Cassandra client. - -### JDBC client - -JDBC support for Vert.x. - -## Messaging -### Kafka client - -A client for Apache Kafka. - -### AMQP Client (Technical Preview) - -A client for AMQP 1.0 brokers and routers. - -### RabbitMQ Client - -A client for RabbitMQ brokers. - -### MQTT - -A client and server for MQTT, compliant with MQTT 3.1.1. - -## Integration -### Mail Client - -A SMTP client to send emails from your applications. - -### STOMP - -A client and server implementation of the STOMP protocol. - -### Consul client - -A client for Consul. - -## Event bus bridges -### TCP Eventbus Bridge - -An event-bus bridge that lets you interact with Vert.x from any application over a simple TCP-based protocol. - -### Camel Bridge - -An event-bus bridge that lets you interact with Apache Camel endpoints and routes. - -## Monitoring -### Zipkin - -Distributed tracing with Zipkin. - -### OpenTracing - -Distributed tracing with OpenTracing. - -### Metrics using Dropwizard - -Captures metrics from Vert.x core components and exposes them using Dropwizard. - -### Metrics using Micrometer - -Captures metrics from Vert.x core components and exposes them using Micrometer. - -### Health Check - -A simple API to expose health checks over HTTP. - -## Services -### gRPC - -Implement gRPC clients and servers with Vert.x. - -### Service Proxies - -Proxies allow remote event bus services to be called as if they were local. - -### SockJS Service Proxies - -Allow event bus services to be called from JavaScript (web browser or Node.js). - -## Microservices -### Service Discovery - -Publish, lookup and bind any type of service. - -### Config - -An extensible way to configure Vert.x applications. - -### Circuit Breaker - -Implementation of the circuit-breaker pattern to mitigate failures. diff --git a/docs/quick-guide/core/README.md b/docs/quick-guide/core/README.md deleted file mode 100644 index 4d446f88c..000000000 --- a/docs/quick-guide/core/README.md +++ /dev/null @@ -1,423 +0,0 @@ ---- -prev: ../ -next: false -sidebarDepth: 2 ---- - -# Vert.x core examples - -Here you will find examples demonstrating Vert.x core in action. - -Vert.x core provides fairly low level functionality for a diverse range of functions including HTTP, TCP, UDP, -WebSockets, file system access, timers, verticles and more. For detailed documentation, consult the -Vert.x [core manual](https://vertx.io/docs). - - -## Project setup - -To use es4x your own project use the following project as a template: - -<<< @/docs/quick-guide/core/package.json - -## Net examples - -These examples demonstrate usage of Vert.x net servers and clients - these are used for TCP (and SSL) servers and clients. - -### Echo - -This example consists of an echo server verticle which serves TCP connections, and simply echoes back on the connection -whatever it receives. - -You can run the echo server then run `telnet localhost 1234` from a console to connect to it. Type some stuff and see it -echoed back to you. - -<<< @/docs/quick-guide/core/net/echo/server.js - -It also contains an echo client, which creates a connection to the server, sends some data and logs out what it receives -back. You can use that as an alternative to connecting via telnet. - -<<< @/docs/quick-guide/core/net/echo/client.js - - -### Echo SSL - -This is the same as the [Echo](#echo) example but using SSL to encrypt connections. - -The server: - -<<< @/docs/quick-guide/core/net/echossl/server.js - -The client: - -<<< @/docs/quick-guide/core/net/echossl/client.js - -## HTTP examples - -These examples demonstrate usage of HTTP with Vert.x. - -### Simple - -A very simple HTTP server which always responds with the same response: - -<<< @/docs/quick-guide/core/http/simple/server.js - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080) - -And a simple HTTP client which makes a request to the server. - -<<< @/docs/quick-guide/core/http/simple/client.js - -### HTTPS - -Like the [simple](#simple) example, but using HTTPS instead of HTTP - -<<< @/docs/quick-guide/core/http/https/server.js - -You can run the server then open a browser and point it at [http://localhost:4443](http://localhost:4443) - -And a simple HTTPS client which makes a request to the server. - -<<< @/docs/quick-guide/core/http/https/client.js - -### Proxy connect - -Connecting to a web server using a proxy. - -<<< @/docs/quick-guide/core/http/proxyconnect/client.js - -The proxy receives requests and connects to the endpoint server using a socket, then pass -all the events between the client and the proxied server. - -<<< @/docs/quick-guide/core/http/proxyconnect/proxy.js - -### Proxy - -A simple toy HTTP proxy. The proxy receives requests and forwards them to the endpoint server, it also takes responses -from the other server and passes them back to the client. - -<<< @/docs/quick-guide/core/http/proxy/proxy.js - -### Sendfile - -This example demonstrates how you can serve static files from disk using a Vert.x http server. - -<<< @/docs/quick-guide/core/http/sendfile/send_file.js - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). - -::: tip -In practice you would probably actually use Vert.x-Web for this rather than writing a web server at this low level. Serving -files manually like this can leave you open to security exploits, e.g. by clients crafting URI paths which try to access -resources outside of the permitted area. Vert.x-Web provides URI path normalisation to avoid these kinds of exploits and comes -with a static file handler which also handles caching headers and other features that you would probably want when serving -static files in a web application. -::: - -### Simple form - -This example demonstrates how you can handle an HTML form on the server. - -<<< @/docs/quick-guide/core/http/simpleform/simple_form_server.js - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). - -::: tip -In practice you would probably also use Vert.x-Web for this rather than writing a server at this low level. Vert.x-Web -provides built in support for HTML forms, and avoids some of the security issues due to maliciously crafted URI paths. -::: - -### Simple form file upload - -This example demonstrates how you can handle file uploads from an HTML form submission. - -<<< @/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). - -::: tip -In practice you would probably also use Vert.x-Web for this rather than writing a server at this low level. Vert.x-Web -provides built in support for HTML forms, and avoids some of the security issues due to maliciously crafted URI paths. -::: - -### Http request body upload - -This example demonstrates an HTTP server receiving a request and pumping the request body to a file on disk without -ever storing the entire request body fully in memory. - -<<< @/docs/quick-guide/core/http/upload/server.js - -There's also a client which sends a request to the server and pumps a file from disk to the HTTP request body. The file -is uploaded successfully even if the file is very large (GigaBytes). - -<<< @/docs/quick-guide/core/http/upload/client.js - -### HTTP Server Sharing - -A server that illustrates the round robin orchestrated by vert.x when several verticles are opening HTTP servers on the same port: - -<<< @/docs/quick-guide/core/http/sharing/server.js - -The `Server` deploys two instances of the `HttpServerVerticle` verticle. - -<<< @/docs/quick-guide/core/http/sharing/http_server_verticle.js - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). Requests will be handled by an instance after the other. - -The `Client` illustrates the round robin by periodically requesting the server and displays the response content. - -<<< @/docs/quick-guide/core/http/sharing/client.js - -You can directly launch the `HTTPServerVerticle` using the `es4x run` command. Then you can set the number of instance you want: - -``` -es4x run http_server_verticle.js -instances 4 -``` - -### WebSockets echo example - -This example shows a Vert.x HTTP server which handles websockets connections. This example simply echoes back to the client -whatever it receives on the websocket. - -<<< @/docs/quick-guide/core/http/websockets/server.js - -There's also a client which connects to the server, sends some data and logs out what it receives. - -<<< @/docs/quick-guide/core/http/websockets/client.js - -Javascript WebSockets client example: - -<<< @/docs/quick-guide/core/http/websockets/ws.html - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). - -::: tip -In practice you would probably use Vert.x-Web to build a web application that uses WebSockets -::: - -## HTTP/2 examples - -These examples demonstrate usage of HTTP/2 with Vert.x. - -### Simple - -A very simple HTTP/2 server which always responds with the same response: - -<<< @/docs/quick-guide/core/http2/simple/server.js - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). - -And a simple HTTP/2 client which makes a request to the server. - -<<< @/docs/quick-guide/core/http2/simple/client.js - - -### Push - -This example shows HTTP/2 push. - -The server pushes `script.js` along with `index.html`: - -<<< @/docs/quick-guide/core/http2/push/server.js - -You can run the server then open a browser and point it at [http://localhost:8080](http://localhost:8080). - -And a client sets a push handler to be notified of the incoming server side pushes: - -<<< @/docs/quick-guide/core/http2/push/client.js - -### H2C - -Like the simple server but using clear text, also known as _h2c_, without TLS: - -<<< @/docs/quick-guide/core/http2/h2c/server.js - -::: warning -This example won't work with browsers are they don't support h2c -::: - -And a client to connect to the server: - -<<< @/docs/quick-guide/core/http2/h2c/client.js - -### Custom frames - -HTTP/2 can be extended with custom frames, this example shows how to write custom frames: - -<<< @/docs/quick-guide/core/http2/customframes/server.js - -This examples shows how to receive custom frames: - -<<< @/docs/quick-guide/core/http2/customframes/client.js - -## Event bus examples - -These examples demonstrate usage of the event bus in Vert.x - -### Point to point - -This example demonstrates point to point messaging between a receiver and a sender. - -The receiver listens on an address on the event bus for incoming messages. When it receives a message it replies to it. - -<<< @/docs/quick-guide/core/eventbus/pointtopoint/receiver.js - -The sender sends a message to that address every second, when it receives a reply it logs it. - -<<< @/docs/quick-guide/core/eventbus/pointtopoint/sender.js - -You can run the sender and receiver at the command line. - -At the command line you should run Sender and Receiver in different consoles using the `-cluster` flag: - -```sh -es4x run eventbus/pointtopoint/receiver.js -cluster - -es4x run eventbus/pointtopoint/sender.js -cluster -``` - -The `-cluster` flag allows different Vert.x instances on the network to cluster the event bus together into a single -event bus. - -### Publish / Subscribe - -This example demonstrates publish / subscribe messaging between a receivers and a sender. With pub/sub messaging -you can have multiple subscribers who all receive messages from publishers. - -A receiver listens on an address on the event bus for incoming messages. When it receives a message it logs it. - -<<< @/docs/quick-guide/core/eventbus/pubsub/receiver.js - -The sender sends a message to that address every second, when it receives a reply it logs it. - -<<< @/docs/quick-guide/core/eventbus/pubsub/sender.js - - -You can start as many senders or receivers as you like at the command line. - -At the command line you should run Sender and Receiver in different consoles using the `-cluster` flag: - -```sh -es4x run eventbus/pubsub/receiver.js -cluster - -es4x run eventbus/pubsub/sender.js -cluster -``` - -The `-cluster` flag allows different Vert.x instances on the network to cluster the event bus together into a single -event bus. - -### SSL - -This example demonstrates point to point messaging between a receiver and a sender with a transport level encryption. - -The receiver listens on an address on the event bus for incoming messages. When it receives a message it replies to it. - -<<< @/docs/quick-guide/core/eventbus/ssl/receiver.js - -The sender sends a message to that address every second, when it receives a reply it logs it. - -<<< @/docs/quick-guide/core/eventbus/ssl/sender.js - -You can run the Java sender and receiver in the command line. - -At the command line you should run Sender and Receiver in different consoles using the `-cluster` flag: - -```sh -es4x run eventbus/ssl/receiver.js -cluster - -es4x run eventbus/ssl/sender.js -cluster -``` - -The `-cluster` flag allows different Vert.x instances on the network to cluster the event bus together into a single -event bus. - -## Future - -es4x handler [Vert.x Future](https://vertx-web-site.github.io/docs/vertx-core/java/#_async_coordination)'s in a special -way. Behind the scenes, Vert.x Future's are enhanced to be a `Thenable` js object which means you can `await` on then -just like a js [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). - -You can still use the use the Vert.x API, for example, composition can be done as: - -<<< @/docs/quick-guide/core/future/compose_example.js - -## Verticle examples - -These examples show verticles being deployed and undeployed. - -### Deploy example - -This example shows a verticle deploying another verticle in several different ways including: - -* Deploying without waiting for it to deploy -* Deploying and waiting for it to deploy -* Passing configuration to another verticle during deploy -* Deploying more than one instance -* Deploying as a worker verticle -* Undeploying a verticle deployment explicitly - -<<< @/docs/quick-guide/core/verticle/deploy/deploy_example.js - -### Asynchronous deployment example - -This is similar to the deployment example, but it shows how the start and stop of a verticle can be asynchronous. This -is useful if the verticle has some startup or cleanup to do that takes some time, and we wish to avoid blocking the -an event loop. - -<<< @/docs/quick-guide/core/verticle/asyncstart/deploy_example.js - -### Worker Verticle example - -A simple example illustrating how worker verticle can be created and the thread switches when interacting with them. The worker verticle is not System.out.println(Thread.currentThread()); -ed in the event loop and so can do blocking operations. - -<<< @/docs/quick-guide/core/verticle/worker/main_verticle.js -<<< @/docs/quick-guide/core/verticle/worker/worker_verticle.js - -## High Availability - -This example demonstrates the high availability feature of vert.x. When enabled, vert.x redeploys verticles to another - node when the original node dies abruptly. - -<<< @/docs/quick-guide/core/ha/server.js - -To run this example, you need to have a working cluster. Configure Hazelcast and append the required `cluster-host` -to the commands if needed. - -To see the HA (high-availability) behavior you need three terminals. - -In the first terminal, go the the _core-examples` directory and launch: - -```sh -es4x run io.vertx.example.core.ha.Server -ha -``` - -Open a browser to [http://localhost:8080](http://localhost:8080). You should see something like: - -``` -Happily served by 97284 -``` - -Be displayed id is OS and JVM specific, so you may have something completely different. - -In the second terminal, launch: - -``` -es4x bare -``` - -In the third terminal, display the list of the Java process and kill the first one (smaller pid): - -``` -> jps | grep Launcher -97297 Launcher -97284 Launcher -> kill -9 97284 -``` - -In your browser, refresh the page, you should see a different id such as: - -``` -Happily served by 97297 -``` - -The verticle has been migrated. diff --git a/docs/quick-guide/core/eventbus/pointtopoint/receiver.js b/docs/quick-guide/core/eventbus/pointtopoint/receiver.js deleted file mode 100644 index 745c39bde..000000000 --- a/docs/quick-guide/core/eventbus/pointtopoint/receiver.js +++ /dev/null @@ -1,13 +0,0 @@ -/// -// @ts-check - -var eb = vertx.eventBus(); - -eb.consumer("ping-address", function (message) { - - console.log("Received message: " + message.body()); - // Now send back reply - message.reply("pong!"); -}); - -console.log("Receiver ready!"); diff --git a/docs/quick-guide/core/eventbus/pointtopoint/sender.js b/docs/quick-guide/core/eventbus/pointtopoint/sender.js deleted file mode 100644 index 9d87716bf..000000000 --- a/docs/quick-guide/core/eventbus/pointtopoint/sender.js +++ /dev/null @@ -1,18 +0,0 @@ -/// -// @ts-check - -var eb = vertx.eventBus(); - -// Send a message every second - -vertx.setPeriodic(1000, function (v) { - - eb.send("ping-address", "ping!", onSend => { - if (onSend.succeeded()) { - console.log("Received reply " + onSend.result().body()); - } else { - console.log("No reply"); - } - }); - -}); diff --git a/docs/quick-guide/core/eventbus/pubsub/receiver.js b/docs/quick-guide/core/eventbus/pubsub/receiver.js deleted file mode 100644 index 38bf87910..000000000 --- a/docs/quick-guide/core/eventbus/pubsub/receiver.js +++ /dev/null @@ -1,18 +0,0 @@ -/// -// @ts-check - -var eb = vertx.eventBus(); - -eb.consumer("news-feed", function (message) { - console.log("Received news on consumer 1: " + message.body()); -}); - -eb.consumer("news-feed", function (message) { - console.log("Received news on consumer 2: " + message.body()); -}); - -eb.consumer("news-feed", function (message) { - console.log("Received news on consumer 3: " + message.body()); -}); - -console.log("Ready!"); diff --git a/docs/quick-guide/core/eventbus/pubsub/sender.js b/docs/quick-guide/core/eventbus/pubsub/sender.js deleted file mode 100644 index 826317207..000000000 --- a/docs/quick-guide/core/eventbus/pubsub/sender.js +++ /dev/null @@ -1,10 +0,0 @@ -/// -// @ts-check - -var eb = vertx.eventBus(); - -// Send a message every second - -vertx.setPeriodic(1000, function (v) { - eb.publish("news-feed", "Some news!"); -}); diff --git a/docs/quick-guide/core/eventbus/ssl/keystore.jks b/docs/quick-guide/core/eventbus/ssl/keystore.jks deleted file mode 100644 index 3322b4548c06c7e7890460d70ebb97fe9fd22799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2252 zcmchYc{J1u8^>oe*#;RgmJx;s!*3`w2;nV6mI$G1i)0_JeQC0fecwU~BTHG^xR$bB zBui3c35{j4jmDDky7#>2eeXH_|Nim(@%{YqoacO>=X@Uql|co8K#=1C|6Qzp&ICU! z!OzRr`558uiLm*AKui#T2x9;oa8?;O7zUPxoCJfJKrkX~rS$4D`H5yR+5tshyxfBk z<+B`l$ex-iZx5xt@^%{Xt?O)cNr?Mo&939!S^ddG!l3TZ=TKtN<;{~_ct8+q&`E9a z{r=p7IQilh`nhcE%4quix8I))Re7{R=*WVE{AdjCh__Wg z>n5dbFVWjH5RZ-!`f2cK?NR)f+N=?O@$@iyKXZ=Ax!k?wAoMoGp{HNo`*2!X_b}xr=Kfk$QnMrZH_ksx$yd~% z2=gw_0eDMbgvyxr#L{BXQrOagu#nK9ds|;FRx@~XcObD?x@fSE{1Gb=@a!TsskO9h zZyF~X{LbI7@{M7Ovi;YkSRE~ngn9Q66f@13JpuHC34?*Q^jpk5+GWhr#v%z5WZnY= zs+$8JUhujWWXQFNli4M&g!goD6(GC_XZHkWl1?hW^oQw0SaGJOEI;8iU=mjSslQ=H z8fz<#@)oQw$>G7R&Vb7OJn(Ngnk4BlMhhv`jl9&S4s+Y7FY;?S`+r9o33`@)Q0dIl zExVPVq_LFvj8M5vQYv^?P3BF~WhC@Y8qKODOKoNPE7N8SZ9O9?&!0*TT7T5{L7MJ+ z+6C)stI(@w3l-&W%6Zc_`dcJN-^ioTlLk>tXr4=yG=1MtPUZ}c$Lf3@HIh?9-#n1E zMl7$}CRg5JM($4Vs2cFLc4=9!tYF=2`3a$6vbSG3KL)~XPu9)ZjqfjS3nk{1)Ny?P z=Wr$f`V!5)qo&+pG*&U(`V_ZtYE1Ql9=>})Lf*6nr5hC89d|j$6q1#O#I!(=4d4gtXRK*fS>d`btFi}+a6}w)&8__&oqUvbVERx|Mv7B z?9>gNsQYi%@F9Mk7l(h)Nwjsn6VB=jK8v7V(z0q3SKEz&pj|@mQnmFcZnBK2?7| zXO*j(fJn%hTpzsny0FN#f!sdE1ICe-Y+G?*vMq@tkG`zyYmxZ|xvd}~kFPhf6RI+@ zj#EI3sDjZ60P3C!ayJl3}6U>*{KJr=ljb z0v-QS?cCHgC}+iphuD^0Bbqj%ZI!+kJ=wV$reAT;SwX)o;`m6?G+Fslq~`*5VB(A2 zg9g{G#B#169_83fL>xYrLRv`BN|}x4_WBkd*mzS%Z8lT<>hH)7ksij9=ilkbWGQzZ zxBvn{BLE^a1Rz2jOP~-i1OjuK*O&$na2Dy9D=~Bg7|g~50z7eC$B_v&hry92%suaV zdIkKKF#keM{6biNA#DF6+yK{KouNn;cP~eKcULchA0W(!z~KO8MI27)ypn>F^y5J9{f2W@GkZlA!Fe zm=p+b8yjj4;$Vu!PAyR-K?^4J4UlWu6_!s0QU{~r1F!U>8j9q!@7$DWxMv*t=jZl!_J8`It-0|NqB$GgG|!|GAIQOHvc??a`}~C5^L81Q4<%NN zkAzR>;*ngUMd{@UNf-IRS_dKbTrMSf2P%6<5 zga`Yzt%caw(gGdD`KT9{Na^Wb-xiNlR81p1n!{P7l^PTrhQ*V^u$oku8Af-UGo#H#rHTVgr-vp{ l5A>{Z(Gm=Y#}?(?;;?o^BHJ(oEjYg+DYPl=JUMN!^>0E&< -// @ts-check - -var eb = vertx.eventBus(); - -eb.consumer("ping-address", function (message) { - - console.log("Received message: " + message.body()); - // Now send back reply - message.reply("pong!"); -}); - -console.log("Receiver ready!"); diff --git a/docs/quick-guide/core/eventbus/ssl/sender.js b/docs/quick-guide/core/eventbus/ssl/sender.js deleted file mode 100644 index 0f1c7a132..000000000 --- a/docs/quick-guide/core/eventbus/ssl/sender.js +++ /dev/null @@ -1,18 +0,0 @@ -/// -// @ts-check - -var eb = vertx.eventBus(); - -// Send a message every second - -vertx.setPeriodic(1000, function (v) { - - eb.send("ping-address", "ping!", function (reply, reply_err) { - if (reply_err == null) { - console.log("Received reply " + reply.body()); - } else { - console.log("No reply"); - } - }); - -}); diff --git a/docs/quick-guide/core/future/compose_example.js b/docs/quick-guide/core/future/compose_example.js deleted file mode 100644 index 352373924..000000000 --- a/docs/quick-guide/core/future/compose_example.js +++ /dev/null @@ -1,30 +0,0 @@ -/// -// @ts-check - -import { Promise } from '@vertx/core' - -var anotherAsyncAction = function (name) { - var promise = Promise.promise(); - // mimic something that take times - vertx.setTimer(100, function (l) { - promise.complete("hello " + name); - }); - return promise.future() -}; -var anAsyncAction = function () { - var promise = Promise.promise(); - // mimic something that take times - vertx.setTimer(100, function (l) { - promise.complete("world"); - }); - return promise.future() -}; -var future = anAsyncAction(); -future.compose(anotherAsyncAction).onComplete(onComplete => { - if (onComplete.failed()) { - console.log("Something bad happened"); - console.trace(onComplete.cause()); - } else { - console.log("Result: " + onComplete.result()); - } -}); diff --git a/docs/quick-guide/core/ha/server.js b/docs/quick-guide/core/ha/server.js deleted file mode 100644 index d17ca6e1e..000000000 --- a/docs/quick-guide/core/ha/server.js +++ /dev/null @@ -1,8 +0,0 @@ -/// -// @ts-check - -vertx.createHttpServer() - .requestHandler(function (req) { - var name = process.pid; - req.response().end("Happily served by " + name); - }).listen(8080); diff --git a/docs/quick-guide/core/http/https/client.js b/docs/quick-guide/core/http/https/client.js deleted file mode 100644 index 1f69cbead..000000000 --- a/docs/quick-guide/core/http/https/client.js +++ /dev/null @@ -1,20 +0,0 @@ -/// -// @ts-check - -import { HttpClientOptions } from "@vertx/core/options"; - -// Note! in real-life you wouldn't often set trust all -// to true as it could leave you open to man in the -// middle attacks. - -vertx.createHttpClient( - new HttpClientOptions() - .setSsl(true) - .setTrustAll(true)) - - .getNow(4443, "localhost", "/", resp => { - console.log("Got response " + resp.statusCode()); - resp.bodyHandler(function (body) { - console.log("Got data " + body.toString("ISO-8859-1")); - }); - }); diff --git a/docs/quick-guide/core/http/https/server-keystore.jks b/docs/quick-guide/core/http/https/server-keystore.jks deleted file mode 100644 index 3322b4548c06c7e7890460d70ebb97fe9fd22799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2252 zcmchYc{J1u8^>oe*#;RgmJx;s!*3`w2;nV6mI$G1i)0_JeQC0fecwU~BTHG^xR$bB zBui3c35{j4jmDDky7#>2eeXH_|Nim(@%{YqoacO>=X@Uql|co8K#=1C|6Qzp&ICU! z!OzRr`558uiLm*AKui#T2x9;oa8?;O7zUPxoCJfJKrkX~rS$4D`H5yR+5tshyxfBk z<+B`l$ex-iZx5xt@^%{Xt?O)cNr?Mo&939!S^ddG!l3TZ=TKtN<;{~_ct8+q&`E9a z{r=p7IQilh`nhcE%4quix8I))Re7{R=*WVE{AdjCh__Wg z>n5dbFVWjH5RZ-!`f2cK?NR)f+N=?O@$@iyKXZ=Ax!k?wAoMoGp{HNo`*2!X_b}xr=Kfk$QnMrZH_ksx$yd~% z2=gw_0eDMbgvyxr#L{BXQrOagu#nK9ds|;FRx@~XcObD?x@fSE{1Gb=@a!TsskO9h zZyF~X{LbI7@{M7Ovi;YkSRE~ngn9Q66f@13JpuHC34?*Q^jpk5+GWhr#v%z5WZnY= zs+$8JUhujWWXQFNli4M&g!goD6(GC_XZHkWl1?hW^oQw0SaGJOEI;8iU=mjSslQ=H z8fz<#@)oQw$>G7R&Vb7OJn(Ngnk4BlMhhv`jl9&S4s+Y7FY;?S`+r9o33`@)Q0dIl zExVPVq_LFvj8M5vQYv^?P3BF~WhC@Y8qKODOKoNPE7N8SZ9O9?&!0*TT7T5{L7MJ+ z+6C)stI(@w3l-&W%6Zc_`dcJN-^ioTlLk>tXr4=yG=1MtPUZ}c$Lf3@HIh?9-#n1E zMl7$}CRg5JM($4Vs2cFLc4=9!tYF=2`3a$6vbSG3KL)~XPu9)ZjqfjS3nk{1)Ny?P z=Wr$f`V!5)qo&+pG*&U(`V_ZtYE1Ql9=>})Lf*6nr5hC89d|j$6q1#O#I!(=4d4gtXRK*fS>d`btFi}+a6}w)&8__&oqUvbVERx|Mv7B z?9>gNsQYi%@F9Mk7l(h)Nwjsn6VB=jK8v7V(z0q3SKEz&pj|@mQnmFcZnBK2?7| zXO*j(fJn%hTpzsny0FN#f!sdE1ICe-Y+G?*vMq@tkG`zyYmxZ|xvd}~kFPhf6RI+@ zj#EI3sDjZ60P3C!ayJl3}6U>*{KJr=ljb z0v-QS?cCHgC}+iphuD^0Bbqj%ZI!+kJ=wV$reAT;SwX)o;`m6?G+Fslq~`*5VB(A2 zg9g{G#B#169_83fL>xYrLRv`BN|}x4_WBkd*mzS%Z8lT<>hH)7ksij9=ilkbWGQzZ zxBvn{BLE^a1Rz2jOP~-i1OjuK*O&$na2Dy9D=~Bg7|g~50z7eC$B_v&hry92%suaV zdIkKKF#keM{6biNA#DF6+yK{KouNn;cP~eKcULchA0W(!z~KO8MI27)ypn>F^y5J9{f2W@GkZlA!Fe zm=p+b8yjj4;$Vu!PAyR-K?^4J4UlWu6_!s0QU{~r1F!U>8j9q!@7$DWxMv*t=jZl!_J8`It-0|NqB$GgG|!|GAIQOHvc??a`}~C5^L81Q4<%NN zkAzR>;*ngUMd{@UNf-IRS_dKbTrMSf2P%6<5 zga`Yzt%caw(gGdD`KT9{Na^Wb-xiNlR81p1n!{P7l^PTrhQ*V^u$oku8Af-UGo#H#rHTVgr-vp{ l5A>{Z(Gm=Y#}?(?;;?o^BHJ(oEjYg+DYPl=JUMN!^>0E&< -// @ts-check - -import { HttpServerOptions, JksOptions } from '@vertx/core/options'; - - -const server = vertx.createHttpServer( - new HttpServerOptions() - .setSsl(true) - .setKeyStoreOptions( - new JksOptions() - .setPath('server-keystore.jks') - .setPassword('wibble'))); - -server.requestHandler(req => { - req.response() - .putHeader("content-type", "text/html") - .end("

Hello from vert.x!

"); -}).listen(4443); diff --git a/docs/quick-guide/core/http/proxy/client.js b/docs/quick-guide/core/http/proxy/client.js deleted file mode 100644 index 8d013547d..000000000 --- a/docs/quick-guide/core/http/proxy/client.js +++ /dev/null @@ -1,15 +0,0 @@ -var request = vertx.createHttpClient({ -}).put(8080, "localhost", "/", function (resp) { - console.log("Got response " + resp.statusCode()); - resp.bodyHandler(function (body) { - console.log("Got data " + body.toString("ISO-8859-1")); - }); -}); - -request.setChunked(true); - -for (var i = 0;i < 10;i++) { - request.write("client-chunk-" + i); -} - -request.end(); diff --git a/docs/quick-guide/core/http/proxy/proxy.js b/docs/quick-guide/core/http/proxy/proxy.js deleted file mode 100644 index 53e67bfbf..000000000 --- a/docs/quick-guide/core/http/proxy/proxy.js +++ /dev/null @@ -1,41 +0,0 @@ -/// -// @ts-check - -const client = vertx.createHttpClient(); - -vertx - .createHttpServer() - .requestHandler(req => { - console.log("Proxying request: " + req.uri()); - - let c_req = client.request(req.method(), 8282, "localhost", req.uri(), c_res => { - console.log("Proxying response: " + c_res.statusCode()); - req.response() - .setChunked(true) - .setStatusCode(c_res.statusCode()) - .headers() - .setAll(c_res.headers()); - - c_res.handler(data => { - console.log("Proxying response body: " + data.toString("ISO-8859-1")); - req.response().write(data); - }); - c_res.endHandler(v => { - req.response().end(); - }); - }); - - c_req - .setChunked(true) - .headers() - .setAll(req.headers()); - - req.handler(data => { - console.log("Proxying request body " + data.toString("ISO-8859-1")); - c_req.write(data); - }); - - req.endHandler(v => { - c_req.end(); - }); - }).listen(8080); diff --git a/docs/quick-guide/core/http/proxy/server.js b/docs/quick-guide/core/http/proxy/server.js deleted file mode 100644 index 91c608825..000000000 --- a/docs/quick-guide/core/http/proxy/server.js +++ /dev/null @@ -1,25 +0,0 @@ - -vertx.createHttpServer().requestHandler(function (req) { - - console.log("Got request " + req.uri()); - - Array.prototype.forEach.call(req.headers().names(), function(name) { - console.log(name + ": " + req.headers().get(name)); - }); - - req.handler(function (data) { - console.log("Got data " + data.toString("ISO-8859-1")); - }); - - req.endHandler(function (v) { - // Now send back a response - req.response().setChunked(true); - - for (var i = 0;i < 10;i++) { - req.response().write("server-data-chunk-" + i); - } - - req.response().end(); - }); -}).listen(8282); - diff --git a/docs/quick-guide/core/http/proxyconnect/client.js b/docs/quick-guide/core/http/proxyconnect/client.js deleted file mode 100644 index bd6179074..000000000 --- a/docs/quick-guide/core/http/proxyconnect/client.js +++ /dev/null @@ -1,31 +0,0 @@ -/// -// @ts-check - -import { HttpClientOptions, ProxyOptions } from "@vertx/core/options"; -import { ProxyType } from "@vertx/core/enums"; - -let request = vertx.createHttpClient( - new HttpClientOptions() - .setSsl(true) - .setTrustAll(true) - .setVerifyHost(false) - .setProxyOptions( - new ProxyOptions() - .setType(ProxyType.HTTP) - .setHost("localhost") - .setPort(8080))) - - .put(8282, "localhost", "/", resp => { - console.log("Got response " + resp.statusCode()); - resp.bodyHandler(function (body) { - console.log("Got data " + body.toString("ISO-8859-1")); - }); - }); - -request.setChunked(true); - -for (var i = 0; i < 10; i++) { - request.write("client-chunk-" + i); -} - -request.end(); diff --git a/docs/quick-guide/core/http/proxyconnect/proxy.js b/docs/quick-guide/core/http/proxyconnect/proxy.js deleted file mode 100644 index a63657322..000000000 --- a/docs/quick-guide/core/http/proxyconnect/proxy.js +++ /dev/null @@ -1,52 +0,0 @@ -/// -// @ts-check - -import { HttpMethod } from "@vertx/core/enums"; - -var client = vertx.createNetClient(); - -vertx.createHttpServer().requestHandler(req => { - if (req.method() === HttpMethod.CONNECT) { - - // Determine proxied server address - var proxyAddress = req.uri(); - var idx = proxyAddress.indexOf(':'); - var host = proxyAddress.substring(0, idx); - var port = parseInt(proxyAddress.substring(idx + 1), 10); - - console.log("Connecting to proxy " + proxyAddress); - - client.connect(port, host, onConnect => { - - if (onConnect.succeeded()) { - console.log("Connected to proxy"); - var clientSocket = req.netSocket(); - clientSocket.write("HTTP/1.0 200 Connection established\n\n"); - var serverSocket = onConnect.result(); - - serverSocket.handler(buff => { - console.log("Forwarding server packet to the client"); - clientSocket.write(buff); - }); - serverSocket.closeHandler(v => { - console.log("Server socket closed"); - clientSocket.close(); - }); - - clientSocket.handler(buff => { - console.log("Forwarding client packet to the server"); - serverSocket.write(buff); - }); - clientSocket.closeHandler(v => { - console.log("Client socket closed"); - serverSocket.close(); - }); - } else { - console.log("Fail proxy connection"); - req.response().setStatusCode(403).end(); - } - }); - } else { - req.response().setStatusCode(405).end(); - } -}).listen(8080); diff --git a/docs/quick-guide/core/http/sendfile/index.html b/docs/quick-guide/core/http/sendfile/index.html deleted file mode 100644 index 20c9198e1..000000000 --- a/docs/quick-guide/core/http/sendfile/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - vert.x static web server - - -

This is the vert.x static web server. Click on some links below

- -
-
-Page 1 -Page 2 - - - \ No newline at end of file diff --git a/docs/quick-guide/core/http/sendfile/page1.html b/docs/quick-guide/core/http/sendfile/page1.html deleted file mode 100644 index a09ac29ae..000000000 --- a/docs/quick-guide/core/http/sendfile/page1.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - -

Welcome to page1!

- - \ No newline at end of file diff --git a/docs/quick-guide/core/http/sendfile/page2.html b/docs/quick-guide/core/http/sendfile/page2.html deleted file mode 100644 index 373f24d52..000000000 --- a/docs/quick-guide/core/http/sendfile/page2.html +++ /dev/null @@ -1,8 +0,0 @@ - - - - - -

Welcome to page2!

- - \ No newline at end of file diff --git a/docs/quick-guide/core/http/sendfile/send_file.js b/docs/quick-guide/core/http/sendfile/send_file.js deleted file mode 100644 index ea88f1d4c..000000000 --- a/docs/quick-guide/core/http/sendfile/send_file.js +++ /dev/null @@ -1,22 +0,0 @@ -/// -// @ts-check - -// In reality it's highly recommend you use Vert.x-Web for applications like this. - -vertx.createHttpServer().requestHandler(req => { - let filename; - - if (req.path() == "/") { - filename = "sendfile/index.html"; - } else if (req.path() == "/page1.html") { - filename = "sendfile/page1.html"; - } else if (req.path() == "/page2.html") { - filename = "sendfile/page2.html"; - } else { - req.response().setStatusCode(404).end(); - } - - if (filename) { - req.response().sendFile(filename); - } -}).listen(8080); diff --git a/docs/quick-guide/core/http/sharing/client.js b/docs/quick-guide/core/http/sharing/client.js deleted file mode 100644 index 565db1e96..000000000 --- a/docs/quick-guide/core/http/sharing/client.js +++ /dev/null @@ -1,13 +0,0 @@ -/// -// @ts-check - -vertx - .setPeriodic(1000, t => { - vertx - .createHttpClient() - .getNow(8080, "localhost", "/", resp => { - resp.bodyHandler(function (body) { - console.log(body.toString("ISO-8859-1")); - }); - }); - }); diff --git a/docs/quick-guide/core/http/sharing/http_server_verticle.js b/docs/quick-guide/core/http/sharing/http_server_verticle.js deleted file mode 100644 index 727a5c371..000000000 --- a/docs/quick-guide/core/http/sharing/http_server_verticle.js +++ /dev/null @@ -1,10 +0,0 @@ -/// -// @ts-check - -vertx - .createHttpServer() - .requestHandler(req => { - req.response() - .putHeader("content-type", "text/html") - .end("

Hello from " + this + "

"); - }).listen(8080); diff --git a/docs/quick-guide/core/http/sharing/server.js b/docs/quick-guide/core/http/sharing/server.js deleted file mode 100644 index 08fde01e2..000000000 --- a/docs/quick-guide/core/http/sharing/server.js +++ /dev/null @@ -1,9 +0,0 @@ -/// -// @ts-check - -import { DeploymentOptions } from "@vertx/core/options"; - -vertx - .deployVerticle( - "http_server_verticle.js", - new DeploymentOptions().setInstances(2)); diff --git a/docs/quick-guide/core/http/simple/client.js b/docs/quick-guide/core/http/simple/client.js deleted file mode 100644 index dc23748ac..000000000 --- a/docs/quick-guide/core/http/simple/client.js +++ /dev/null @@ -1,11 +0,0 @@ -/// -// @ts-check - -vertx - .createHttpClient() - .getNow(8080, "localhost", "/", resp => { - console.log("Got response " + resp.statusCode()); - resp.bodyHandler(body => { - console.log("Got data " + body.toString("ISO-8859-1")); - }); - }); diff --git a/docs/quick-guide/core/http/simple/server.js b/docs/quick-guide/core/http/simple/server.js deleted file mode 100644 index ae43690f8..000000000 --- a/docs/quick-guide/core/http/simple/server.js +++ /dev/null @@ -1,10 +0,0 @@ -/// -// @ts-check - -vertx - .createHttpServer() - .requestHandler(req => { - req.response() - .putHeader("content-type", "text/html") - .end("

Hello from vert.x!

"); - }).listen(8080); diff --git a/docs/quick-guide/core/http/simpleform/index.html b/docs/quick-guide/core/http/simpleform/index.html deleted file mode 100644 index 2a96128a8..000000000 --- a/docs/quick-guide/core/http/simpleform/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - -
- foo:
- bar:
- quux:
- name:
- -
- - - \ No newline at end of file diff --git a/docs/quick-guide/core/http/simpleform/simple_form_server.js b/docs/quick-guide/core/http/simpleform/simple_form_server.js deleted file mode 100644 index dd673b85b..000000000 --- a/docs/quick-guide/core/http/simpleform/simple_form_server.js +++ /dev/null @@ -1,21 +0,0 @@ -/// -// @ts-check - -vertx.createHttpServer().requestHandler(req => { - if (req.uri() == "/") { - // Serve the index page - req.response().sendFile("index.html"); - } else if (req.uri().startsWith("/form")) { - req.response().setChunked(true); - req.setExpectMultipart(true); - req.endHandler(done => { - req.formAttributes().names().forEach(attr => { - req.response().write("Got attr " + attr + " : " + req.formAttributes().get(attr) + "\n"); - }) - - req.response().end(); - }); - } else { - req.response().setStatusCode(404).end(); - } -}).listen(8080); diff --git a/docs/quick-guide/core/http/simpleformupload/index.html b/docs/quick-guide/core/http/simpleformupload/index.html deleted file mode 100644 index 219c8f45a..000000000 --- a/docs/quick-guide/core/http/simpleformupload/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - -
- choose a file to upload:
- -
- - - \ No newline at end of file diff --git a/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js b/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js deleted file mode 100644 index 9a3136a34..000000000 --- a/docs/quick-guide/core/http/simpleformupload/simple_form_upload_server.js +++ /dev/null @@ -1,34 +0,0 @@ -/// -// @ts-check - -vertx.createHttpServer().requestHandler(req => { - if (req.uri() == "/") { - // Serve the index page - req.response() - .sendFile("index.html"); - } else if (req.uri().startsWith("/form")) { - req.setExpectMultipart(true); - req.uploadHandler(upload => { - upload.exceptionHandler(err => { - req.response() - .setChunked(true) - .end("Upload failed"); - }); - - upload.endHandler(done => { - req.response() - .setChunked(true) - .end("Successfully uploaded to " + upload.filename()); - }); - // FIXME - Potential security exploit! In a real system you must check this filename - // to make sure you're not saving to a place where you don't want! - // Or better still, just use Vert.x-Web which controls the upload area. - upload.streamToFileSystem(upload.filename()); - }); - } else { - req.response() - .setStatusCode(404) - .end(); - } -}).listen(8080); - diff --git a/docs/quick-guide/core/http/upload/client.js b/docs/quick-guide/core/http/upload/client.js deleted file mode 100644 index ea14512d0..000000000 --- a/docs/quick-guide/core/http/upload/client.js +++ /dev/null @@ -1,29 +0,0 @@ -/// -// @ts-check - -import { Pump } from '@vertx/core'; -import { OpenOptions } from '@vertx/core/options'; - -var req = vertx.createHttpClient() - .put(8080, "localhost", "/someurl", resp => { - console.log("Response " + resp.statusCode()); - }); -var filename = "upload.txt"; -var fs = vertx.fileSystem(); - -fs.props(filename, onProps => { - var props = onProps.result(); - console.log("props is " + props); - var size = props.size(); - req.headers().set("content-length", "" + size); - fs.open(filename, new OpenOptions(), onOpen => { - var file = onOpen.result(); - var pump = Pump.pump(file, req); - file.endHandler(v => { - req.end(); - }); - pump.start(); - }); -}); - - diff --git a/docs/quick-guide/core/http/upload/server.js b/docs/quick-guide/core/http/upload/server.js deleted file mode 100644 index 02632f38e..000000000 --- a/docs/quick-guide/core/http/upload/server.js +++ /dev/null @@ -1,25 +0,0 @@ -/// -// @ts-check - -import { Pump } from '@vertx/core'; -import { OpenOptions } from '@vertx/core/options'; - -vertx.createHttpServer().requestHandler(req => { - req.pause(); - var filename = `temp-${Math.random().toString(36).substring(7)}.uploaded`; - vertx - .fileSystem() - .open(filename, new OpenOptions(), onOpen => { - var file = onOpen.result(); - var pump = Pump.pump(req, file); - req.endHandler(v => { - file.close(onClose => { - console.log("Uploaded to " + filename); - req.response() - .end(); - }); - }); - pump.start(); - req.resume(); - }); -}).listen(8080); diff --git a/docs/quick-guide/core/http/websockets/client.js b/docs/quick-guide/core/http/websockets/client.js deleted file mode 100644 index 90e2e7ac0..000000000 --- a/docs/quick-guide/core/http/websockets/client.js +++ /dev/null @@ -1,13 +0,0 @@ -/// -// @ts-check - -import { Buffer } from "@vertx/core"; -const client = vertx.createHttpClient(); - -client.websocket(8080, "localhost", "/some-uri", websocket => { - websocket.handler(data => { - console.log("Received data " + data.toString("ISO-8859-1")); - client.close(); - }); - websocket.writeBinaryMessage(Buffer.buffer("Hello world")); -}); diff --git a/docs/quick-guide/core/http/websockets/server.js b/docs/quick-guide/core/http/websockets/server.js deleted file mode 100644 index 5163860ee..000000000 --- a/docs/quick-guide/core/http/websockets/server.js +++ /dev/null @@ -1,12 +0,0 @@ -/// -// @ts-check - -vertx.createHttpServer() - .webSocketHandler(ws => { - ws.handler(ws.writeBinaryMessage); - }) - .requestHandler(req => { - if (req.uri() == "/") { - req.response().sendFile("ws.html") - } - }).listen(8080); diff --git a/docs/quick-guide/core/http/websockets/ws.html b/docs/quick-guide/core/http/websockets/ws.html deleted file mode 100644 index 1ffaa2b13..000000000 --- a/docs/quick-guide/core/http/websockets/ws.html +++ /dev/null @@ -1,37 +0,0 @@ - -Web Socket Test - - -
- - -
- - diff --git a/docs/quick-guide/core/http2/customframes/client.js b/docs/quick-guide/core/http2/customframes/client.js deleted file mode 100644 index 46ccce0ac..000000000 --- a/docs/quick-guide/core/http2/customframes/client.js +++ /dev/null @@ -1,32 +0,0 @@ -/// -// @ts-check - -import { HttpClientOptions } from "@vertx/core/options"; -import { HttpVersion } from "@vertx/core/enums"; -import { Buffer } from '@vertx/core'; - -// Note! in real-life you wouldn't often set trust all to true as -// it could leave you open to man in the middle attacks. - -const options = new HttpClientOptions() - .setSsl(true) - .setUseAlpn(true) - .setProtocolVersion(HttpVersion.HTTP_2) - .setTrustAll(true); - -var request = vertx.createHttpClient(options).get(8443, "localhost", "/"); - -request.handler(resp => { - // Print custom frames received from server - resp.customFrameHandler(frame => { - console.log("Got frame from server " + frame.payload().toString("UTF-8")); - }); -}); - -request.sendHead(version => { - // Once head has been sent we can send custom frames - vertx.setPeriodic(1000, t => { - console.log("Sending ping frame to server"); - request.writeCustomFrame(10, 0, Buffer.buffer("ping")); - }); -}); diff --git a/docs/quick-guide/core/http2/customframes/server-cert.pem b/docs/quick-guide/core/http2/customframes/server-cert.pem deleted file mode 100755 index ed041435f..000000000 --- a/docs/quick-guide/core/http2/customframes/server-cert.pem +++ /dev/null @@ -1,22 +0,0 @@ -Bag Attributes - friendlyName: test-store - localKeyID: 54 69 6D 65 20 31 34 33 36 32 37 36 31 36 38 39 30 30 -subject=/CN=localhost -issuer=/CN=localhost ------BEGIN CERTIFICATE----- -MIICxzCCAa+gAwIBAgIEFC3x5TANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls -b2NhbGhvc3QwHhcNMTUwNzA3MTMzNTM4WhcNMTgwNzA2MTMzNTM4WjAUMRIwEAYD -VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCa -xywB+KQ9+HJAOe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GU -CScKVEYIgwNiHVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG -3ro26rM/QzRwLhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwps -brTiKtZg57kv0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+y -AitYncmwJ5Z3qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a -3MtavH1onQyTYrDlczHHAgMBAAGjITAfMB0GA1UdDgQWBBQxA6ZvimuLP/vf2oL6 -abg8a7XjCTANBgkqhkiG9w0BAQsFAAOCAQEAi+ZXuQCUibdZcGFNEB2aUGNv9Ggw -O75RQRnHBdNcc+DiGxkjUi4OgcMVmOWdSqa3xVyI7+VHiOsKmtIp/hk6SbubBGDq -kiLr8D8D9yK5R4KQhTlc+Y+DZpnbwlhInia0+96DwGu26QD1JlPn/6jFWHP6u3hB -H8Vc6uASoNP8f1nPR+SFnFRK73XgkVrfKQeKeAESP/7DLontUP+BLgdQuBbWC75t -FF5ns1nmn1T9HgnGYiu2yfpSOQB1YtpMRoG9F7q5ISUhBLhfLSlVCi/1WI2ADkfS -9/tDd4NhFYMNuCtO8gf1oskuzg7CNa/RQ23iGI1Lnbi64kdNKv/DRmSRAw== ------END CERTIFICATE----- diff --git a/docs/quick-guide/core/http2/customframes/server-key.pem b/docs/quick-guide/core/http2/customframes/server-key.pem deleted file mode 100755 index 5217ef604..000000000 --- a/docs/quick-guide/core/http2/customframes/server-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaxywB+KQ9+HJA -Oe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GUCScKVEYIgwNi -HVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG3ro26rM/QzRw -LhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwpsbrTiKtZg57kv -0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+yAitYncmwJ5Z3 -qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a3MtavH1onQyT -YrDlczHHAgMBAAECgf8Ujl9J47vsfxKtdQQYs2G/itS/HqiUlYrhc1KI3NA7tW6n -x4OsCodZDfxabqev+u86ufx1YrvqZXwNi9d/pv+Plkv7NyWQ5C7N/n7T9shiQBdm -+s4LY9D5JJSEzmcK6pRGVU5l/MXRoRtVysjpTkzlCqzRtjMYVLP+2bFY2kWaWR8m -F1BYIPjhtDJto6dXP/yukRSoR9F/q5+c90U5AqokxxQksdMLP2vlmK1J8O3yRKGi -u5yphkQW+82ybOZnE99Mkp35qUpDleeFp04Itlg0drxdfA9QgR1ndeczq4agRn8X -O8n2u6LELOELs1m1eYeeFKDcaXTTHJN7IunvBWECgYEA0mwI/m932vaDDfpK6sOt -grL8mDg3XNc+2V+NEPSX5jp5JNtN/HZn+cP++Ooumyaaxs/AjR80r8ttPGXj+7E6 -Js10FU7AMCRRMMFYD3aEwvLVXcZJtr3waggyyC0C6kRjizk+0oG+xQ2Y3SxPlJYQ -KQL6cqs0M3a7QDcfBp/ZgC8CgYEAvE2o/uYhvmpKFYB61H0uHtNk1zZKPvbruAgP -vPInIp5mCbVqdvltZNIac72wQC/CzM/HS2yosHw5NNsETwXazZXpEemm5WcgbG5Z -Gvr/wAyYBJqaU0GDmH097VAuRBV503pp6yz+4Oozisr8PO8ws6YcuwINbc985gQT -hBjqKekCgYEA0IInY2C3Zq0xbi9f/0QJcmLENF44VfIgoCuz0GJfBs9YbfI2U/5M -x820oZkEt89IPctt5SlP/wbYZqocgLK8iei6p8aSYOIL5gEgrqnlonwYe8TaFJAg -ZCFdmMgphFRiQ3plSxkwHXl8yWV4MieFOe5umCQYJQr5QAee4eSSFRcCgYEAi6Xg -jeFn5wp2lMmqzklj2dKWd5C4sUd3+wxnd43yfhcQv2R+Z2uFuH6kxW9I9eE1y6TQ -PVyBIhmOZ2eCI4TJByyFJBavAnRftGqFxJ+e6fOtDcUGbHYqvP0s3wFWvoFazv56 -7MF66JxnyyfMtvgAm0q3Be14vhZhn0gonQ/JIXkCgYEAkt9QhudWlcrqnobW3Rf9 -/IVj7ZM5KpKmIRuZ+OlkCZfEbMuVToGWEeObMBYcfHpm8ELyCBVw0DZeYqZXXmYG -GdIS/1ojTDYeqriJIty8cMzBWMGcX+BcDb1XlguT4ze+yBKP3CQwm9OkKbncm8C4 -6oJwX+C7M0xdpD8e6gBXDPM= ------END PRIVATE KEY----- diff --git a/docs/quick-guide/core/http2/customframes/server.js b/docs/quick-guide/core/http2/customframes/server.js deleted file mode 100644 index 37fa1865d..000000000 --- a/docs/quick-guide/core/http2/customframes/server.js +++ /dev/null @@ -1,25 +0,0 @@ -/// -// @ts-check - -import { HttpServerOptions, PemKeyCertOptions } from "@vertx/core/options"; -import { Buffer } from '@vertx/core'; - -var server = vertx.createHttpServer( - new HttpServerOptions() - .setUseAlpn(true) - .setSsl(true) - .setPemKeyCertOptions( - new PemKeyCertOptions() - .setKeyPath("server-key.pem") - .setCertPath("server-cert.pem"))); - -server.requestHandler(function (req) { - var resp = req.response(); - - req.customFrameHandler(function (frame) { - console.log("Received client frame " + frame.payload().toString("UTF-8")); - - // Write the sam - resp.writeCustomFrame(10, 0, Buffer.buffer("pong")); - }); -}).listen(8443); diff --git a/docs/quick-guide/core/http2/h2c/client.js b/docs/quick-guide/core/http2/h2c/client.js deleted file mode 100644 index 9be35db01..000000000 --- a/docs/quick-guide/core/http2/h2c/client.js +++ /dev/null @@ -1,20 +0,0 @@ -/// -// @ts-check - -import { HttpClientOptions } from "@vertx/core/options"; -import { HttpVersion } from "@vertx/core/enums"; - - -// Note! in real-life you wouldn't often set trust all to true as -// it could leave you open to man in the middle attacks. - -const options = new HttpClientOptions() - .setProtocolVersion(HttpVersion.HTTP_2); - -vertx.createHttpClient(options) - .getNow(8080, "localhost", "/", resp => { - console.log("Got response " + resp.statusCode() + " with protocol " + resp.version()); - resp.bodyHandler(body => { - console.log("Got data " + body.toString("ISO-8859-1")); - }); - }); diff --git a/docs/quick-guide/core/http2/h2c/server.js b/docs/quick-guide/core/http2/h2c/server.js deleted file mode 100644 index f3aca94cb..000000000 --- a/docs/quick-guide/core/http2/h2c/server.js +++ /dev/null @@ -1,10 +0,0 @@ -/// -// @ts-check - -var server = vertx.createHttpServer(); - -server.requestHandler(req => { - req.response() - .putHeader("content-type", "text/html") - .end("

Hello from vert.x!

version = " + req.version() + "

"); -}).listen(8080); diff --git a/docs/quick-guide/core/http2/push/client.js b/docs/quick-guide/core/http2/push/client.js deleted file mode 100644 index 1eb457726..000000000 --- a/docs/quick-guide/core/http2/push/client.js +++ /dev/null @@ -1,33 +0,0 @@ -/// -// @ts-check - -import { HttpClientOptions } from "@vertx/core/options"; -import { HttpVersion } from "@vertx/core/enums"; - - -// Note! in real-life you wouldn't often set trust all to true as -// it could leave you open to man in the middle attacks. - -const options = new HttpClientOptions() - .setSsl(true) - .setUseAlpn(true) - .setProtocolVersion(HttpVersion.HTTP_2) - .setTrustAll(true); - -vertx.createHttpClient(options) - .get(8443, "localhost", "/", resp => { - console.log("Got response " + resp.statusCode() + " with protocol " + resp.version()); - resp.bodyHandler(body => { - console.log("Got data " + body.toString("ISO-8859-1")); - }); - }) - // Set handler for server side push - .pushHandler(pushedReq => { - console.log("Receiving pushed content"); - pushedReq.handler(pushedResp => { - pushedResp.bodyHandler(body => { - console.log("Got pushed data " + body.toString("ISO-8859-1")); - }); - }); - }) - .end(); diff --git a/docs/quick-guide/core/http2/push/index.html b/docs/quick-guide/core/http2/push/index.html deleted file mode 100755 index 710b816ea..000000000 --- a/docs/quick-guide/core/http2/push/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - Hello world - - - -

Hello World

- - - \ No newline at end of file diff --git a/docs/quick-guide/core/http2/push/script.js b/docs/quick-guide/core/http2/push/script.js deleted file mode 100755 index 5048b9e35..000000000 --- a/docs/quick-guide/core/http2/push/script.js +++ /dev/null @@ -1 +0,0 @@ -alert("hello world"); \ No newline at end of file diff --git a/docs/quick-guide/core/http2/push/server-cert.pem b/docs/quick-guide/core/http2/push/server-cert.pem deleted file mode 100755 index ed041435f..000000000 --- a/docs/quick-guide/core/http2/push/server-cert.pem +++ /dev/null @@ -1,22 +0,0 @@ -Bag Attributes - friendlyName: test-store - localKeyID: 54 69 6D 65 20 31 34 33 36 32 37 36 31 36 38 39 30 30 -subject=/CN=localhost -issuer=/CN=localhost ------BEGIN CERTIFICATE----- -MIICxzCCAa+gAwIBAgIEFC3x5TANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls -b2NhbGhvc3QwHhcNMTUwNzA3MTMzNTM4WhcNMTgwNzA2MTMzNTM4WjAUMRIwEAYD -VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCa -xywB+KQ9+HJAOe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GU -CScKVEYIgwNiHVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG -3ro26rM/QzRwLhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwps -brTiKtZg57kv0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+y -AitYncmwJ5Z3qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a -3MtavH1onQyTYrDlczHHAgMBAAGjITAfMB0GA1UdDgQWBBQxA6ZvimuLP/vf2oL6 -abg8a7XjCTANBgkqhkiG9w0BAQsFAAOCAQEAi+ZXuQCUibdZcGFNEB2aUGNv9Ggw -O75RQRnHBdNcc+DiGxkjUi4OgcMVmOWdSqa3xVyI7+VHiOsKmtIp/hk6SbubBGDq -kiLr8D8D9yK5R4KQhTlc+Y+DZpnbwlhInia0+96DwGu26QD1JlPn/6jFWHP6u3hB -H8Vc6uASoNP8f1nPR+SFnFRK73XgkVrfKQeKeAESP/7DLontUP+BLgdQuBbWC75t -FF5ns1nmn1T9HgnGYiu2yfpSOQB1YtpMRoG9F7q5ISUhBLhfLSlVCi/1WI2ADkfS -9/tDd4NhFYMNuCtO8gf1oskuzg7CNa/RQ23iGI1Lnbi64kdNKv/DRmSRAw== ------END CERTIFICATE----- diff --git a/docs/quick-guide/core/http2/push/server-key.pem b/docs/quick-guide/core/http2/push/server-key.pem deleted file mode 100755 index 5217ef604..000000000 --- a/docs/quick-guide/core/http2/push/server-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaxywB+KQ9+HJA -Oe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GUCScKVEYIgwNi -HVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG3ro26rM/QzRw -LhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwpsbrTiKtZg57kv -0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+yAitYncmwJ5Z3 -qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a3MtavH1onQyT -YrDlczHHAgMBAAECgf8Ujl9J47vsfxKtdQQYs2G/itS/HqiUlYrhc1KI3NA7tW6n -x4OsCodZDfxabqev+u86ufx1YrvqZXwNi9d/pv+Plkv7NyWQ5C7N/n7T9shiQBdm -+s4LY9D5JJSEzmcK6pRGVU5l/MXRoRtVysjpTkzlCqzRtjMYVLP+2bFY2kWaWR8m -F1BYIPjhtDJto6dXP/yukRSoR9F/q5+c90U5AqokxxQksdMLP2vlmK1J8O3yRKGi -u5yphkQW+82ybOZnE99Mkp35qUpDleeFp04Itlg0drxdfA9QgR1ndeczq4agRn8X -O8n2u6LELOELs1m1eYeeFKDcaXTTHJN7IunvBWECgYEA0mwI/m932vaDDfpK6sOt -grL8mDg3XNc+2V+NEPSX5jp5JNtN/HZn+cP++Ooumyaaxs/AjR80r8ttPGXj+7E6 -Js10FU7AMCRRMMFYD3aEwvLVXcZJtr3waggyyC0C6kRjizk+0oG+xQ2Y3SxPlJYQ -KQL6cqs0M3a7QDcfBp/ZgC8CgYEAvE2o/uYhvmpKFYB61H0uHtNk1zZKPvbruAgP -vPInIp5mCbVqdvltZNIac72wQC/CzM/HS2yosHw5NNsETwXazZXpEemm5WcgbG5Z -Gvr/wAyYBJqaU0GDmH097VAuRBV503pp6yz+4Oozisr8PO8ws6YcuwINbc985gQT -hBjqKekCgYEA0IInY2C3Zq0xbi9f/0QJcmLENF44VfIgoCuz0GJfBs9YbfI2U/5M -x820oZkEt89IPctt5SlP/wbYZqocgLK8iei6p8aSYOIL5gEgrqnlonwYe8TaFJAg -ZCFdmMgphFRiQ3plSxkwHXl8yWV4MieFOe5umCQYJQr5QAee4eSSFRcCgYEAi6Xg -jeFn5wp2lMmqzklj2dKWd5C4sUd3+wxnd43yfhcQv2R+Z2uFuH6kxW9I9eE1y6TQ -PVyBIhmOZ2eCI4TJByyFJBavAnRftGqFxJ+e6fOtDcUGbHYqvP0s3wFWvoFazv56 -7MF66JxnyyfMtvgAm0q3Be14vhZhn0gonQ/JIXkCgYEAkt9QhudWlcrqnobW3Rf9 -/IVj7ZM5KpKmIRuZ+OlkCZfEbMuVToGWEeObMBYcfHpm8ELyCBVw0DZeYqZXXmYG -GdIS/1ojTDYeqriJIty8cMzBWMGcX+BcDb1XlguT4ze+yBKP3CQwm9OkKbncm8C4 -6oJwX+C7M0xdpD8e6gBXDPM= ------END PRIVATE KEY----- diff --git a/docs/quick-guide/core/http2/push/server.js b/docs/quick-guide/core/http2/push/server.js deleted file mode 100644 index 94ebf57bf..000000000 --- a/docs/quick-guide/core/http2/push/server.js +++ /dev/null @@ -1,38 +0,0 @@ -/// -// @ts-check - -import { HttpServerOptions, PemKeyCertOptions } from "@vertx/core/options"; -import { HttpMethod } from "@vertx/core/enums"; - -var server = vertx.createHttpServer(new HttpServerOptions() - .setUseAlpn(true) - .setSsl(true) - .setPemKeyCertOptions( - new PemKeyCertOptions() - .setKeyPath("server-key.pem") - .setCertPath("server-cert.pem"))); - -server.requestHandler(function (req) { - var path = req.path(); - var resp = req.response(); - if ("/" == path) { - resp.push(HttpMethod.GET, "/script.js", onPush => { - if (onPush.succeeded()) { - console.log("sending push"); - var pushedResp = onPush.result(); - pushedResp.sendFile("script.js"); - } else { - // Sometimes Safari forbids push : "Server push not allowed to opposite endpoint." - } - }); - - resp.sendFile("index.html"); - } else if ("/script.js" == path) { - resp.sendFile("script.js"); - } else { - console.log("Not found " + path); - resp.setStatusCode(404).end(); - } -}); - -server.listen(8443); diff --git a/docs/quick-guide/core/http2/simple/client.js b/docs/quick-guide/core/http2/simple/client.js deleted file mode 100644 index 3b12b50e1..000000000 --- a/docs/quick-guide/core/http2/simple/client.js +++ /dev/null @@ -1,22 +0,0 @@ -/// -// @ts-check - -import { HttpClientOptions } from "@vertx/core/options"; -import { HttpVersion } from "@vertx/core/enums"; - - -// Note! in real-life you wouldn't often set trust all to true as -// it could leave you open to man in the middle attacks. - -const options = new HttpClientOptions() - .setSsl(true) - .setUseAlpn(true) - .setProtocolVersion(HttpVersion.HTTP_2) - .setTrustAll(true); - -vertx.createHttpClient(options).getNow(8443, "localhost", "/", resp => { - console.log("Got response " + resp.statusCode() + " with protocol " + resp.version()); - resp.bodyHandler(body => { - console.log("Got data " + body.toString("ISO-8859-1")); - }); -}); diff --git a/docs/quick-guide/core/http2/simple/server-cert.pem b/docs/quick-guide/core/http2/simple/server-cert.pem deleted file mode 100755 index ed041435f..000000000 --- a/docs/quick-guide/core/http2/simple/server-cert.pem +++ /dev/null @@ -1,22 +0,0 @@ -Bag Attributes - friendlyName: test-store - localKeyID: 54 69 6D 65 20 31 34 33 36 32 37 36 31 36 38 39 30 30 -subject=/CN=localhost -issuer=/CN=localhost ------BEGIN CERTIFICATE----- -MIICxzCCAa+gAwIBAgIEFC3x5TANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls -b2NhbGhvc3QwHhcNMTUwNzA3MTMzNTM4WhcNMTgwNzA2MTMzNTM4WjAUMRIwEAYD -VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCa -xywB+KQ9+HJAOe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GU -CScKVEYIgwNiHVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG -3ro26rM/QzRwLhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwps -brTiKtZg57kv0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+y -AitYncmwJ5Z3qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a -3MtavH1onQyTYrDlczHHAgMBAAGjITAfMB0GA1UdDgQWBBQxA6ZvimuLP/vf2oL6 -abg8a7XjCTANBgkqhkiG9w0BAQsFAAOCAQEAi+ZXuQCUibdZcGFNEB2aUGNv9Ggw -O75RQRnHBdNcc+DiGxkjUi4OgcMVmOWdSqa3xVyI7+VHiOsKmtIp/hk6SbubBGDq -kiLr8D8D9yK5R4KQhTlc+Y+DZpnbwlhInia0+96DwGu26QD1JlPn/6jFWHP6u3hB -H8Vc6uASoNP8f1nPR+SFnFRK73XgkVrfKQeKeAESP/7DLontUP+BLgdQuBbWC75t -FF5ns1nmn1T9HgnGYiu2yfpSOQB1YtpMRoG9F7q5ISUhBLhfLSlVCi/1WI2ADkfS -9/tDd4NhFYMNuCtO8gf1oskuzg7CNa/RQ23iGI1Lnbi64kdNKv/DRmSRAw== ------END CERTIFICATE----- diff --git a/docs/quick-guide/core/http2/simple/server-key.pem b/docs/quick-guide/core/http2/simple/server-key.pem deleted file mode 100755 index 5217ef604..000000000 --- a/docs/quick-guide/core/http2/simple/server-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCaxywB+KQ9+HJA -Oe2UdIro1y9Z+4VFl4N/8nhbvtsS/Xs2TJJ1H6EL6+x7ni4T14GUCScKVEYIgwNi -HVMpXhgxlYRHnxTxOlgQZCROwNVxMMEmLrxq4NWOwGbdQywJ7hgG3ro26rM/QzRw -LhRbCR+gsXdsUvcD/nrtlD24z/RfBwNoeTzY7s4pqBVqexHtTwpsbrTiKtZg57kv -0KIlGIoB2VOeEo+WBgzZ/6B/WPibnil8oEx2TcbJh4VvzqtNgG+yAitYncmwJ5Z3 -qFVEeE2rKSxijOLWhk0gXG8uryGFi3gL+qiUjXUFb2IZx0WLd11a3MtavH1onQyT -YrDlczHHAgMBAAECgf8Ujl9J47vsfxKtdQQYs2G/itS/HqiUlYrhc1KI3NA7tW6n -x4OsCodZDfxabqev+u86ufx1YrvqZXwNi9d/pv+Plkv7NyWQ5C7N/n7T9shiQBdm -+s4LY9D5JJSEzmcK6pRGVU5l/MXRoRtVysjpTkzlCqzRtjMYVLP+2bFY2kWaWR8m -F1BYIPjhtDJto6dXP/yukRSoR9F/q5+c90U5AqokxxQksdMLP2vlmK1J8O3yRKGi -u5yphkQW+82ybOZnE99Mkp35qUpDleeFp04Itlg0drxdfA9QgR1ndeczq4agRn8X -O8n2u6LELOELs1m1eYeeFKDcaXTTHJN7IunvBWECgYEA0mwI/m932vaDDfpK6sOt -grL8mDg3XNc+2V+NEPSX5jp5JNtN/HZn+cP++Ooumyaaxs/AjR80r8ttPGXj+7E6 -Js10FU7AMCRRMMFYD3aEwvLVXcZJtr3waggyyC0C6kRjizk+0oG+xQ2Y3SxPlJYQ -KQL6cqs0M3a7QDcfBp/ZgC8CgYEAvE2o/uYhvmpKFYB61H0uHtNk1zZKPvbruAgP -vPInIp5mCbVqdvltZNIac72wQC/CzM/HS2yosHw5NNsETwXazZXpEemm5WcgbG5Z -Gvr/wAyYBJqaU0GDmH097VAuRBV503pp6yz+4Oozisr8PO8ws6YcuwINbc985gQT -hBjqKekCgYEA0IInY2C3Zq0xbi9f/0QJcmLENF44VfIgoCuz0GJfBs9YbfI2U/5M -x820oZkEt89IPctt5SlP/wbYZqocgLK8iei6p8aSYOIL5gEgrqnlonwYe8TaFJAg -ZCFdmMgphFRiQ3plSxkwHXl8yWV4MieFOe5umCQYJQr5QAee4eSSFRcCgYEAi6Xg -jeFn5wp2lMmqzklj2dKWd5C4sUd3+wxnd43yfhcQv2R+Z2uFuH6kxW9I9eE1y6TQ -PVyBIhmOZ2eCI4TJByyFJBavAnRftGqFxJ+e6fOtDcUGbHYqvP0s3wFWvoFazv56 -7MF66JxnyyfMtvgAm0q3Be14vhZhn0gonQ/JIXkCgYEAkt9QhudWlcrqnobW3Rf9 -/IVj7ZM5KpKmIRuZ+OlkCZfEbMuVToGWEeObMBYcfHpm8ELyCBVw0DZeYqZXXmYG -GdIS/1ojTDYeqriJIty8cMzBWMGcX+BcDb1XlguT4ze+yBKP3CQwm9OkKbncm8C4 -6oJwX+C7M0xdpD8e6gBXDPM= ------END PRIVATE KEY----- diff --git a/docs/quick-guide/core/http2/simple/server.js b/docs/quick-guide/core/http2/simple/server.js deleted file mode 100644 index 88d1215a3..000000000 --- a/docs/quick-guide/core/http2/simple/server.js +++ /dev/null @@ -1,19 +0,0 @@ -/// -// @ts-check - -import { HttpServerOptions, PemKeyCertOptions } from "@vertx/core/options"; - -var server = vertx.createHttpServer( - new HttpServerOptions() - .setUseAlpn(true) - .setSsl(true) - .setPemKeyCertOptions( - new PemKeyCertOptions() - .setKeyPath("server-key.pem") - .setCertPath("server-cert.pem"))); - -server.requestHandler(function (req) { - req.response() - .putHeader("content-type", "text/html") - .end(`

Hello from vert.x!

version = ${req.version()}

`); -}).listen(8443); diff --git a/docs/quick-guide/core/net/echo/client.js b/docs/quick-guide/core/net/echo/client.js deleted file mode 100644 index 44e8f9142..000000000 --- a/docs/quick-guide/core/net/echo/client.js +++ /dev/null @@ -1,23 +0,0 @@ -/// -// @ts-check -vertx - .createNetClient() - .connect(1234, "localhost", onConnect => { - - if (onConnect.succeeded()) { - let socket = onConnect.result(); - - socket.handler(buffer => { - console.log("Net client receiving: " + buffer.toString("UTF-8")); - }); - - // Now send some data - for (var i = 0;i < 10;i++) { - var str = `hello ${i}\n`; - console.log(`Net client sending: ${str}`); - socket.write(str); - } - } else { - console.trace(onConnect.cause()); - } -}); diff --git a/docs/quick-guide/core/net/echo/server.js b/docs/quick-guide/core/net/echo/server.js deleted file mode 100644 index 02ee96889..000000000 --- a/docs/quick-guide/core/net/echo/server.js +++ /dev/null @@ -1,15 +0,0 @@ -/// -// @ts-check -import { Pump } from '@vertx/core'; - -vertx - .createNetServer() - .connectHandler(socket => { - - // Create a pump - Pump.pump(socket, socket).start(); - - }).listen(1234); - -console.log("Echo server is now listening"); - diff --git a/docs/quick-guide/core/net/echossl/client.js b/docs/quick-guide/core/net/echossl/client.js deleted file mode 100644 index c707ed054..000000000 --- a/docs/quick-guide/core/net/echossl/client.js +++ /dev/null @@ -1,27 +0,0 @@ -/// -// @ts-check - -const { NetClientOptions } = require("@vertx/core/options"); - - -const options = new NetClientOptions() - .setSsl(true) - .setTrustAll(true); - -vertx.createNetClient(options).connect(1234, "localhost", onConnect => { - if (onConnect.succeeded()) { - var socket = onConnect.result(); - socket.handler(buff => { - console.log("client receiving " + buff.toString("UTF-8")); - }); - - // Now send some data - for (var i = 0;i < 10;i++) { - var str = `hello ${i}\n`; - console.log(`Net client sending: ${str}`); - socket.write(str); - } - } else { - console.trace(onConnect.cause()); - } -}); diff --git a/docs/quick-guide/core/net/echossl/server-keystore.jks b/docs/quick-guide/core/net/echossl/server-keystore.jks deleted file mode 100644 index 3322b4548c06c7e7890460d70ebb97fe9fd22799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2252 zcmchYc{J1u8^>oe*#;RgmJx;s!*3`w2;nV6mI$G1i)0_JeQC0fecwU~BTHG^xR$bB zBui3c35{j4jmDDky7#>2eeXH_|Nim(@%{YqoacO>=X@Uql|co8K#=1C|6Qzp&ICU! z!OzRr`558uiLm*AKui#T2x9;oa8?;O7zUPxoCJfJKrkX~rS$4D`H5yR+5tshyxfBk z<+B`l$ex-iZx5xt@^%{Xt?O)cNr?Mo&939!S^ddG!l3TZ=TKtN<;{~_ct8+q&`E9a z{r=p7IQilh`nhcE%4quix8I))Re7{R=*WVE{AdjCh__Wg z>n5dbFVWjH5RZ-!`f2cK?NR)f+N=?O@$@iyKXZ=Ax!k?wAoMoGp{HNo`*2!X_b}xr=Kfk$QnMrZH_ksx$yd~% z2=gw_0eDMbgvyxr#L{BXQrOagu#nK9ds|;FRx@~XcObD?x@fSE{1Gb=@a!TsskO9h zZyF~X{LbI7@{M7Ovi;YkSRE~ngn9Q66f@13JpuHC34?*Q^jpk5+GWhr#v%z5WZnY= zs+$8JUhujWWXQFNli4M&g!goD6(GC_XZHkWl1?hW^oQw0SaGJOEI;8iU=mjSslQ=H z8fz<#@)oQw$>G7R&Vb7OJn(Ngnk4BlMhhv`jl9&S4s+Y7FY;?S`+r9o33`@)Q0dIl zExVPVq_LFvj8M5vQYv^?P3BF~WhC@Y8qKODOKoNPE7N8SZ9O9?&!0*TT7T5{L7MJ+ z+6C)stI(@w3l-&W%6Zc_`dcJN-^ioTlLk>tXr4=yG=1MtPUZ}c$Lf3@HIh?9-#n1E zMl7$}CRg5JM($4Vs2cFLc4=9!tYF=2`3a$6vbSG3KL)~XPu9)ZjqfjS3nk{1)Ny?P z=Wr$f`V!5)qo&+pG*&U(`V_ZtYE1Ql9=>})Lf*6nr5hC89d|j$6q1#O#I!(=4d4gtXRK*fS>d`btFi}+a6}w)&8__&oqUvbVERx|Mv7B z?9>gNsQYi%@F9Mk7l(h)Nwjsn6VB=jK8v7V(z0q3SKEz&pj|@mQnmFcZnBK2?7| zXO*j(fJn%hTpzsny0FN#f!sdE1ICe-Y+G?*vMq@tkG`zyYmxZ|xvd}~kFPhf6RI+@ zj#EI3sDjZ60P3C!ayJl3}6U>*{KJr=ljb z0v-QS?cCHgC}+iphuD^0Bbqj%ZI!+kJ=wV$reAT;SwX)o;`m6?G+Fslq~`*5VB(A2 zg9g{G#B#169_83fL>xYrLRv`BN|}x4_WBkd*mzS%Z8lT<>hH)7ksij9=ilkbWGQzZ zxBvn{BLE^a1Rz2jOP~-i1OjuK*O&$na2Dy9D=~Bg7|g~50z7eC$B_v&hry92%suaV zdIkKKF#keM{6biNA#DF6+yK{KouNn;cP~eKcULchA0W(!z~KO8MI27)ypn>F^y5J9{f2W@GkZlA!Fe zm=p+b8yjj4;$Vu!PAyR-K?^4J4UlWu6_!s0QU{~r1F!U>8j9q!@7$DWxMv*t=jZl!_J8`It-0|NqB$GgG|!|GAIQOHvc??a`}~C5^L81Q4<%NN zkAzR>;*ngUMd{@UNf-IRS_dKbTrMSf2P%6<5 zga`Yzt%caw(gGdD`KT9{Na^Wb-xiNlR81p1n!{P7l^PTrhQ*V^u$oku8Af-UGo#H#rHTVgr-vp{ l5A>{Z(Gm=Y#}?(?;;?o^BHJ(oEjYg+DYPl=JUMN!^>0E&< -// @ts-check -import { Pump } from '@vertx/core'; -import { NetServerOptions, JksOptions } from '@vertx/core/options'; - - -const options = new NetServerOptions() - .setSsl(true) - .setKeyStoreOptions( - new JksOptions() - .setPath('server-keystore.jks') - .setPassword('wibble')); - -vertx.createNetServer(options).connectHandler(socket => { - - // Create a pump - Pump.pump(socket, socket).start(); - -}).listen(1234); - -console.log("Echo server is now listening"); diff --git a/docs/quick-guide/core/package.json b/docs/quick-guide/core/package.json deleted file mode 100644 index fb1604b86..000000000 --- a/docs/quick-guide/core/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "core-examples", - "version": "1.0.0", - "private": true, - "license": "ISC", - "dependencies": { - "create-es4x-app": "latest", - "@vertx/core": "latest" - }, - "scripts": { - "postinstall": "es4x install" - } -} diff --git a/docs/quick-guide/core/verticle/asyncstart/deploy_example.js b/docs/quick-guide/core/verticle/asyncstart/deploy_example.js deleted file mode 100644 index 8151bd95c..000000000 --- a/docs/quick-guide/core/verticle/asyncstart/deploy_example.js +++ /dev/null @@ -1,26 +0,0 @@ -/// -// @ts-check - -console.log("Main verticle has started, let's deploy some others..."); - -// Deploy another instance and want for it to start -vertx.deployVerticle("io.vertx.example.core.verticle.asyncstart.OtherVerticle", onDeployVerticle => { - if (onDeployVerticle.succeeded()) { - - var deploymentID = onDeployVerticle.result(); - - console.log("Other verticle deployed ok, deploymentID = " + deploymentID); - - vertx.undeploy(deploymentID, onUndeploy => { - if (onUndeploy.succeeded()) { - console.log("Undeployed ok!"); - } else { - console.trace(onUndeploy.cause()); - } - }); - } else { - console.trace(onDeployVerticle.cause()); - } -}); - - diff --git a/docs/quick-guide/core/verticle/deploy/deploy_example.js b/docs/quick-guide/core/verticle/deploy/deploy_example.js deleted file mode 100644 index d046773a3..000000000 --- a/docs/quick-guide/core/verticle/deploy/deploy_example.js +++ /dev/null @@ -1,63 +0,0 @@ -/// -// @ts-check - -import { DeploymentOptions } from "@vertx/core/options"; - - -console.log("Main verticle has started, let's deploy some others..."); - -// Different ways of deploying verticles - -// Deploy a verticle and don't wait for it to start -vertx.deployVerticle("io.vertx.example.core.verticle.deploy.OtherVerticle"); - -// Deploy another instance and want for it to start -vertx.deployVerticle("io.vertx.example.core.verticle.deploy.OtherVerticle", onDeployVerticle => { - if (onDeployVerticle.succeeded()) { - - var deploymentID = onDeployVerticle.result(); - - console.log("Other verticle deployed ok, deploymentID = " + deploymentID); - - // You can also explicitly undeploy a verticle deployment. - // Note that this is usually unnecessary as any verticles deployed by a verticle will be automatically - // undeployed when the parent verticle is undeployed - - vertx.undeploy(deploymentID, onUndeploy => { - if (onUndeploy.succeeded()) { - console.log("Undeployed ok!"); - } else { - console.trace(onUndeploy.cause()); - } - }); - - } else { - console.trace(onDeployVerticle.cause()); - } -}); - -// Deploy specifying some config -var config = { - "foo": "bar" -}; - -vertx.deployVerticle( - "io.vertx.example.core.verticle.deploy.OtherVerticle", - new DeploymentOptions() - .setConfig({ - "config": config - })); - -// Deploy 10 instances -vertx.deployVerticle( - "io.vertx.example.core.verticle.deploy.OtherVerticle", - new DeploymentOptions() - .setInstances(10)); - -// Deploy it as a worker verticle -vertx.deployVerticle( - "io.vertx.example.core.verticle.deploy.OtherVerticle", - new DeploymentOptions() - .setWorker(true)); - - diff --git a/docs/quick-guide/core/verticle/worker/main_verticle.js b/docs/quick-guide/core/verticle/worker/main_verticle.js deleted file mode 100644 index bf0fddf08..000000000 --- a/docs/quick-guide/core/verticle/worker/main_verticle.js +++ /dev/null @@ -1,15 +0,0 @@ -/// -// @ts-check - -import { DeploymentOptions } from "@vertx/core/options"; - -console.log("[Main] Running in " + Java.type("java.lang.Thread").currentThread().getName()); - -vertx.deployVerticle( - "io.vertx.example.core.verticle.worker.WorkerVerticle", - new DeploymentOptions().setWorker(true)); - -vertx.eventBus() -.send("sample.data", "hello vert.x", onSend => { - console.log("[Main] Receiving reply ' " + onSend.result().body() + "' in " + Java.type("java.lang.Thread").currentThread().getName()); -}); diff --git a/docs/quick-guide/core/verticle/worker/worker_verticle.js b/docs/quick-guide/core/verticle/worker/worker_verticle.js deleted file mode 100644 index 4b87787de..000000000 --- a/docs/quick-guide/core/verticle/worker/worker_verticle.js +++ /dev/null @@ -1,11 +0,0 @@ -/// -// @ts-check - -console.log("[Worker] Starting in " + Java.type("java.lang.Thread").currentThread().getName()); - -vertx.eventBus() - .consumer("sample.data", function (message) { - console.log("[Worker] Consuming data in " + Java.type("java.lang.Thread").currentThread().getName()); - var body = message.body(); - message.reply(body.toUpperCase()); - }); diff --git a/docs/quick-guide/redis/README.md b/docs/quick-guide/redis/README.md deleted file mode 100644 index aff3d7686..000000000 --- a/docs/quick-guide/redis/README.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -prev: ../ -next: false -sidebarDepth: 2 ---- -# Vert.x Redis Client examples - -Here you will find examples demonstrating the usage of the Vert.x Redis Client. For detailed documentation, consult -the Vert.x [core manual](https://vertx.io/docs). - -## Project setup - -To use es4x your own project use the following project as a template: - -<<< @/docs/quick-guide/redis/package.json - -## Simple Client - -To run this example, you need a running Redis instance. Once running, you can configure the -verticles with the redis host: - -<<< @/docs/quick-guide/redis/simple/redis_client_verticle.js - -By default it uses `127.0.0.1` as host. The post is set to `6379`. diff --git a/docs/quick-guide/redis/package.json b/docs/quick-guide/redis/package.json deleted file mode 100644 index fe4a40906..000000000 --- a/docs/quick-guide/redis/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "core-examples", - "version": "1.0.0", - "private": true, - "license": "ISC", - "dependencies": { - "create-es4x-app": "latest", - "@vertx/core": "latest", - "@vertx/redis-client": "latest" - }, - "scripts": { - "postinstall": "es4x install" - } -} diff --git a/docs/quick-guide/redis/simple/redis_client_verticle.js b/docs/quick-guide/redis/simple/redis_client_verticle.js deleted file mode 100644 index 5e3e95e4c..000000000 --- a/docs/quick-guide/redis/simple/redis_client_verticle.js +++ /dev/null @@ -1,18 +0,0 @@ -/// -// @ts-check - -import { Redis, Command, Request } from "@vertx/redis-client"; - -// Create the redis client -var client = Redis.createClient(vertx, "redis://127.0.0.1:6379"); - -client.send(Request.cmd(Command.SET).arg("key").arg("value"), onSet => { - if (onSet.succeeded()) { - console.log("key stored"); - client.send(Request.cmd(Command.GET).arg("key"), onGet => { - console.log("Retrieved value: " + onGet.result().toString()); - }); - } else { - console.trace(onSet.cause()); - } -}); diff --git a/docs/quick-guide/unit/README.md b/docs/quick-guide/unit/README.md deleted file mode 100644 index cd157d917..000000000 --- a/docs/quick-guide/unit/README.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -prev: ../ -next: false -sidebarDepth: 2 ---- -# Vert.x Unit examples - -Here you'll find some examples of how to use Vert.x unit to test your asynchronous applications. For detailed -documentation, consult the Vert.x [core manual](https://vertx.io/docs). - -## Project setup - -To use es4x your own project use the following project as a template: - -<<< @/docs/quick-guide/unit/package.json - -### Vertx Unit Test - -The example demonstrates how the Vert.x Unit API can be used to run tests using the Vert.x Unit test runner. - -<<< @/docs/quick-guide/unit/test/some_verticle.js - -Examples can be run directly from the command line: - -```shell script -es4x test test/some_verticle.js -``` diff --git a/docs/quick-guide/unit/package.json b/docs/quick-guide/unit/package.json deleted file mode 100644 index fb1604b86..000000000 --- a/docs/quick-guide/unit/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "core-examples", - "version": "1.0.0", - "private": true, - "license": "ISC", - "dependencies": { - "create-es4x-app": "latest", - "@vertx/core": "latest" - }, - "scripts": { - "postinstall": "es4x install" - } -} diff --git a/docs/quick-guide/unit/test/some_verticle.js b/docs/quick-guide/unit/test/some_verticle.js deleted file mode 100644 index 8fefff135..000000000 --- a/docs/quick-guide/unit/test/some_verticle.js +++ /dev/null @@ -1,13 +0,0 @@ -/// -// @ts-check - -import { TestSuite } from '@vertx/unit'; - -const suite = TestSuite.create("the_test_suite"); - -suite.test("my_test_case", function (context) { - var s = "value"; - context.assertEquals("value", s); -}); - -suite.run(); diff --git a/es4x/src/test/resources/future/future2.js b/es4x/src/test/resources/future/future2.js index 04a4a5c5a..56d1238b0 100644 --- a/es4x/src/test/resources/future/future2.js +++ b/es4x/src/test/resources/future/future2.js @@ -12,7 +12,7 @@ async function futureTest2 () { futureTest2() .then(function (result) { - should.fail('Expected to fail with nagative port'); + should.fail('Expected to fail with negative port'); }) .catch(function (err) { test.complete(); diff --git a/generator/build.sh b/generator/build.sh index 07fa75c21..f46e41d88 100755 --- a/generator/build.sh +++ b/generator/build.sh @@ -1,12 +1,9 @@ #!/usr/bin/env bash set -e -# add the adoc2md script to the path -export PATH=$PATH:$(pwd)/../scripts - # build if [ "$1" = "publish-local" ]; then REGISTRY="http://localhost:4873" - mvn -fae -Pio.vertx,io.reactiverse -Dnpm-registry="$REGISTRY" exec:exec@npm-publish + mvn -fae -Pio.vertx,io.reactiverse -Dnpm-registry="$REGISTRY" clean generate-sources install exec:exec@npm-publish elif [ "$1" = "publish" ]; then REGISTRY="https://registry.npmjs.org" @@ -18,5 +15,5 @@ elif [ "$1" = "publish" ]; then npm adduser --registry "$REGISTRY" mvn -fae -Pio.reactiverse -Dnpm-registry="$REGISTRY" exec:exec@npm-publish else - mvn -fae -Pio.vertx,io.reactiverse clean generate-sources install exec:exec@typedoc exec:exec@adoc2md + mvn -fae -Pio.vertx,io.reactiverse clean generate-sources install exec:exec@typedoc fi diff --git a/generator/pom.xml b/generator/pom.xml index bc5b2f6a2..17f8e1ba2 100644 --- a/generator/pom.xml +++ b/generator/pom.xml @@ -328,7 +328,7 @@ ${project.artifactId} jar sources - **/*.java,**/*.adoc + **/*.java **/groovy/**/*.*,**/rxjava/**/*.*,**/reactivex/**/*.* @@ -358,12 +358,9 @@ io.vertx.codegen.CodeGenProcessor - io.vertx.docgen.DocGenProcessor ${project.build.directory} - ${project.build.directory}/sources/${project.artifactId}/*.adoc - ${project.build.directory}/manual ${project.build.directory}/sources/${project.artifactId} @@ -486,20 +483,6 @@ exec - - adoc2md - - adoc2md.sh - - ${project.build.directory}/manual - ${project.basedir}/../../../docs/manual/${npm-name} - - ${project.build.directory} - - - exec - - @@ -522,22 +505,6 @@ - - copy-asciidoc-override - generate-sources - - copy-resources - - - ${project.build.directory}/manual/override - - - true - ${project.build.directory}/sources/${project.artifactId}/override - - - - bundle process-resources diff --git a/pm/src/main/resources/META-INF/es4x-commands/init/js/package.json b/pm/src/main/resources/META-INF/es4x-commands/init/js/package.json index 36e0d0c98..b135318d8 100644 --- a/pm/src/main/resources/META-INF/es4x-commands/init/js/package.json +++ b/pm/src/main/resources/META-INF/es4x-commands/init/js/package.json @@ -11,7 +11,7 @@ "@vertx/core": "${stack.version}" }, "devDependencies": { - "create-es4x-app": "${project.version}", + "@vertx/create": "${project.version}", "@vertx/unit": "${stack.version}" }, "scripts": { diff --git a/pm/src/main/resources/META-INF/es4x-commands/init/ts/package.json b/pm/src/main/resources/META-INF/es4x-commands/init/ts/package.json index 370893280..8d8c45e9d 100644 --- a/pm/src/main/resources/META-INF/es4x-commands/init/ts/package.json +++ b/pm/src/main/resources/META-INF/es4x-commands/init/ts/package.json @@ -11,7 +11,7 @@ "@vertx/core": "${stack.version}" }, "devDependencies": { - "create-es4x-app": "${project.version}", + "@vertx/create": "${project.version}", "typescript": "^4.0.2", "@vertx/unit": "${stack.version}" }, diff --git a/pom.xml b/pom.xml index 932e22139..dd34786bb 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ 1.8 UTF-8 - 3.9.2 + 3.9.3 20.2.0 https://oss.sonatype.org/content/repositories/snapshots/ diff --git a/scripts/adoc2md.sh b/scripts/adoc2md.sh deleted file mode 100755 index ce73c4072..000000000 --- a/scripts/adoc2md.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash -set -e - -echo $1 -echo $2 - -# prepare -mkdir -p "$2" -# run -find "$1" -maxdepth 1 -type f -name "*.adoc" -print0 | - while IFS= read -r -d '' line; do - manual="${line%.*}" - echo "Processing $manual ..." - # Convert asciidoc to docbook using asciidoctor - asciidoctor -b docbook "${manual}.adoc" - # foo.xml will be output into the same directory as foo.adoc - iconv -t utf-8 "${manual}.xml" | pandoc -f docbook -t gfm | iconv -f utf-8 > "${manual}.md" - # Copy to the target - cp "${manual}.md" "$2"/ - done From 71298f9b41e660bc837025a91bf3c1e2032f980b Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 21 Sep 2020 16:41:26 +0200 Subject: [PATCH 19/21] Update versions for release --- codegen/pom.xml | 4 ++-- es4x/pom.xml | 4 ++-- generator/io.reactiverse/elasticsearch-client/pom.xml | 4 ++-- generator/io.vertx/pom.xml | 4 ++-- generator/io.vertx/vertx-amqp-bridge/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-common/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-htdigest/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-htpasswd/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-jdbc/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-jwt/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-mongo/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-oauth2/pom.xml | 4 ++-- generator/io.vertx/vertx-auth-shiro/pom.xml | 4 ++-- generator/io.vertx/vertx-bridge-common/pom.xml | 4 ++-- generator/io.vertx/vertx-cassandra-client/pom.xml | 4 ++-- generator/io.vertx/vertx-circuit-breaker/pom.xml | 4 ++-- generator/io.vertx/vertx-config-consul/pom.xml | 4 ++-- generator/io.vertx/vertx-config-git/pom.xml | 4 ++-- generator/io.vertx/vertx-config-hocon/pom.xml | 4 ++-- generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml | 4 ++-- generator/io.vertx/vertx-config-redis/pom.xml | 4 ++-- generator/io.vertx/vertx-config-spring-config-server/pom.xml | 4 ++-- generator/io.vertx/vertx-config-vault/pom.xml | 4 ++-- generator/io.vertx/vertx-config-yaml/pom.xml | 4 ++-- generator/io.vertx/vertx-config-zookeeper/pom.xml | 4 ++-- generator/io.vertx/vertx-config/pom.xml | 4 ++-- generator/io.vertx/vertx-consul-client/pom.xml | 4 ++-- generator/io.vertx/vertx-core/pom.xml | 4 ++-- generator/io.vertx/vertx-dropwizard-metrics/pom.xml | 4 ++-- generator/io.vertx/vertx-health-check/pom.xml | 4 ++-- generator/io.vertx/vertx-jdbc-client/pom.xml | 4 ++-- generator/io.vertx/vertx-jwt/pom.xml | 4 ++-- generator/io.vertx/vertx-kafka-client/pom.xml | 4 ++-- generator/io.vertx/vertx-mail-client/pom.xml | 4 ++-- generator/io.vertx/vertx-micrometer-metrics/pom.xml | 4 ++-- generator/io.vertx/vertx-mongo-client/pom.xml | 4 ++-- generator/io.vertx/vertx-mqtt/pom.xml | 4 ++-- generator/io.vertx/vertx-mysql-client/pom.xml | 4 ++-- generator/io.vertx/vertx-mysql-postgresql-client/pom.xml | 4 ++-- generator/io.vertx/vertx-pg-client/pom.xml | 4 ++-- generator/io.vertx/vertx-rabbitmq-client/pom.xml | 4 ++-- generator/io.vertx/vertx-redis-client/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-backend-consul/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-backend-redis/pom.xml | 4 ++-- .../vertx-service-discovery-backend-zookeeper/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-bridge-consul/pom.xml | 4 ++-- .../vertx-service-discovery-bridge-docker-links/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-bridge-docker/pom.xml | 4 ++-- .../vertx-service-discovery-bridge-kubernetes/pom.xml | 4 ++-- .../io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml | 4 ++-- generator/io.vertx/vertx-service-discovery/pom.xml | 4 ++-- generator/io.vertx/vertx-service-proxy/pom.xml | 4 ++-- generator/io.vertx/vertx-shell/pom.xml | 4 ++-- generator/io.vertx/vertx-sql-client/pom.xml | 4 ++-- generator/io.vertx/vertx-sql-common/pom.xml | 4 ++-- generator/io.vertx/vertx-stomp/pom.xml | 4 ++-- generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml | 4 ++-- generator/io.vertx/vertx-unit/pom.xml | 4 ++-- generator/io.vertx/vertx-web-api-contract/pom.xml | 4 ++-- generator/io.vertx/vertx-web-client/pom.xml | 4 ++-- generator/io.vertx/vertx-web-common/pom.xml | 4 ++-- generator/io.vertx/vertx-web-graphql/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-freemarker/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-handlebars/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-jade/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-mvel/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-pebble/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-rocker/pom.xml | 4 ++-- generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml | 4 ++-- generator/io.vertx/vertx-web/pom.xml | 4 ++-- generator/pom.xml | 4 ++-- generator/xyz.jetdrone/hot-reload/pom.xml | 4 ++-- pm/pom.xml | 4 ++-- pom.xml | 2 +- 74 files changed, 147 insertions(+), 147 deletions(-) diff --git a/codegen/pom.xml b/codegen/pom.xml index 2567c66be..655426eff 100644 --- a/codegen/pom.xml +++ b/codegen/pom.xml @@ -6,14 +6,14 @@ io.reactiverse es4x-parent - 0.13.1-SNAPSHOT + 0.13.1 .. 4.0.0 es4x-codegen - 0.13.1-SNAPSHOT + 0.13.1 ${java.home}/../lib/tools.jar diff --git a/es4x/pom.xml b/es4x/pom.xml index d0a7188df..33b5178e6 100644 --- a/es4x/pom.xml +++ b/es4x/pom.xml @@ -6,14 +6,14 @@ io.reactiverse es4x-parent - 0.13.1-SNAPSHOT + 0.13.1 .. 4.0.0 es4x - 0.13.1-SNAPSHOT + 0.13.1 UTF-8 diff --git a/generator/io.reactiverse/elasticsearch-client/pom.xml b/generator/io.reactiverse/elasticsearch-client/pom.xml index dcafea41e..a927e0040 100644 --- a/generator/io.reactiverse/elasticsearch-client/pom.xml +++ b/generator/io.reactiverse/elasticsearch-client/pom.xml @@ -8,12 +8,12 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. elasticsearch-client - 0.13.1-SNAPSHOT + 0.13.1 jar diff --git a/generator/io.vertx/pom.xml b/generator/io.vertx/pom.xml index 65cadc199..370b0699f 100644 --- a/generator/io.vertx/pom.xml +++ b/generator/io.vertx/pom.xml @@ -8,12 +8,12 @@ io.reactiverse es4x-parent - 0.13.1-SNAPSHOT + 0.13.1 ../.. es4x-vertx-stack - 0.13.1-SNAPSHOT + 0.13.1 diff --git a/generator/io.vertx/vertx-amqp-bridge/pom.xml b/generator/io.vertx/vertx-amqp-bridge/pom.xml index e1627a727..577eef7b2 100644 --- a/generator/io.vertx/vertx-amqp-bridge/pom.xml +++ b/generator/io.vertx/vertx-amqp-bridge/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-amqp-bridge - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-common/pom.xml b/generator/io.vertx/vertx-auth-common/pom.xml index 98d8e73de..577b80622 100644 --- a/generator/io.vertx/vertx-auth-common/pom.xml +++ b/generator/io.vertx/vertx-auth-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-common - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-htdigest/pom.xml b/generator/io.vertx/vertx-auth-htdigest/pom.xml index 34622ea0f..9d98035e6 100644 --- a/generator/io.vertx/vertx-auth-htdigest/pom.xml +++ b/generator/io.vertx/vertx-auth-htdigest/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-htdigest - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-htpasswd/pom.xml b/generator/io.vertx/vertx-auth-htpasswd/pom.xml index b76eab0d4..033665f2c 100644 --- a/generator/io.vertx/vertx-auth-htpasswd/pom.xml +++ b/generator/io.vertx/vertx-auth-htpasswd/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-htpasswd - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-jdbc/pom.xml b/generator/io.vertx/vertx-auth-jdbc/pom.xml index 91f404171..3557cb864 100644 --- a/generator/io.vertx/vertx-auth-jdbc/pom.xml +++ b/generator/io.vertx/vertx-auth-jdbc/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-jdbc - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-jwt/pom.xml b/generator/io.vertx/vertx-auth-jwt/pom.xml index 6d5428430..7a33df280 100644 --- a/generator/io.vertx/vertx-auth-jwt/pom.xml +++ b/generator/io.vertx/vertx-auth-jwt/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-jwt - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-mongo/pom.xml b/generator/io.vertx/vertx-auth-mongo/pom.xml index c98aa5808..9f5f3bd5f 100644 --- a/generator/io.vertx/vertx-auth-mongo/pom.xml +++ b/generator/io.vertx/vertx-auth-mongo/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-mongo - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-oauth2/pom.xml b/generator/io.vertx/vertx-auth-oauth2/pom.xml index 4def03cb8..e5f6a6ae2 100644 --- a/generator/io.vertx/vertx-auth-oauth2/pom.xml +++ b/generator/io.vertx/vertx-auth-oauth2/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-oauth2 - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-auth-shiro/pom.xml b/generator/io.vertx/vertx-auth-shiro/pom.xml index 11ee6678f..0d513c1e7 100644 --- a/generator/io.vertx/vertx-auth-shiro/pom.xml +++ b/generator/io.vertx/vertx-auth-shiro/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-auth-shiro - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-bridge-common/pom.xml b/generator/io.vertx/vertx-bridge-common/pom.xml index 060f8e12d..6c45b00e2 100644 --- a/generator/io.vertx/vertx-bridge-common/pom.xml +++ b/generator/io.vertx/vertx-bridge-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-bridge-common - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-cassandra-client/pom.xml b/generator/io.vertx/vertx-cassandra-client/pom.xml index 168afd52b..3682c372c 100644 --- a/generator/io.vertx/vertx-cassandra-client/pom.xml +++ b/generator/io.vertx/vertx-cassandra-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-cassandra-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-circuit-breaker/pom.xml b/generator/io.vertx/vertx-circuit-breaker/pom.xml index a625b9fc7..5498cfc15 100644 --- a/generator/io.vertx/vertx-circuit-breaker/pom.xml +++ b/generator/io.vertx/vertx-circuit-breaker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-circuit-breaker - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-consul/pom.xml b/generator/io.vertx/vertx-config-consul/pom.xml index 7255902c8..664290d91 100644 --- a/generator/io.vertx/vertx-config-consul/pom.xml +++ b/generator/io.vertx/vertx-config-consul/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-consul - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-git/pom.xml b/generator/io.vertx/vertx-config-git/pom.xml index fd1dc28d1..f516e7342 100644 --- a/generator/io.vertx/vertx-config-git/pom.xml +++ b/generator/io.vertx/vertx-config-git/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-git - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-hocon/pom.xml b/generator/io.vertx/vertx-config-hocon/pom.xml index 200c01178..a1499e201 100644 --- a/generator/io.vertx/vertx-config-hocon/pom.xml +++ b/generator/io.vertx/vertx-config-hocon/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-hocon - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml b/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml index a0a80c060..5c88b1f70 100644 --- a/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml +++ b/generator/io.vertx/vertx-config-kubernetes-configmap/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-kubernetes-configmap - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-redis/pom.xml b/generator/io.vertx/vertx-config-redis/pom.xml index cc8bcddce..bdb98ab8c 100644 --- a/generator/io.vertx/vertx-config-redis/pom.xml +++ b/generator/io.vertx/vertx-config-redis/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-redis - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-spring-config-server/pom.xml b/generator/io.vertx/vertx-config-spring-config-server/pom.xml index 6d4d677b4..510e34be7 100644 --- a/generator/io.vertx/vertx-config-spring-config-server/pom.xml +++ b/generator/io.vertx/vertx-config-spring-config-server/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-spring-config-server - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-vault/pom.xml b/generator/io.vertx/vertx-config-vault/pom.xml index 0509fbf95..7c23549d4 100644 --- a/generator/io.vertx/vertx-config-vault/pom.xml +++ b/generator/io.vertx/vertx-config-vault/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-vault - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-yaml/pom.xml b/generator/io.vertx/vertx-config-yaml/pom.xml index 6fa8d4703..37eb15592 100644 --- a/generator/io.vertx/vertx-config-yaml/pom.xml +++ b/generator/io.vertx/vertx-config-yaml/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-yaml - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config-zookeeper/pom.xml b/generator/io.vertx/vertx-config-zookeeper/pom.xml index 51bb7f3ba..097c15486 100644 --- a/generator/io.vertx/vertx-config-zookeeper/pom.xml +++ b/generator/io.vertx/vertx-config-zookeeper/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config-zookeeper - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-config/pom.xml b/generator/io.vertx/vertx-config/pom.xml index 48cb99b09..fd77e81a8 100644 --- a/generator/io.vertx/vertx-config/pom.xml +++ b/generator/io.vertx/vertx-config/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-config - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-consul-client/pom.xml b/generator/io.vertx/vertx-consul-client/pom.xml index 9e079de08..9cefa21cb 100644 --- a/generator/io.vertx/vertx-consul-client/pom.xml +++ b/generator/io.vertx/vertx-consul-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-consul-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-core/pom.xml b/generator/io.vertx/vertx-core/pom.xml index f508a99b2..4125028b8 100644 --- a/generator/io.vertx/vertx-core/pom.xml +++ b/generator/io.vertx/vertx-core/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-core - 0.13.1-SNAPSHOT + 0.13.1 1.2.17 diff --git a/generator/io.vertx/vertx-dropwizard-metrics/pom.xml b/generator/io.vertx/vertx-dropwizard-metrics/pom.xml index 96f073166..bf7cda504 100644 --- a/generator/io.vertx/vertx-dropwizard-metrics/pom.xml +++ b/generator/io.vertx/vertx-dropwizard-metrics/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-dropwizard-metrics - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-health-check/pom.xml b/generator/io.vertx/vertx-health-check/pom.xml index 77b03785d..b62d94ce4 100644 --- a/generator/io.vertx/vertx-health-check/pom.xml +++ b/generator/io.vertx/vertx-health-check/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-health-check - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-jdbc-client/pom.xml b/generator/io.vertx/vertx-jdbc-client/pom.xml index aeb97c954..650071ceb 100644 --- a/generator/io.vertx/vertx-jdbc-client/pom.xml +++ b/generator/io.vertx/vertx-jdbc-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-jdbc-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-jwt/pom.xml b/generator/io.vertx/vertx-jwt/pom.xml index 2bd9c1883..4ae1a6b30 100644 --- a/generator/io.vertx/vertx-jwt/pom.xml +++ b/generator/io.vertx/vertx-jwt/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-jwt - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-kafka-client/pom.xml b/generator/io.vertx/vertx-kafka-client/pom.xml index f0d8c5cce..a9ec58e99 100644 --- a/generator/io.vertx/vertx-kafka-client/pom.xml +++ b/generator/io.vertx/vertx-kafka-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-kafka-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-mail-client/pom.xml b/generator/io.vertx/vertx-mail-client/pom.xml index fdf34bdd8..f5754b2e4 100644 --- a/generator/io.vertx/vertx-mail-client/pom.xml +++ b/generator/io.vertx/vertx-mail-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-mail-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-micrometer-metrics/pom.xml b/generator/io.vertx/vertx-micrometer-metrics/pom.xml index b73d9c2fd..b07e82476 100644 --- a/generator/io.vertx/vertx-micrometer-metrics/pom.xml +++ b/generator/io.vertx/vertx-micrometer-metrics/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-micrometer-metrics - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-mongo-client/pom.xml b/generator/io.vertx/vertx-mongo-client/pom.xml index 17af9a7ac..b186e4c7a 100644 --- a/generator/io.vertx/vertx-mongo-client/pom.xml +++ b/generator/io.vertx/vertx-mongo-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-mongo-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-mqtt/pom.xml b/generator/io.vertx/vertx-mqtt/pom.xml index e290e0624..7bf23cc3f 100644 --- a/generator/io.vertx/vertx-mqtt/pom.xml +++ b/generator/io.vertx/vertx-mqtt/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-mqtt - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-mysql-client/pom.xml b/generator/io.vertx/vertx-mysql-client/pom.xml index 3f0a2dd30..199760680 100644 --- a/generator/io.vertx/vertx-mysql-client/pom.xml +++ b/generator/io.vertx/vertx-mysql-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-mysql-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml b/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml index 6d9f3a594..5bf1f3b90 100644 --- a/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml +++ b/generator/io.vertx/vertx-mysql-postgresql-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-mysql-postgresql-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-pg-client/pom.xml b/generator/io.vertx/vertx-pg-client/pom.xml index 3d762bf15..caf09f020 100644 --- a/generator/io.vertx/vertx-pg-client/pom.xml +++ b/generator/io.vertx/vertx-pg-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-pg-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-rabbitmq-client/pom.xml b/generator/io.vertx/vertx-rabbitmq-client/pom.xml index 6b04d1f03..0c84a30fc 100644 --- a/generator/io.vertx/vertx-rabbitmq-client/pom.xml +++ b/generator/io.vertx/vertx-rabbitmq-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-rabbitmq-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-redis-client/pom.xml b/generator/io.vertx/vertx-redis-client/pom.xml index 94a2f1a42..c71144df1 100644 --- a/generator/io.vertx/vertx-redis-client/pom.xml +++ b/generator/io.vertx/vertx-redis-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-redis-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml b/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml index bf34eb09e..5e10d0d59 100644 --- a/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-backend-consul/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-backend-consul - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml b/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml index 7e772cf4c..2d619e7c6 100644 --- a/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-backend-redis/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-backend-redis - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml b/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml index 91848b39a..4e75b57f8 100644 --- a/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-backend-zookeeper/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-backend-zookeeper - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml index 488adcd84..e09338a63 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-consul/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-bridge-consul - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml index 7558c2824..d729fdaed 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-docker-links/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-bridge-docker-links - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml index 3a303fd59..fc22ae007 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-docker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-bridge-docker - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml index ec0741ad9..9fb19042d 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-kubernetes/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-bridge-kubernetes - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml b/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml index 06ebfad7d..efa4c8945 100644 --- a/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml +++ b/generator/io.vertx/vertx-service-discovery-bridge-zookeeper/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery-bridge-zookeeper - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-discovery/pom.xml b/generator/io.vertx/vertx-service-discovery/pom.xml index 22eb47869..8d563e5d5 100644 --- a/generator/io.vertx/vertx-service-discovery/pom.xml +++ b/generator/io.vertx/vertx-service-discovery/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-discovery - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-service-proxy/pom.xml b/generator/io.vertx/vertx-service-proxy/pom.xml index e4f0eebb7..0e650e925 100644 --- a/generator/io.vertx/vertx-service-proxy/pom.xml +++ b/generator/io.vertx/vertx-service-proxy/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-service-proxy - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-shell/pom.xml b/generator/io.vertx/vertx-shell/pom.xml index 0737c8cb6..4a500747d 100644 --- a/generator/io.vertx/vertx-shell/pom.xml +++ b/generator/io.vertx/vertx-shell/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-shell - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-sql-client/pom.xml b/generator/io.vertx/vertx-sql-client/pom.xml index f18b09f3a..0ecbee6b7 100644 --- a/generator/io.vertx/vertx-sql-client/pom.xml +++ b/generator/io.vertx/vertx-sql-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-sql-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-sql-common/pom.xml b/generator/io.vertx/vertx-sql-common/pom.xml index 192a7bc87..9039f799e 100644 --- a/generator/io.vertx/vertx-sql-common/pom.xml +++ b/generator/io.vertx/vertx-sql-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-sql-common - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-stomp/pom.xml b/generator/io.vertx/vertx-stomp/pom.xml index 6e18cbbd8..ad6ea9250 100644 --- a/generator/io.vertx/vertx-stomp/pom.xml +++ b/generator/io.vertx/vertx-stomp/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-stomp - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml b/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml index 0615c141f..4be99f72e 100644 --- a/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml +++ b/generator/io.vertx/vertx-tcp-eventbus-bridge/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-tcp-eventbus-bridge - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-unit/pom.xml b/generator/io.vertx/vertx-unit/pom.xml index 9ec4a66d5..fb6df9a4f 100644 --- a/generator/io.vertx/vertx-unit/pom.xml +++ b/generator/io.vertx/vertx-unit/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-unit - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-api-contract/pom.xml b/generator/io.vertx/vertx-web-api-contract/pom.xml index f86eef244..b27e9a8f5 100644 --- a/generator/io.vertx/vertx-web-api-contract/pom.xml +++ b/generator/io.vertx/vertx-web-api-contract/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-api-contract - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-client/pom.xml b/generator/io.vertx/vertx-web-client/pom.xml index 0bdfc2645..4b13e2cb1 100644 --- a/generator/io.vertx/vertx-web-client/pom.xml +++ b/generator/io.vertx/vertx-web-client/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-client - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-common/pom.xml b/generator/io.vertx/vertx-web-common/pom.xml index 5bb0fa6c7..560ea748f 100644 --- a/generator/io.vertx/vertx-web-common/pom.xml +++ b/generator/io.vertx/vertx-web-common/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-common - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-graphql/pom.xml b/generator/io.vertx/vertx-web-graphql/pom.xml index db45ae4a9..b5edd4706 100644 --- a/generator/io.vertx/vertx-web-graphql/pom.xml +++ b/generator/io.vertx/vertx-web-graphql/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-graphql - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-templ-freemarker/pom.xml b/generator/io.vertx/vertx-web-templ-freemarker/pom.xml index 3c7763a01..e1145056e 100644 --- a/generator/io.vertx/vertx-web-templ-freemarker/pom.xml +++ b/generator/io.vertx/vertx-web-templ-freemarker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-templ-freemarker - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-templ-handlebars/pom.xml b/generator/io.vertx/vertx-web-templ-handlebars/pom.xml index 41c70191e..cbab9e8c2 100644 --- a/generator/io.vertx/vertx-web-templ-handlebars/pom.xml +++ b/generator/io.vertx/vertx-web-templ-handlebars/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-templ-handlebars - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-templ-jade/pom.xml b/generator/io.vertx/vertx-web-templ-jade/pom.xml index dc02112e5..aafee2417 100644 --- a/generator/io.vertx/vertx-web-templ-jade/pom.xml +++ b/generator/io.vertx/vertx-web-templ-jade/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-templ-jade - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-templ-mvel/pom.xml b/generator/io.vertx/vertx-web-templ-mvel/pom.xml index 2fa75ee0c..43f159e9f 100644 --- a/generator/io.vertx/vertx-web-templ-mvel/pom.xml +++ b/generator/io.vertx/vertx-web-templ-mvel/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-templ-mvel - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-templ-pebble/pom.xml b/generator/io.vertx/vertx-web-templ-pebble/pom.xml index 6686b5c46..b078a6fb1 100644 --- a/generator/io.vertx/vertx-web-templ-pebble/pom.xml +++ b/generator/io.vertx/vertx-web-templ-pebble/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-templ-pebble - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-templ-rocker/pom.xml b/generator/io.vertx/vertx-web-templ-rocker/pom.xml index 0ee84cfc5..257add1cf 100644 --- a/generator/io.vertx/vertx-web-templ-rocker/pom.xml +++ b/generator/io.vertx/vertx-web-templ-rocker/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-templ-rocker - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml b/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml index 25a9a944f..af6dc7fac 100644 --- a/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml +++ b/generator/io.vertx/vertx-web-templ-thymeleaf/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web-templ-thymeleaf - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/io.vertx/vertx-web/pom.xml b/generator/io.vertx/vertx-web/pom.xml index 1515d5a23..d28a2637c 100644 --- a/generator/io.vertx/vertx-web/pom.xml +++ b/generator/io.vertx/vertx-web/pom.xml @@ -6,14 +6,14 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. 4.0.0 vertx-web - 0.13.1-SNAPSHOT + 0.13.1 io.vertx diff --git a/generator/pom.xml b/generator/pom.xml index 17f8e1ba2..5eeca1f61 100644 --- a/generator/pom.xml +++ b/generator/pom.xml @@ -6,13 +6,13 @@ io.reactiverse es4x-parent - 0.13.1-SNAPSHOT + 0.13.1 .. io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 pom diff --git a/generator/xyz.jetdrone/hot-reload/pom.xml b/generator/xyz.jetdrone/hot-reload/pom.xml index e33d05a18..62f64bec7 100644 --- a/generator/xyz.jetdrone/hot-reload/pom.xml +++ b/generator/xyz.jetdrone/hot-reload/pom.xml @@ -8,12 +8,12 @@ io.reactiverse.es4x es4x-generator - 0.13.1-SNAPSHOT + 0.13.1 ../.. hot-reload - 0.13.1-SNAPSHOT + 0.13.1 jar diff --git a/pm/pom.xml b/pm/pom.xml index fdb80455f..19645534c 100644 --- a/pm/pom.xml +++ b/pm/pom.xml @@ -6,14 +6,14 @@ io.reactiverse es4x-parent - 0.13.1-SNAPSHOT + 0.13.1 .. 4.0.0 es4x-pm - 0.13.1-SNAPSHOT + 0.13.1 UTF-8 diff --git a/pom.xml b/pom.xml index dd34786bb..9771d711a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.reactiverse es4x-parent - 0.13.1-SNAPSHOT + 0.13.1 pom From 28282d54ce1e6f82190708ec105d25543d03ae8d Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 21 Sep 2020 21:30:24 +0200 Subject: [PATCH 20/21] Fixes for the release Signed-off-by: Paulo Lopes --- docs/advanced/vertx.md | 48 +++++++++++++++++++ docs/api/README.md | 4 ++ examples/simple/package.json | 2 +- .../main/java/io/reactiverse/es4x/cli/PM.java | 6 ++- .../es4x/commands/SecurityPolicy.java | 2 +- 5 files changed, 59 insertions(+), 3 deletions(-) diff --git a/docs/advanced/vertx.md b/docs/advanced/vertx.md index ead03e5d1..1baf2188d 100644 --- a/docs/advanced/vertx.md +++ b/docs/advanced/vertx.md @@ -3,6 +3,54 @@ As it should be clear at this point, Vert.x is the IO and default programming model used by ES4X. There are however some nice improvements to the standard [Vert.x APIs](https://vertx.io). +## Generated APIs + +All APIs published to `npm` under the namespaces `@vertx` and `@reactiverse` are code generated. Code generation is an +helper that allows these APIs to be used by `JavaScript` users in a format that feels familiar without compromising the +application performance. + +Interacting with the JVM all happens over the `Java` object. The most important bit is to pull a JVM class to JS: + +```js +// Import the java.lang.Math class to be usable +// as a JS type in the script +const Math = Java.type('javalang.Math'); +``` + +Now one could just do this for all APIs but there are several limitations that ES4X tries to address: + +* **Error Prone** - One needs to know the exact Java APIs and Types in order to use them from JavaScript. +* **No way to define dependencies** - If you need to use APIs from different modules, importing class by class cannot define dependencies between them. +* **No IDE support** - The developer will need to know the API before using it and the IDE will not assist. + +ES4X generator solves this by creating a `npm` module for each `vertx` module and type defintions for each class. + +Each module will have the following files: + +* `package.json` - Defines dependencies between modules +* `index.js` - commonjs API interfaces +* `index.mjs` - ESM API interfaces +* `index.d.ts` - Full type definitions for the API interfaces +* `enum.js` - commonjs API enumerations +* `enum.mjs` - ESM API enumerations +* `enum.d.ts` - Full type definitions for the API enumerations +* `options.js` - commonjs API data objects. +* `options.mjs` - ESM API data objects. +* `options.d.ts` - Full type definitions for the API data objects + +All the `index` files will simplify importing of JVM classes by replacing, for example: + +```js +// without ES4X +const Router = Java.type('io.vertx.ext.web.Router'); +// with +import { Router } from '@vertx/web'; +``` + +This small change will make IDEs assist with development and package managers to download dependencies as needed. +Finally all the `.d.ts` files will hint IDEs about types and give code completion support. + + ## Promise/Future Vert.x has 2 types: diff --git a/docs/api/README.md b/docs/api/README.md index ba4af6d58..41b5098e3 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -1,5 +1,9 @@ # API Reference +All generated APIs relate to the core vert.x APIs, so for better understanding one should read the vert.x +[manuals](https://vertx.io/docs) and adapt the manual imports/examples as explained in +[vert.x interop](../advanced/vertx#generated-apis). + ## Vertx The Vert.x core APIs contain the backbone for writing Vert.x applications and low-level support for HTTP, TCP, UDP, diff --git a/examples/simple/package.json b/examples/simple/package.json index 589468641..dcc1e65c6 100644 --- a/examples/simple/package.json +++ b/examples/simple/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@vertx/core": "latest", - "es4x-pm": "latest" + "@es4x/create": "latest" }, "scripts": { "postinstall": "es4x install", diff --git a/pm/src/main/java/io/reactiverse/es4x/cli/PM.java b/pm/src/main/java/io/reactiverse/es4x/cli/PM.java index 0d8c04276..7fabfc661 100644 --- a/pm/src/main/java/io/reactiverse/es4x/cli/PM.java +++ b/pm/src/main/java/io/reactiverse/es4x/cli/PM.java @@ -21,7 +21,10 @@ private static void printUsage() { System.err.println(); System.err.println("Current VM:"); System.out.println("Name: " + System.getProperty("java.vm.name") + " - " + System.getProperty("java.version")); - System.out.println("Vendor: " + System.getProperty("java.vendor.version", "-")); + String vendor = System.getProperty("java.vendor.version"); + if (vendor != null && vendor.length() > 0) { + System.out.println("Vendor: " + vendor); + } System.err.println(); System.err.println("Run 'es4x COMMAND --help' for more information on a command."); } @@ -63,6 +66,7 @@ public static void main(String[] args) { System.arraycopy(args, 1, cmdArgs, 0, cmdArgs.length); switch (command) { + case "app": case Project.NAME: verifyRuntime(true); new Project(cmdArgs).run(); diff --git a/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java b/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java index 54d2de648..91fc245d4 100644 --- a/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java +++ b/pm/src/main/java/io/reactiverse/es4x/commands/SecurityPolicy.java @@ -13,7 +13,7 @@ public class SecurityPolicy implements Runnable { public static final String NAME = "security-policy"; - public static final String SUMMARY = "Initializes a secure by default VM 'security.policy' to work with ES4X."; + public static final String SUMMARY = "Initializes a secure by default VM 'security.policy'."; private File cwd; From 1f08621560284caa812990d1f0c2fbd2501e0ae6 Mon Sep 17 00:00:00 2001 From: Paulo Lopes Date: Mon, 21 Sep 2020 22:24:05 +0200 Subject: [PATCH 21/21] Updated docs Signed-off-by: Paulo Lopes --- CHANGELOG.md | 6 + docs/.vuepress/config.js | 18 +- .../elasticsearch-client/index.html | 3 +- .../public/@vertx/amqp-bridge/index.html | 3 +- .../public/@vertx/auth-common/index.html | 3 +- .../public/@vertx/auth-htdigest/index.html | 3 +- .../public/@vertx/auth-htpasswd/index.html | 3 +- .../public/@vertx/auth-jdbc/index.html | 3 +- .../public/@vertx/auth-jwt/index.html | 3 +- .../public/@vertx/auth-mongo/index.html | 3 +- .../@vertx/auth-oauth2/assets/js/search.json | 2 +- .../classes/oauth2clientoptions.html | 72 ++++- .../public/@vertx/auth-oauth2/index.html | 3 +- .../public/@vertx/auth-shiro/index.html | 3 +- .../public/@vertx/bridge-common/index.html | 3 +- .../public/@vertx/cassandra-client/index.html | 3 +- .../public/@vertx/circuit-breaker/index.html | 3 +- .../public/@vertx/config-vault/index.html | 3 +- .../.vuepress/public/@vertx/config/index.html | 3 +- .../consul-client/assets/js/search.json | 2 +- .../classes/consulclientoptions.html | 72 ++++- .../consul-client/classes/coordinate.html | 24 +- .../consul-client/classes/coordinatelist.html | 12 +- .../consul-client/classes/dccoordinates.html | 12 +- .../@vertx/consul-client/classes/event.html | 36 +-- .../consul-client/classes/eventlist.html | 12 +- .../classes/eventlistoptions.html | 12 +- .../consul-client/classes/eventoptions.html | 20 +- .../consul-client/classes/keyvalue.html | 32 +- .../consul-client/classes/keyvaluelist.html | 12 +- .../classes/keyvalueoptions.html | 20 +- .../classes/maintenanceoptions.html | 16 +- .../@vertx/consul-client/classes/node.html | 20 +- .../consul-client/classes/nodelist.html | 12 +- .../classes/nodequeryoptions.html | 12 +- .../classes/preparedquerydefinition.html | 56 ++-- .../classes/preparedqueryexecuteoptions.html | 12 +- .../classes/preparedqueryexecuteresponse.html | 24 +- .../@vertx/consul-client/classes/service.html | 36 +-- .../consul-client/classes/serviceentry.html | 16 +- .../classes/serviceentrylist.html | 12 +- .../consul-client/classes/servicelist.html | 12 +- .../consul-client/classes/serviceoptions.html | 36 +-- .../classes/servicequeryoptions.html | 16 +- .../@vertx/consul-client/classes/session.html | 28 +- .../consul-client/classes/sessionlist.html | 12 +- .../consul-client/classes/sessionoptions.html | 28 +- .../consul-client/classes/txnerror.html | 12 +- .../consul-client/classes/txnkvoperation.html | 28 +- .../consul-client/classes/txnrequest.html | 6 +- .../consul-client/classes/txnresponse.html | 12 +- .../public/@vertx/consul-client/index.html | 3 +- .../public/@vertx/core/assets/js/search.json | 2 +- .../core/classes/httpclientoptions.html | 88 +++++- .../core/classes/httpserveroptions.html | 268 ++++++++--------- .../core/classes/httpserverrequest.html | 118 +++++++- .../core/classes/httpserverresponse.html | 126 ++++---- .../core/classes/jdksslengineoptions.html | 4 +- .../@vertx/core/classes/jksoptions.html | 16 +- .../public/@vertx/core/classes/jsonevent.html | 42 +-- .../@vertx/core/classes/jsonparser.html | 36 +-- .../@vertx/core/classes/jsonpointer.html | 46 +-- .../core/classes/jsonpointeriterator.html | 20 +- .../public/@vertx/core/classes/localmap.html | 28 +- .../public/@vertx/core/classes/lock.html | 2 +- .../public/@vertx/core/classes/message.html | 24 +- .../@vertx/core/classes/messageconsumer.html | 34 +-- .../@vertx/core/classes/messageproducer.html | 34 +-- .../@vertx/core/classes/metricsoptions.html | 8 +- .../public/@vertx/core/classes/multimap.html | 56 ++-- .../public/@vertx/core/classes/mxrecord.html | 4 +- .../public/@vertx/core/classes/netclient.html | 12 +- .../@vertx/core/classes/netclientoptions.html | 162 +++++----- .../public/@vertx/core/classes/netserver.html | 28 +- .../@vertx/core/classes/netserveroptions.html | 154 +++++----- .../public/@vertx/core/classes/netsocket.html | 78 ++--- .../@vertx/core/classes/networkoptions.html | 28 +- .../@vertx/core/classes/openoptions.html | 48 +-- .../core/classes/opensslengineoptions.html | 8 +- .../public/@vertx/core/classes/option.html | 56 ++-- .../core/classes/pemkeycertoptions.html | 28 +- .../@vertx/core/classes/pemtrustoptions.html | 12 +- .../@vertx/core/classes/pfxoptions.html | 16 +- .../public/@vertx/core/classes/pipe.html | 12 +- .../public/@vertx/core/classes/promise.html | 20 +- .../@vertx/core/classes/proxyoptions.html | 24 +- .../public/@vertx/core/classes/pump.html | 12 +- .../@vertx/core/classes/recordparser.html | 48 +-- .../@vertx/core/classes/requestoptions.html | 22 +- .../core/classes/selfsignedcertificate.html | 14 +- .../@vertx/core/classes/serverwebsocket.html | 124 ++++---- .../@vertx/core/classes/shareddata.html | 20 +- .../@vertx/core/classes/socketaddress.html | 10 +- .../public/@vertx/core/classes/srvrecord.html | 14 +- .../@vertx/core/classes/streampriority.html | 16 +- .../@vertx/core/classes/tcpssloptions.html | 130 ++++---- .../@vertx/core/classes/timeoutstream.html | 20 +- .../public/@vertx/core/classes/vertx.html | 112 +++---- .../@vertx/core/classes/vertxoptions.html | 112 +++---- .../public/@vertx/core/classes/websocket.html | 108 +++---- .../core/classes/websocketconnectoptions.html | 32 +- .../@vertx/core/classes/websocketframe.html | 28 +- .../@vertx/core/classes/workerexecutor.html | 8 +- docs/.vuepress/public/@vertx/core/index.html | 3 +- .../@vertx/core/interfaces/measured.html | 2 +- .../@vertx/core/interfaces/readstream.html | 18 +- .../@vertx/core/interfaces/streambase.html | 2 +- .../@vertx/core/interfaces/websocketbase.html | 108 +++---- .../@vertx/core/interfaces/writestream.html | 20 +- .../@vertx/dropwizard-metrics/index.html | 3 +- .../public/@vertx/health-check/index.html | 3 +- .../public/@vertx/jdbc-client/index.html | 3 +- docs/.vuepress/public/@vertx/jwt/index.html | 3 +- .../@vertx/kafka-client/assets/js/search.json | 2 +- .../kafka-client/classes/kafkaconsumer.html | 126 +++++--- .../classes/kafkaconsumerrecord.html | 18 +- .../classes/kafkaconsumerrecords.html | 6 +- .../kafka-client/classes/kafkaheader.html | 8 +- .../kafka-client/classes/kafkaproducer.html | 42 +-- .../classes/kafkaproducerrecord.html | 26 +- .../public/@vertx/kafka-client/index.html | 3 +- .../public/@vertx/mail-client/index.html | 3 +- .../@vertx/micrometer-metrics/index.html | 3 +- .../public/@vertx/mongo-client/index.html | 3 +- .../mysql-client/classes/mysqlclient.html | 6 +- .../mysql-client/classes/mysqlconnection.html | 24 +- .../mysql-client/classes/mysqlpool.html | 12 +- .../public/@vertx/mysql-client/index.html | 3 +- .../@vertx/mysql-postgresql-client/index.html | 3 +- .../public/@vertx/pg-client/index.html | 3 +- .../public/@vertx/rabbitmq-client/index.html | 3 +- .../public/@vertx/redis-client/index.html | 3 +- .../@vertx/service-discovery/index.html | 3 +- docs/.vuepress/public/@vertx/shell/index.html | 3 +- .../@vertx/sql-client/assets/js/search.json | 2 +- .../sql-client/classes/columndescriptor.html | 257 ++++++++++++++++ .../@vertx/sql-client/classes/cursor.html | 32 +- .../sql-client/classes/databasemetadata.html | 11 +- .../@vertx/sql-client/classes/pool.html | 19 +- .../sql-client/classes/pooloptions.html | 3 + .../sql-client/classes/preparedquery.html | 11 +- .../sql-client/classes/preparedstatement.html | 17 +- .../sql-client/classes/propertykind.html | 77 +++++ .../@vertx/sql-client/classes/query.html | 7 +- .../public/@vertx/sql-client/classes/row.html | 165 ++++++----- .../sql-client/classes/rowiterator.html | 7 +- .../@vertx/sql-client/classes/rowset.html | 44 ++- .../@vertx/sql-client/classes/rowstream.html | 25 +- .../@vertx/sql-client/classes/sqlclient.html | 9 +- .../sql-client/classes/sqlconnection.html | 21 +- .../sql-client/classes/sqlconnectoptions.html | 3 + .../@vertx/sql-client/classes/sqlresult.html | 41 ++- .../sql-client/classes/transaction.html | 21 +- .../@vertx/sql-client/classes/tuple.html | 161 +++++----- .../public/@vertx/sql-client/globals.html | 4 + .../public/@vertx/sql-client/index.html | 6 +- .../public/@vertx/sql-common/index.html | 3 +- docs/.vuepress/public/@vertx/stomp/index.html | 3 +- .../@vertx/tcp-eventbus-bridge/index.html | 3 +- docs/.vuepress/public/@vertx/unit/index.html | 3 +- .../@vertx/vertx-mqtt/assets/js/search.json | 2 +- .../@vertx/vertx-mqtt/classes/mqttclient.html | 116 ++++++-- .../vertx-mqtt/classes/mqttclientoptions.html | 280 +++++++++++------- .../classes/mqttconnackmessage.html | 6 +- .../vertx-mqtt/classes/mqttendpoint.html | 88 +++--- .../classes/mqttpublishmessage.html | 12 +- .../@vertx/vertx-mqtt/classes/mqttserver.html | 26 +- .../vertx-mqtt/classes/mqttserveroptions.html | 164 +++++----- .../vertx-mqtt/classes/mqttsubackmessage.html | 4 +- .../classes/mqttsubscribemessage.html | 4 +- .../classes/mqtttopicsubscription.html | 4 +- .../classes/mqttunsubscribemessage.html | 4 +- .../@vertx/vertx-mqtt/classes/mqttwill.html | 12 +- .../public/@vertx/vertx-mqtt/index.html | 3 +- .../vertx-mqtt/interfaces/mqttmessage.html | 2 +- .../public/@vertx/web-api-contract/index.html | 3 +- .../@vertx/web-client/assets/js/search.json | 2 +- .../web-client/classes/webclientoptions.html | 72 ++++- .../public/@vertx/web-client/index.html | 3 +- .../@vertx/web-common/assets/js/search.json | 2 +- .../web-common/classes/formdatapart.html | 25 +- .../web-common/classes/multipartform.html | 66 ++++- .../web-common/classes/templateengine.html | 6 +- .../web-common/classes/webenvironment.html | 8 +- .../public/@vertx/web-common/index.html | 3 +- .../@vertx/web-graphql/assets/js/search.json | 2 +- .../@vertx/web-graphql/classes/graphql.html | 62 ++-- .../web-graphql/classes/graphql_builder.html | 8 +- .../web-graphql/classes/runtimewiring.html | 24 +- .../classes/runtimewiring_builder.html | 50 ++-- .../web-graphql/classes/schemaparser.html | 12 +- .../public/@vertx/web-graphql/index.html | 3 +- .../@vertx/web-templ-freemarker/index.html | 3 +- .../@vertx/web-templ-handlebars/index.html | 3 +- .../public/@vertx/web-templ-jade/index.html | 3 +- .../public/@vertx/web-templ-mvel/index.html | 3 +- .../public/@vertx/web-templ-pebble/index.html | 3 +- .../public/@vertx/web-templ-rocker/index.html | 3 +- .../@vertx/web-templ-thymeleaf/index.html | 3 +- docs/.vuepress/public/@vertx/web/index.html | 3 +- .../advanced/{async-errors.md => globals.md} | 0 201 files changed, 3446 insertions(+), 2369 deletions(-) create mode 100644 docs/.vuepress/public/@vertx/sql-client/classes/columndescriptor.html rename docs/zh/advanced/{async-errors.md => globals.md} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1973181be..3d2147962 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [0.13.1] - 2020-09-22 +- Upgraded vert.x to 3.9.3 +- PM will warn about misalign Graal version +- New docs explaining the details of ES4X +- `es4x-pm` npm renamed to `@vertx/create` + ## [0.13.0] - 2020-07-27 - Upgraded vert.x to 3.9.2 - shutdown hook can be async now diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 0990c7545..0cd9cbfc8 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -166,12 +166,12 @@ module.exports = { collapsable: false, children: [ '', - 'commonjs', - 'esm', - 'vertx', - 'globals', - 'worker', - 'graphql' + // 'commonjs', + // 'esm', + // 'vertx', + // 'globals', + // 'worker', + // 'graphql' ] } ], @@ -240,9 +240,9 @@ module.exports = { collapsable: false, children: [ '', - 'commonjs', - 'esm', - 'vertx', + // 'commonjs', + // 'esm', + // 'vertx', 'globals', 'worker', 'graphql' diff --git a/docs/.vuepress/public/@reactiverse/elasticsearch-client/index.html b/docs/.vuepress/public/@reactiverse/elasticsearch-client/index.html index b3b322d56..5b521beef 100644 --- a/docs/.vuepress/public/@reactiverse/elasticsearch-client/index.html +++ b/docs/.vuepress/public/@reactiverse/elasticsearch-client/index.html @@ -63,7 +63,8 @@

@reactiverse/elasticsearch-client

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/amqp-bridge/index.html b/docs/.vuepress/public/@vertx/amqp-bridge/index.html index 3490e0c7f..7a8bd7fc7 100644 --- a/docs/.vuepress/public/@vertx/amqp-bridge/index.html +++ b/docs/.vuepress/public/@vertx/amqp-bridge/index.html @@ -63,7 +63,8 @@

@vertx/amqp-bridge

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/auth-common/index.html b/docs/.vuepress/public/@vertx/auth-common/index.html index 33d3e1d7a..e4276bbbf 100644 --- a/docs/.vuepress/public/@vertx/auth-common/index.html +++ b/docs/.vuepress/public/@vertx/auth-common/index.html @@ -63,7 +63,8 @@

@vertx/auth-common

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/auth-htdigest/index.html b/docs/.vuepress/public/@vertx/auth-htdigest/index.html index 037d3cfb4..78d06f26e 100644 --- a/docs/.vuepress/public/@vertx/auth-htdigest/index.html +++ b/docs/.vuepress/public/@vertx/auth-htdigest/index.html @@ -63,7 +63,8 @@

@vertx/auth-htdigest

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/auth-htpasswd/index.html b/docs/.vuepress/public/@vertx/auth-htpasswd/index.html index 0b8c7e15a..49f7b6dfc 100644 --- a/docs/.vuepress/public/@vertx/auth-htpasswd/index.html +++ b/docs/.vuepress/public/@vertx/auth-htpasswd/index.html @@ -63,7 +63,8 @@

@vertx/auth-htpasswd

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/auth-jdbc/index.html b/docs/.vuepress/public/@vertx/auth-jdbc/index.html index 9d8a73f6e..368805b27 100644 --- a/docs/.vuepress/public/@vertx/auth-jdbc/index.html +++ b/docs/.vuepress/public/@vertx/auth-jdbc/index.html @@ -63,7 +63,8 @@

@vertx/auth-jdbc

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/auth-jwt/index.html b/docs/.vuepress/public/@vertx/auth-jwt/index.html index 02b7a19df..68fef5041 100644 --- a/docs/.vuepress/public/@vertx/auth-jwt/index.html +++ b/docs/.vuepress/public/@vertx/auth-jwt/index.html @@ -63,7 +63,8 @@

@vertx/auth-jwt

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/auth-mongo/index.html b/docs/.vuepress/public/@vertx/auth-mongo/index.html index 5d866fa0e..0f5b4bb85 100644 --- a/docs/.vuepress/public/@vertx/auth-mongo/index.html +++ b/docs/.vuepress/public/@vertx/auth-mongo/index.html @@ -63,7 +63,8 @@

@vertx/auth-mongo

npm (scoped) - npm

+ npm + Security Status

Generated JavaScript bindings for Eclipse Vert.x.

Documentation

diff --git a/docs/.vuepress/public/@vertx/auth-oauth2/assets/js/search.json b/docs/.vuepress/public/@vertx/auth-oauth2/assets/js/search.json index 0ee1ea136..acca2b375 100644 --- a/docs/.vuepress/public/@vertx/auth-oauth2/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/auth-oauth2/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"4":"Enumeration","16":"Enumeration member","128":"Class","512":"Constructor","2048":"Method"},"rows":[{"id":0,"kind":4,"name":"OAuth2FlowType","url":"enums/oauth2flowtype.html","classes":"tsd-kind-enum"},{"id":1,"kind":16,"name":"AUTH_CODE","url":"enums/oauth2flowtype.html#auth_code","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":2,"kind":16,"name":"CLIENT","url":"enums/oauth2flowtype.html#client","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":3,"kind":16,"name":"PASSWORD","url":"enums/oauth2flowtype.html#password","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":4,"kind":16,"name":"AUTH_JWT","url":"enums/oauth2flowtype.html#auth_jwt","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":5,"kind":128,"name":"OAuth2ClientOptions","url":"classes/oauth2clientoptions.html","classes":"tsd-kind-class"},{"id":6,"kind":512,"name":"constructor","url":"classes/oauth2clientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":7,"kind":2048,"name":"getAlpnVersions","url":"classes/oauth2clientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":8,"kind":2048,"name":"setAlpnVersions","url":"classes/oauth2clientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":9,"kind":2048,"name":"getAuthorizationPath","url":"classes/oauth2clientoptions.html#getauthorizationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":10,"kind":2048,"name":"setAuthorizationPath","url":"classes/oauth2clientoptions.html#setauthorizationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":11,"kind":2048,"name":"getClientID","url":"classes/oauth2clientoptions.html#getclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":12,"kind":2048,"name":"setClientID","url":"classes/oauth2clientoptions.html#setclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":13,"kind":2048,"name":"getClientSecret","url":"classes/oauth2clientoptions.html#getclientsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":14,"kind":2048,"name":"setClientSecret","url":"classes/oauth2clientoptions.html#setclientsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":15,"kind":2048,"name":"getClientSecretParameterName","url":"classes/oauth2clientoptions.html#getclientsecretparametername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":16,"kind":2048,"name":"setClientSecretParameterName","url":"classes/oauth2clientoptions.html#setclientsecretparametername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":17,"kind":2048,"name":"getConnectTimeout","url":"classes/oauth2clientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":18,"kind":2048,"name":"setConnectTimeout","url":"classes/oauth2clientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":19,"kind":2048,"name":"getCrlPaths","url":"classes/oauth2clientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":20,"kind":2048,"name":"addCrlPath","url":"classes/oauth2clientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":21,"kind":2048,"name":"getCrlValues","url":"classes/oauth2clientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":22,"kind":2048,"name":"addCrlValue","url":"classes/oauth2clientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":23,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/oauth2clientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":24,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/oauth2clientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":25,"kind":2048,"name":"getDefaultHost","url":"classes/oauth2clientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":26,"kind":2048,"name":"setDefaultHost","url":"classes/oauth2clientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":27,"kind":2048,"name":"getDefaultPort","url":"classes/oauth2clientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":28,"kind":2048,"name":"setDefaultPort","url":"classes/oauth2clientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":29,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/oauth2clientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":30,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/oauth2clientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":31,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/oauth2clientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":32,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/oauth2clientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":33,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/oauth2clientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":34,"kind":2048,"name":"getExtraParameters","url":"classes/oauth2clientoptions.html#getextraparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":35,"kind":2048,"name":"setExtraParameters","url":"classes/oauth2clientoptions.html#setextraparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":36,"kind":2048,"name":"getFlow","url":"classes/oauth2clientoptions.html#getflow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":37,"kind":2048,"name":"setFlow","url":"classes/oauth2clientoptions.html#setflow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":38,"kind":2048,"name":"isForceSni","url":"classes/oauth2clientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":39,"kind":2048,"name":"setForceSni","url":"classes/oauth2clientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":40,"kind":2048,"name":"getHeaders","url":"classes/oauth2clientoptions.html#getheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":41,"kind":2048,"name":"setHeaders","url":"classes/oauth2clientoptions.html#setheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":42,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/oauth2clientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":43,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/oauth2clientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":44,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/oauth2clientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":45,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/oauth2clientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":46,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/oauth2clientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":47,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/oauth2clientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":48,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/oauth2clientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":49,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/oauth2clientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":50,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/oauth2clientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":51,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/oauth2clientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":52,"kind":2048,"name":"getIdleTimeout","url":"classes/oauth2clientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":53,"kind":2048,"name":"setIdleTimeout","url":"classes/oauth2clientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":54,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/oauth2clientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":55,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/oauth2clientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":56,"kind":2048,"name":"getInitialSettings","url":"classes/oauth2clientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":57,"kind":2048,"name":"setInitialSettings","url":"classes/oauth2clientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":58,"kind":2048,"name":"getIntrospectionPath","url":"classes/oauth2clientoptions.html#getintrospectionpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":59,"kind":2048,"name":"setIntrospectionPath","url":"classes/oauth2clientoptions.html#setintrospectionpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":60,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/oauth2clientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":61,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/oauth2clientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":62,"kind":2048,"name":"getJwkPath","url":"classes/oauth2clientoptions.html#getjwkpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":63,"kind":2048,"name":"setJwkPath","url":"classes/oauth2clientoptions.html#setjwkpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":64,"kind":2048,"name":"getJWTOptions","url":"classes/oauth2clientoptions.html#getjwtoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":65,"kind":2048,"name":"setJWTOptions","url":"classes/oauth2clientoptions.html#setjwtoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":66,"kind":2048,"name":"isKeepAlive","url":"classes/oauth2clientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":67,"kind":2048,"name":"setKeepAlive","url":"classes/oauth2clientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":68,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/oauth2clientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":69,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/oauth2clientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":70,"kind":2048,"name":"getKeyStoreOptions","url":"classes/oauth2clientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":71,"kind":2048,"name":"setKeyStoreOptions","url":"classes/oauth2clientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":72,"kind":2048,"name":"getLocalAddress","url":"classes/oauth2clientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":73,"kind":2048,"name":"setLocalAddress","url":"classes/oauth2clientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":74,"kind":2048,"name":"getLogActivity","url":"classes/oauth2clientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":75,"kind":2048,"name":"setLogActivity","url":"classes/oauth2clientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":76,"kind":2048,"name":"getLogoutPath","url":"classes/oauth2clientoptions.html#getlogoutpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":77,"kind":2048,"name":"setLogoutPath","url":"classes/oauth2clientoptions.html#setlogoutpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":78,"kind":2048,"name":"getMaxChunkSize","url":"classes/oauth2clientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":79,"kind":2048,"name":"setMaxChunkSize","url":"classes/oauth2clientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":80,"kind":2048,"name":"getMaxHeaderSize","url":"classes/oauth2clientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":81,"kind":2048,"name":"setMaxHeaderSize","url":"classes/oauth2clientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":82,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/oauth2clientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":83,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/oauth2clientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":84,"kind":2048,"name":"getMaxPoolSize","url":"classes/oauth2clientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":85,"kind":2048,"name":"setMaxPoolSize","url":"classes/oauth2clientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":86,"kind":2048,"name":"getMaxRedirects","url":"classes/oauth2clientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":87,"kind":2048,"name":"setMaxRedirects","url":"classes/oauth2clientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":88,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/oauth2clientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":89,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/oauth2clientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":90,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":91,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":92,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":93,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":94,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":95,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":96,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":97,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":98,"kind":2048,"name":"getMetricsName","url":"classes/oauth2clientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":99,"kind":2048,"name":"setMetricsName","url":"classes/oauth2clientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":100,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/oauth2clientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":101,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/oauth2clientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":102,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/oauth2clientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":103,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/oauth2clientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":104,"kind":2048,"name":"getPemTrustOptions","url":"classes/oauth2clientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":105,"kind":2048,"name":"setPemTrustOptions","url":"classes/oauth2clientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":106,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/oauth2clientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":107,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/oauth2clientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":108,"kind":2048,"name":"getPfxTrustOptions","url":"classes/oauth2clientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":109,"kind":2048,"name":"setPfxTrustOptions","url":"classes/oauth2clientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":110,"kind":2048,"name":"isPipelining","url":"classes/oauth2clientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":111,"kind":2048,"name":"setPipelining","url":"classes/oauth2clientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":112,"kind":2048,"name":"getPipeliningLimit","url":"classes/oauth2clientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":113,"kind":2048,"name":"setPipeliningLimit","url":"classes/oauth2clientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":114,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/oauth2clientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":115,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/oauth2clientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":116,"kind":2048,"name":"getProtocolVersion","url":"classes/oauth2clientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":117,"kind":2048,"name":"setProtocolVersion","url":"classes/oauth2clientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":118,"kind":2048,"name":"getProxyOptions","url":"classes/oauth2clientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":119,"kind":2048,"name":"setProxyOptions","url":"classes/oauth2clientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":120,"kind":2048,"name":"getPubSecKeys","url":"classes/oauth2clientoptions.html#getpubseckeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":121,"kind":2048,"name":"setPubSecKeys","url":"classes/oauth2clientoptions.html#setpubseckeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":122,"kind":2048,"name":"addPubSecKey","url":"classes/oauth2clientoptions.html#addpubseckey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":123,"kind":2048,"name":"getReceiveBufferSize","url":"classes/oauth2clientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":124,"kind":2048,"name":"setReceiveBufferSize","url":"classes/oauth2clientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":125,"kind":2048,"name":"isReuseAddress","url":"classes/oauth2clientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":126,"kind":2048,"name":"setReuseAddress","url":"classes/oauth2clientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":127,"kind":2048,"name":"isReusePort","url":"classes/oauth2clientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":128,"kind":2048,"name":"setReusePort","url":"classes/oauth2clientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":129,"kind":2048,"name":"getRevocationPath","url":"classes/oauth2clientoptions.html#getrevocationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":130,"kind":2048,"name":"setRevocationPath","url":"classes/oauth2clientoptions.html#setrevocationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":131,"kind":2048,"name":"getScopeSeparator","url":"classes/oauth2clientoptions.html#getscopeseparator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":132,"kind":2048,"name":"setScopeSeparator","url":"classes/oauth2clientoptions.html#setscopeseparator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":133,"kind":2048,"name":"getSendBufferSize","url":"classes/oauth2clientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":134,"kind":2048,"name":"setSendBufferSize","url":"classes/oauth2clientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":135,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/oauth2clientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":136,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/oauth2clientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":137,"kind":2048,"name":"getSite","url":"classes/oauth2clientoptions.html#getsite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":138,"kind":2048,"name":"setSite","url":"classes/oauth2clientoptions.html#setsite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":139,"kind":2048,"name":"getSoLinger","url":"classes/oauth2clientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":140,"kind":2048,"name":"setSoLinger","url":"classes/oauth2clientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":141,"kind":2048,"name":"isSsl","url":"classes/oauth2clientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":142,"kind":2048,"name":"setSsl","url":"classes/oauth2clientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":143,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/oauth2clientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":144,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/oauth2clientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":145,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/oauth2clientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":146,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/oauth2clientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":147,"kind":2048,"name":"isTcpCork","url":"classes/oauth2clientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":148,"kind":2048,"name":"setTcpCork","url":"classes/oauth2clientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":149,"kind":2048,"name":"isTcpFastOpen","url":"classes/oauth2clientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":150,"kind":2048,"name":"setTcpFastOpen","url":"classes/oauth2clientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":151,"kind":2048,"name":"isTcpKeepAlive","url":"classes/oauth2clientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":152,"kind":2048,"name":"setTcpKeepAlive","url":"classes/oauth2clientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":153,"kind":2048,"name":"isTcpNoDelay","url":"classes/oauth2clientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":154,"kind":2048,"name":"setTcpNoDelay","url":"classes/oauth2clientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":155,"kind":2048,"name":"isTcpQuickAck","url":"classes/oauth2clientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":156,"kind":2048,"name":"setTcpQuickAck","url":"classes/oauth2clientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":157,"kind":2048,"name":"getTokenPath","url":"classes/oauth2clientoptions.html#gettokenpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":158,"kind":2048,"name":"setTokenPath","url":"classes/oauth2clientoptions.html#settokenpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":159,"kind":2048,"name":"getTrafficClass","url":"classes/oauth2clientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":160,"kind":2048,"name":"setTrafficClass","url":"classes/oauth2clientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":161,"kind":2048,"name":"isTrustAll","url":"classes/oauth2clientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":162,"kind":2048,"name":"setTrustAll","url":"classes/oauth2clientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":163,"kind":2048,"name":"getTrustStoreOptions","url":"classes/oauth2clientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":164,"kind":2048,"name":"setTrustStoreOptions","url":"classes/oauth2clientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":165,"kind":2048,"name":"isTryUseCompression","url":"classes/oauth2clientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":166,"kind":2048,"name":"setTryUseCompression","url":"classes/oauth2clientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":167,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/oauth2clientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":168,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/oauth2clientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":169,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/oauth2clientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":170,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/oauth2clientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":171,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/oauth2clientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":172,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/oauth2clientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":173,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/oauth2clientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":174,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/oauth2clientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":175,"kind":2048,"name":"isUseAlpn","url":"classes/oauth2clientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":176,"kind":2048,"name":"setUseAlpn","url":"classes/oauth2clientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":177,"kind":2048,"name":"isUseBasicAuthorizationHeader","url":"classes/oauth2clientoptions.html#isusebasicauthorizationheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":178,"kind":2048,"name":"setUseBasicAuthorizationHeader","url":"classes/oauth2clientoptions.html#setusebasicauthorizationheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":179,"kind":2048,"name":"isUsePooledBuffers","url":"classes/oauth2clientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":180,"kind":2048,"name":"setUsePooledBuffers","url":"classes/oauth2clientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":181,"kind":2048,"name":"getUserAgent","url":"classes/oauth2clientoptions.html#getuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":182,"kind":2048,"name":"setUserAgent","url":"classes/oauth2clientoptions.html#setuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":183,"kind":2048,"name":"getUserInfoParameters","url":"classes/oauth2clientoptions.html#getuserinfoparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":184,"kind":2048,"name":"setUserInfoParameters","url":"classes/oauth2clientoptions.html#setuserinfoparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":185,"kind":2048,"name":"getUserInfoPath","url":"classes/oauth2clientoptions.html#getuserinfopath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":186,"kind":2048,"name":"setUserInfoPath","url":"classes/oauth2clientoptions.html#setuserinfopath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":187,"kind":2048,"name":"isValidateIssuer","url":"classes/oauth2clientoptions.html#isvalidateissuer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":188,"kind":2048,"name":"setValidateIssuer","url":"classes/oauth2clientoptions.html#setvalidateissuer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":189,"kind":2048,"name":"isVerifyHost","url":"classes/oauth2clientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":190,"kind":2048,"name":"setVerifyHost","url":"classes/oauth2clientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":191,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":192,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":193,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/oauth2clientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":194,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/oauth2clientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":195,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":196,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":197,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":198,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":199,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/oauth2clientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":200,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/oauth2clientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":201,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":202,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":203,"kind":128,"name":"AccessToken","url":"classes/accesstoken.html","classes":"tsd-kind-class"},{"id":204,"kind":2048,"name":"expired","url":"classes/accesstoken.html#expired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":205,"kind":2048,"name":"accessToken","url":"classes/accesstoken.html#accesstoken-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":206,"kind":2048,"name":"refreshToken","url":"classes/accesstoken.html#refreshtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":207,"kind":2048,"name":"idToken","url":"classes/accesstoken.html#idtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":208,"kind":2048,"name":"opaqueAccessToken","url":"classes/accesstoken.html#opaqueaccesstoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":209,"kind":2048,"name":"opaqueRefreshToken","url":"classes/accesstoken.html#opaquerefreshtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":210,"kind":2048,"name":"opaqueIdToken","url":"classes/accesstoken.html#opaqueidtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":211,"kind":2048,"name":"tokenType","url":"classes/accesstoken.html#tokentype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":212,"kind":2048,"name":"setTrustJWT","url":"classes/accesstoken.html#settrustjwt","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":213,"kind":2048,"name":"refresh","url":"classes/accesstoken.html#refresh","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":214,"kind":2048,"name":"revoke","url":"classes/accesstoken.html#revoke","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":215,"kind":2048,"name":"logout","url":"classes/accesstoken.html#logout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":216,"kind":2048,"name":"introspect","url":"classes/accesstoken.html#introspect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":217,"kind":2048,"name":"userInfo","url":"classes/accesstoken.html#userinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":218,"kind":2048,"name":"fetch","url":"classes/accesstoken.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":219,"kind":128,"name":"AzureADAuth","url":"classes/azureadauth.html","classes":"tsd-kind-class"},{"id":220,"kind":2048,"name":"create","url":"classes/azureadauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"AzureADAuth"},{"id":221,"kind":2048,"name":"discover","url":"classes/azureadauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"AzureADAuth"},{"id":222,"kind":128,"name":"BoxAuth","url":"classes/boxauth.html","classes":"tsd-kind-class"},{"id":223,"kind":2048,"name":"create","url":"classes/boxauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BoxAuth"},{"id":224,"kind":128,"name":"CloudFoundryAuth","url":"classes/cloudfoundryauth.html","classes":"tsd-kind-class"},{"id":225,"kind":2048,"name":"create","url":"classes/cloudfoundryauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CloudFoundryAuth"},{"id":226,"kind":128,"name":"DropboxAuth","url":"classes/dropboxauth.html","classes":"tsd-kind-class"},{"id":227,"kind":2048,"name":"create","url":"classes/dropboxauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"DropboxAuth"},{"id":228,"kind":128,"name":"FacebookAuth","url":"classes/facebookauth.html","classes":"tsd-kind-class"},{"id":229,"kind":2048,"name":"create","url":"classes/facebookauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FacebookAuth"},{"id":230,"kind":128,"name":"FoursquareAuth","url":"classes/foursquareauth.html","classes":"tsd-kind-class"},{"id":231,"kind":2048,"name":"create","url":"classes/foursquareauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FoursquareAuth"},{"id":232,"kind":128,"name":"GithubAuth","url":"classes/githubauth.html","classes":"tsd-kind-class"},{"id":233,"kind":2048,"name":"create","url":"classes/githubauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GithubAuth"},{"id":234,"kind":128,"name":"GoogleAuth","url":"classes/googleauth.html","classes":"tsd-kind-class"},{"id":235,"kind":2048,"name":"create","url":"classes/googleauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GoogleAuth"},{"id":236,"kind":2048,"name":"discover","url":"classes/googleauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"GoogleAuth"},{"id":237,"kind":128,"name":"HerokuAuth","url":"classes/herokuauth.html","classes":"tsd-kind-class"},{"id":238,"kind":2048,"name":"create","url":"classes/herokuauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"HerokuAuth"},{"id":239,"kind":128,"name":"InstagramAuth","url":"classes/instagramauth.html","classes":"tsd-kind-class"},{"id":240,"kind":2048,"name":"create","url":"classes/instagramauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"InstagramAuth"},{"id":241,"kind":128,"name":"KeycloakAuth","url":"classes/keycloakauth.html","classes":"tsd-kind-class"},{"id":242,"kind":2048,"name":"create","url":"classes/keycloakauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakAuth"},{"id":243,"kind":2048,"name":"discover","url":"classes/keycloakauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"KeycloakAuth"},{"id":244,"kind":128,"name":"KeycloakHelper","url":"classes/keycloakhelper.html","classes":"tsd-kind-class"},{"id":245,"kind":2048,"name":"rawIdToken","url":"classes/keycloakhelper.html#rawidtoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":246,"kind":2048,"name":"idToken","url":"classes/keycloakhelper.html#idtoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":247,"kind":2048,"name":"rawAccessToken","url":"classes/keycloakhelper.html#rawaccesstoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":248,"kind":2048,"name":"accessToken","url":"classes/keycloakhelper.html#accesstoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":249,"kind":2048,"name":"authTime","url":"classes/keycloakhelper.html#authtime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":250,"kind":2048,"name":"sessionState","url":"classes/keycloakhelper.html#sessionstate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":251,"kind":2048,"name":"acr","url":"classes/keycloakhelper.html#acr","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":252,"kind":2048,"name":"name","url":"classes/keycloakhelper.html#name","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":253,"kind":2048,"name":"email","url":"classes/keycloakhelper.html#email","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":254,"kind":2048,"name":"preferredUsername","url":"classes/keycloakhelper.html#preferredusername","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":255,"kind":2048,"name":"nickName","url":"classes/keycloakhelper.html#nickname","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":256,"kind":2048,"name":"allowedOrigins","url":"classes/keycloakhelper.html#allowedorigins","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":257,"kind":2048,"name":"parseToken","url":"classes/keycloakhelper.html#parsetoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":258,"kind":128,"name":"KeycloakRBAC","url":"classes/keycloakrbac.html","classes":"tsd-kind-class"},{"id":259,"kind":2048,"name":"create","url":"classes/keycloakrbac.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakRBAC"},{"id":260,"kind":128,"name":"LinkedInAuth","url":"classes/linkedinauth.html","classes":"tsd-kind-class"},{"id":261,"kind":2048,"name":"create","url":"classes/linkedinauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"LinkedInAuth"},{"id":262,"kind":128,"name":"LiveAuth","url":"classes/liveauth.html","classes":"tsd-kind-class"},{"id":263,"kind":2048,"name":"create","url":"classes/liveauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"LiveAuth"},{"id":264,"kind":128,"name":"MailchimpAuth","url":"classes/mailchimpauth.html","classes":"tsd-kind-class"},{"id":265,"kind":2048,"name":"create","url":"classes/mailchimpauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MailchimpAuth"},{"id":266,"kind":128,"name":"MicroProfileRBAC","url":"classes/microprofilerbac.html","classes":"tsd-kind-class"},{"id":267,"kind":2048,"name":"create","url":"classes/microprofilerbac.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MicroProfileRBAC"},{"id":268,"kind":128,"name":"OAuth2Auth","url":"classes/oauth2auth.html","classes":"tsd-kind-class"},{"id":269,"kind":2048,"name":"createKeycloak","url":"classes/oauth2auth.html#createkeycloak","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"OAuth2Auth"},{"id":270,"kind":2048,"name":"create","url":"classes/oauth2auth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"OAuth2Auth"},{"id":271,"kind":2048,"name":"authorizeURL","url":"classes/oauth2auth.html#authorizeurl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":272,"kind":2048,"name":"getToken","url":"classes/oauth2auth.html#gettoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":273,"kind":2048,"name":"decodeToken","url":"classes/oauth2auth.html#decodetoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":274,"kind":2048,"name":"introspectToken","url":"classes/oauth2auth.html#introspecttoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":275,"kind":2048,"name":"getScopeSeparator","url":"classes/oauth2auth.html#getscopeseparator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":276,"kind":2048,"name":"getFlowType","url":"classes/oauth2auth.html#getflowtype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":277,"kind":2048,"name":"loadJWK","url":"classes/oauth2auth.html#loadjwk","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":278,"kind":2048,"name":"rbacHandler","url":"classes/oauth2auth.html#rbachandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":279,"kind":2048,"name":"missingKeyHandler","url":"classes/oauth2auth.html#missingkeyhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":280,"kind":128,"name":"OAuth2RBAC","url":"classes/oauth2rbac.html","classes":"tsd-kind-class"},{"id":281,"kind":2048,"name":"isAuthorized","url":"classes/oauth2rbac.html#isauthorized","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2RBAC"},{"id":282,"kind":128,"name":"OAuth2Response","url":"classes/oauth2response.html","classes":"tsd-kind-class"},{"id":283,"kind":2048,"name":"statusCode","url":"classes/oauth2response.html#statuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":284,"kind":2048,"name":"headers","url":"classes/oauth2response.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":285,"kind":2048,"name":"getHeader","url":"classes/oauth2response.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":286,"kind":2048,"name":"body","url":"classes/oauth2response.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":287,"kind":2048,"name":"jsonObject","url":"classes/oauth2response.html#jsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":288,"kind":2048,"name":"jsonArray","url":"classes/oauth2response.html#jsonarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":289,"kind":2048,"name":"is","url":"classes/oauth2response.html#is","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":290,"kind":128,"name":"OpenIDConnectAuth","url":"classes/openidconnectauth.html","classes":"tsd-kind-class"},{"id":291,"kind":2048,"name":"discover","url":"classes/openidconnectauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"OpenIDConnectAuth"},{"id":292,"kind":128,"name":"SalesforceAuth","url":"classes/salesforceauth.html","classes":"tsd-kind-class"},{"id":293,"kind":2048,"name":"create","url":"classes/salesforceauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SalesforceAuth"},{"id":294,"kind":2048,"name":"discover","url":"classes/salesforceauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"SalesforceAuth"},{"id":295,"kind":128,"name":"ShopifyAuth","url":"classes/shopifyauth.html","classes":"tsd-kind-class"},{"id":296,"kind":2048,"name":"create","url":"classes/shopifyauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ShopifyAuth"},{"id":297,"kind":128,"name":"SoundcloudAuth","url":"classes/soundcloudauth.html","classes":"tsd-kind-class"},{"id":298,"kind":2048,"name":"create","url":"classes/soundcloudauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SoundcloudAuth"},{"id":299,"kind":128,"name":"StripeAuth","url":"classes/stripeauth.html","classes":"tsd-kind-class"},{"id":300,"kind":2048,"name":"create","url":"classes/stripeauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"StripeAuth"},{"id":301,"kind":128,"name":"TwitterAuth","url":"classes/twitterauth.html","classes":"tsd-kind-class"},{"id":302,"kind":2048,"name":"create","url":"classes/twitterauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"TwitterAuth"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,40.123]],["parent/0",[]],["name/1",[1,53.116]],["parent/1",[0,3.846]],["name/2",[2,53.116]],["parent/2",[0,3.846]],["name/3",[3,53.116]],["parent/3",[0,3.846]],["name/4",[4,53.116]],["parent/4",[0,3.846]],["name/5",[5,4.262]],["parent/5",[]],["name/6",[6,53.116]],["parent/6",[5,0.409]],["name/7",[7,53.116]],["parent/7",[5,0.409]],["name/8",[8,53.116]],["parent/8",[5,0.409]],["name/9",[9,53.116]],["parent/9",[5,0.409]],["name/10",[10,53.116]],["parent/10",[5,0.409]],["name/11",[11,53.116]],["parent/11",[5,0.409]],["name/12",[12,53.116]],["parent/12",[5,0.409]],["name/13",[13,53.116]],["parent/13",[5,0.409]],["name/14",[14,53.116]],["parent/14",[5,0.409]],["name/15",[15,53.116]],["parent/15",[5,0.409]],["name/16",[16,53.116]],["parent/16",[5,0.409]],["name/17",[17,53.116]],["parent/17",[5,0.409]],["name/18",[18,53.116]],["parent/18",[5,0.409]],["name/19",[19,53.116]],["parent/19",[5,0.409]],["name/20",[20,53.116]],["parent/20",[5,0.409]],["name/21",[21,53.116]],["parent/21",[5,0.409]],["name/22",[22,53.116]],["parent/22",[5,0.409]],["name/23",[23,53.116]],["parent/23",[5,0.409]],["name/24",[24,53.116]],["parent/24",[5,0.409]],["name/25",[25,53.116]],["parent/25",[5,0.409]],["name/26",[26,53.116]],["parent/26",[5,0.409]],["name/27",[27,53.116]],["parent/27",[5,0.409]],["name/28",[28,53.116]],["parent/28",[5,0.409]],["name/29",[29,53.116]],["parent/29",[5,0.409]],["name/30",[30,53.116]],["parent/30",[5,0.409]],["name/31",[31,53.116]],["parent/31",[5,0.409]],["name/32",[32,53.116]],["parent/32",[5,0.409]],["name/33",[33,53.116]],["parent/33",[5,0.409]],["name/34",[34,53.116]],["parent/34",[5,0.409]],["name/35",[35,53.116]],["parent/35",[5,0.409]],["name/36",[36,53.116]],["parent/36",[5,0.409]],["name/37",[37,53.116]],["parent/37",[5,0.409]],["name/38",[38,53.116]],["parent/38",[5,0.409]],["name/39",[39,53.116]],["parent/39",[5,0.409]],["name/40",[40,53.116]],["parent/40",[5,0.409]],["name/41",[41,53.116]],["parent/41",[5,0.409]],["name/42",[42,53.116]],["parent/42",[5,0.409]],["name/43",[43,53.116]],["parent/43",[5,0.409]],["name/44",[44,53.116]],["parent/44",[5,0.409]],["name/45",[45,53.116]],["parent/45",[5,0.409]],["name/46",[46,53.116]],["parent/46",[5,0.409]],["name/47",[47,53.116]],["parent/47",[5,0.409]],["name/48",[48,53.116]],["parent/48",[5,0.409]],["name/49",[49,53.116]],["parent/49",[5,0.409]],["name/50",[50,53.116]],["parent/50",[5,0.409]],["name/51",[51,53.116]],["parent/51",[5,0.409]],["name/52",[52,53.116]],["parent/52",[5,0.409]],["name/53",[53,53.116]],["parent/53",[5,0.409]],["name/54",[54,53.116]],["parent/54",[5,0.409]],["name/55",[55,53.116]],["parent/55",[5,0.409]],["name/56",[56,53.116]],["parent/56",[5,0.409]],["name/57",[57,53.116]],["parent/57",[5,0.409]],["name/58",[58,53.116]],["parent/58",[5,0.409]],["name/59",[59,53.116]],["parent/59",[5,0.409]],["name/60",[60,53.116]],["parent/60",[5,0.409]],["name/61",[61,53.116]],["parent/61",[5,0.409]],["name/62",[62,53.116]],["parent/62",[5,0.409]],["name/63",[63,53.116]],["parent/63",[5,0.409]],["name/64",[64,53.116]],["parent/64",[5,0.409]],["name/65",[65,53.116]],["parent/65",[5,0.409]],["name/66",[66,53.116]],["parent/66",[5,0.409]],["name/67",[67,53.116]],["parent/67",[5,0.409]],["name/68",[68,53.116]],["parent/68",[5,0.409]],["name/69",[69,53.116]],["parent/69",[5,0.409]],["name/70",[70,53.116]],["parent/70",[5,0.409]],["name/71",[71,53.116]],["parent/71",[5,0.409]],["name/72",[72,53.116]],["parent/72",[5,0.409]],["name/73",[73,53.116]],["parent/73",[5,0.409]],["name/74",[74,53.116]],["parent/74",[5,0.409]],["name/75",[75,53.116]],["parent/75",[5,0.409]],["name/76",[76,53.116]],["parent/76",[5,0.409]],["name/77",[77,53.116]],["parent/77",[5,0.409]],["name/78",[78,53.116]],["parent/78",[5,0.409]],["name/79",[79,53.116]],["parent/79",[5,0.409]],["name/80",[80,53.116]],["parent/80",[5,0.409]],["name/81",[81,53.116]],["parent/81",[5,0.409]],["name/82",[82,53.116]],["parent/82",[5,0.409]],["name/83",[83,53.116]],["parent/83",[5,0.409]],["name/84",[84,53.116]],["parent/84",[5,0.409]],["name/85",[85,53.116]],["parent/85",[5,0.409]],["name/86",[86,53.116]],["parent/86",[5,0.409]],["name/87",[87,53.116]],["parent/87",[5,0.409]],["name/88",[88,53.116]],["parent/88",[5,0.409]],["name/89",[89,53.116]],["parent/89",[5,0.409]],["name/90",[90,48.007]],["parent/90",[5,0.409]],["name/91",[91,48.007]],["parent/91",[5,0.409]],["name/92",[92,48.007]],["parent/92",[5,0.409]],["name/93",[93,48.007]],["parent/93",[5,0.409]],["name/94",[90,48.007]],["parent/94",[5,0.409]],["name/95",[91,48.007]],["parent/95",[5,0.409]],["name/96",[92,48.007]],["parent/96",[5,0.409]],["name/97",[93,48.007]],["parent/97",[5,0.409]],["name/98",[94,53.116]],["parent/98",[5,0.409]],["name/99",[95,53.116]],["parent/99",[5,0.409]],["name/100",[96,53.116]],["parent/100",[5,0.409]],["name/101",[97,53.116]],["parent/101",[5,0.409]],["name/102",[98,53.116]],["parent/102",[5,0.409]],["name/103",[99,53.116]],["parent/103",[5,0.409]],["name/104",[100,53.116]],["parent/104",[5,0.409]],["name/105",[101,53.116]],["parent/105",[5,0.409]],["name/106",[102,53.116]],["parent/106",[5,0.409]],["name/107",[103,53.116]],["parent/107",[5,0.409]],["name/108",[104,53.116]],["parent/108",[5,0.409]],["name/109",[105,53.116]],["parent/109",[5,0.409]],["name/110",[106,53.116]],["parent/110",[5,0.409]],["name/111",[107,53.116]],["parent/111",[5,0.409]],["name/112",[108,53.116]],["parent/112",[5,0.409]],["name/113",[109,53.116]],["parent/113",[5,0.409]],["name/114",[110,53.116]],["parent/114",[5,0.409]],["name/115",[111,53.116]],["parent/115",[5,0.409]],["name/116",[112,53.116]],["parent/116",[5,0.409]],["name/117",[113,53.116]],["parent/117",[5,0.409]],["name/118",[114,53.116]],["parent/118",[5,0.409]],["name/119",[115,53.116]],["parent/119",[5,0.409]],["name/120",[116,53.116]],["parent/120",[5,0.409]],["name/121",[117,53.116]],["parent/121",[5,0.409]],["name/122",[118,53.116]],["parent/122",[5,0.409]],["name/123",[119,53.116]],["parent/123",[5,0.409]],["name/124",[120,53.116]],["parent/124",[5,0.409]],["name/125",[121,53.116]],["parent/125",[5,0.409]],["name/126",[122,53.116]],["parent/126",[5,0.409]],["name/127",[123,53.116]],["parent/127",[5,0.409]],["name/128",[124,53.116]],["parent/128",[5,0.409]],["name/129",[125,53.116]],["parent/129",[5,0.409]],["name/130",[126,53.116]],["parent/130",[5,0.409]],["name/131",[127,48.007]],["parent/131",[5,0.409]],["name/132",[128,53.116]],["parent/132",[5,0.409]],["name/133",[129,53.116]],["parent/133",[5,0.409]],["name/134",[130,53.116]],["parent/134",[5,0.409]],["name/135",[131,53.116]],["parent/135",[5,0.409]],["name/136",[132,53.116]],["parent/136",[5,0.409]],["name/137",[133,53.116]],["parent/137",[5,0.409]],["name/138",[134,53.116]],["parent/138",[5,0.409]],["name/139",[135,53.116]],["parent/139",[5,0.409]],["name/140",[136,53.116]],["parent/140",[5,0.409]],["name/141",[137,53.116]],["parent/141",[5,0.409]],["name/142",[138,53.116]],["parent/142",[5,0.409]],["name/143",[139,53.116]],["parent/143",[5,0.409]],["name/144",[140,53.116]],["parent/144",[5,0.409]],["name/145",[141,53.116]],["parent/145",[5,0.409]],["name/146",[142,53.116]],["parent/146",[5,0.409]],["name/147",[143,53.116]],["parent/147",[5,0.409]],["name/148",[144,53.116]],["parent/148",[5,0.409]],["name/149",[145,53.116]],["parent/149",[5,0.409]],["name/150",[146,53.116]],["parent/150",[5,0.409]],["name/151",[147,53.116]],["parent/151",[5,0.409]],["name/152",[148,53.116]],["parent/152",[5,0.409]],["name/153",[149,53.116]],["parent/153",[5,0.409]],["name/154",[150,53.116]],["parent/154",[5,0.409]],["name/155",[151,53.116]],["parent/155",[5,0.409]],["name/156",[152,53.116]],["parent/156",[5,0.409]],["name/157",[153,53.116]],["parent/157",[5,0.409]],["name/158",[154,53.116]],["parent/158",[5,0.409]],["name/159",[155,53.116]],["parent/159",[5,0.409]],["name/160",[156,53.116]],["parent/160",[5,0.409]],["name/161",[157,53.116]],["parent/161",[5,0.409]],["name/162",[158,53.116]],["parent/162",[5,0.409]],["name/163",[159,53.116]],["parent/163",[5,0.409]],["name/164",[160,53.116]],["parent/164",[5,0.409]],["name/165",[161,53.116]],["parent/165",[5,0.409]],["name/166",[162,53.116]],["parent/166",[5,0.409]],["name/167",[163,48.007]],["parent/167",[5,0.409]],["name/168",[163,48.007]],["parent/168",[5,0.409]],["name/169",[164,48.007]],["parent/169",[5,0.409]],["name/170",[165,48.007]],["parent/170",[5,0.409]],["name/171",[164,48.007]],["parent/171",[5,0.409]],["name/172",[165,48.007]],["parent/172",[5,0.409]],["name/173",[166,48.007]],["parent/173",[5,0.409]],["name/174",[166,48.007]],["parent/174",[5,0.409]],["name/175",[167,53.116]],["parent/175",[5,0.409]],["name/176",[168,53.116]],["parent/176",[5,0.409]],["name/177",[169,53.116]],["parent/177",[5,0.409]],["name/178",[170,53.116]],["parent/178",[5,0.409]],["name/179",[171,53.116]],["parent/179",[5,0.409]],["name/180",[172,53.116]],["parent/180",[5,0.409]],["name/181",[173,53.116]],["parent/181",[5,0.409]],["name/182",[174,53.116]],["parent/182",[5,0.409]],["name/183",[175,53.116]],["parent/183",[5,0.409]],["name/184",[176,53.116]],["parent/184",[5,0.409]],["name/185",[177,53.116]],["parent/185",[5,0.409]],["name/186",[178,53.116]],["parent/186",[5,0.409]],["name/187",[179,53.116]],["parent/187",[5,0.409]],["name/188",[180,53.116]],["parent/188",[5,0.409]],["name/189",[181,53.116]],["parent/189",[5,0.409]],["name/190",[182,53.116]],["parent/190",[5,0.409]],["name/191",[183,48.007]],["parent/191",[5,0.409]],["name/192",[184,48.007]],["parent/192",[5,0.409]],["name/193",[185,48.007]],["parent/193",[5,0.409]],["name/194",[186,48.007]],["parent/194",[5,0.409]],["name/195",[187,48.007]],["parent/195",[5,0.409]],["name/196",[188,48.007]],["parent/196",[5,0.409]],["name/197",[183,48.007]],["parent/197",[5,0.409]],["name/198",[184,48.007]],["parent/198",[5,0.409]],["name/199",[185,48.007]],["parent/199",[5,0.409]],["name/200",[186,48.007]],["parent/200",[5,0.409]],["name/201",[187,48.007]],["parent/201",[5,0.409]],["name/202",[188,48.007]],["parent/202",[5,0.409]],["name/203",[189,27.993]],["parent/203",[]],["name/204",[190,53.116]],["parent/204",[189,2.683]],["name/205",[189,27.993]],["parent/205",[189,2.683]],["name/206",[191,53.116]],["parent/206",[189,2.683]],["name/207",[192,48.007]],["parent/207",[189,2.683]],["name/208",[193,53.116]],["parent/208",[189,2.683]],["name/209",[194,53.116]],["parent/209",[189,2.683]],["name/210",[195,53.116]],["parent/210",[189,2.683]],["name/211",[196,53.116]],["parent/211",[189,2.683]],["name/212",[197,53.116]],["parent/212",[189,2.683]],["name/213",[198,53.116]],["parent/213",[189,2.683]],["name/214",[199,53.116]],["parent/214",[189,2.683]],["name/215",[200,53.116]],["parent/215",[189,2.683]],["name/216",[201,53.116]],["parent/216",[189,2.683]],["name/217",[202,53.116]],["parent/217",[189,2.683]],["name/218",[203,53.116]],["parent/218",[189,2.683]],["name/219",[204,44.643]],["parent/219",[]],["name/220",[205,26.035]],["parent/220",[204,4.279]],["name/221",[206,40.123]],["parent/221",[204,4.279]],["name/222",[207,48.007]],["parent/222",[]],["name/223",[205,26.035]],["parent/223",[207,4.602]],["name/224",[208,48.007]],["parent/224",[]],["name/225",[205,26.035]],["parent/225",[208,4.602]],["name/226",[209,48.007]],["parent/226",[]],["name/227",[205,26.035]],["parent/227",[209,4.602]],["name/228",[210,48.007]],["parent/228",[]],["name/229",[205,26.035]],["parent/229",[210,4.602]],["name/230",[211,48.007]],["parent/230",[]],["name/231",[205,26.035]],["parent/231",[211,4.602]],["name/232",[212,48.007]],["parent/232",[]],["name/233",[205,26.035]],["parent/233",[212,4.602]],["name/234",[213,44.643]],["parent/234",[]],["name/235",[205,26.035]],["parent/235",[213,4.279]],["name/236",[206,40.123]],["parent/236",[213,4.279]],["name/237",[214,48.007]],["parent/237",[]],["name/238",[205,26.035]],["parent/238",[214,4.602]],["name/239",[215,48.007]],["parent/239",[]],["name/240",[205,26.035]],["parent/240",[215,4.602]],["name/241",[216,44.643]],["parent/241",[]],["name/242",[205,26.035]],["parent/242",[216,4.279]],["name/243",[206,40.123]],["parent/243",[216,4.279]],["name/244",[217,30.429]],["parent/244",[]],["name/245",[218,53.116]],["parent/245",[217,2.917]],["name/246",[192,48.007]],["parent/246",[217,2.917]],["name/247",[219,53.116]],["parent/247",[217,2.917]],["name/248",[189,27.993]],["parent/248",[217,2.917]],["name/249",[220,53.116]],["parent/249",[217,2.917]],["name/250",[221,53.116]],["parent/250",[217,2.917]],["name/251",[222,53.116]],["parent/251",[217,2.917]],["name/252",[223,53.116]],["parent/252",[217,2.917]],["name/253",[224,53.116]],["parent/253",[217,2.917]],["name/254",[225,53.116]],["parent/254",[217,2.917]],["name/255",[226,53.116]],["parent/255",[217,2.917]],["name/256",[227,53.116]],["parent/256",[217,2.917]],["name/257",[228,53.116]],["parent/257",[217,2.917]],["name/258",[229,48.007]],["parent/258",[]],["name/259",[205,26.035]],["parent/259",[229,4.602]],["name/260",[230,48.007]],["parent/260",[]],["name/261",[205,26.035]],["parent/261",[230,4.602]],["name/262",[231,48.007]],["parent/262",[]],["name/263",[205,26.035]],["parent/263",[231,4.602]],["name/264",[232,48.007]],["parent/264",[]],["name/265",[205,26.035]],["parent/265",[232,4.602]],["name/266",[233,48.007]],["parent/266",[]],["name/267",[205,26.035]],["parent/267",[233,4.602]],["name/268",[234,31.913]],["parent/268",[]],["name/269",[235,53.116]],["parent/269",[234,3.059]],["name/270",[205,26.035]],["parent/270",[234,3.059]],["name/271",[236,53.116]],["parent/271",[234,3.059]],["name/272",[237,53.116]],["parent/272",[234,3.059]],["name/273",[238,53.116]],["parent/273",[234,3.059]],["name/274",[239,53.116]],["parent/274",[234,3.059]],["name/275",[127,48.007]],["parent/275",[234,3.059]],["name/276",[240,53.116]],["parent/276",[234,3.059]],["name/277",[241,53.116]],["parent/277",[234,3.059]],["name/278",[242,53.116]],["parent/278",[234,3.059]],["name/279",[243,53.116]],["parent/279",[234,3.059]],["name/280",[244,48.007]],["parent/280",[]],["name/281",[245,53.116]],["parent/281",[244,4.602]],["name/282",[246,35.77]],["parent/282",[]],["name/283",[247,53.116]],["parent/283",[246,3.429]],["name/284",[248,53.116]],["parent/284",[246,3.429]],["name/285",[249,53.116]],["parent/285",[246,3.429]],["name/286",[250,53.116]],["parent/286",[246,3.429]],["name/287",[251,53.116]],["parent/287",[246,3.429]],["name/288",[252,53.116]],["parent/288",[246,3.429]],["name/289",[253,53.116]],["parent/289",[246,3.429]],["name/290",[254,48.007]],["parent/290",[]],["name/291",[206,40.123]],["parent/291",[254,4.602]],["name/292",[255,44.643]],["parent/292",[]],["name/293",[205,26.035]],["parent/293",[255,4.279]],["name/294",[206,40.123]],["parent/294",[255,4.279]],["name/295",[256,48.007]],["parent/295",[]],["name/296",[205,26.035]],["parent/296",[256,4.602]],["name/297",[257,48.007]],["parent/297",[]],["name/298",[205,26.035]],["parent/298",[257,4.602]],["name/299",[258,48.007]],["parent/299",[]],["name/300",[205,26.035]],["parent/300",[258,4.602]],["name/301",[259,48.007]],["parent/301",[]],["name/302",[205,26.035]],["parent/302",[259,4.602]]],"invertedIndex":[["accesstoken",{"_index":189,"name":{"203":{},"205":{},"248":{}},"parent":{"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{}}}],["acr",{"_index":222,"name":{"251":{}},"parent":{}}],["addcrlpath",{"_index":20,"name":{"20":{}},"parent":{}}],["addcrlvalue",{"_index":22,"name":{"22":{}},"parent":{}}],["addenabledciphersuite",{"_index":30,"name":{"30":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":33,"name":{"33":{}},"parent":{}}],["addpubseckey",{"_index":118,"name":{"122":{}},"parent":{}}],["allowedorigins",{"_index":227,"name":{"256":{}},"parent":{}}],["auth_code",{"_index":1,"name":{"1":{}},"parent":{}}],["auth_jwt",{"_index":4,"name":{"4":{}},"parent":{}}],["authorizeurl",{"_index":236,"name":{"271":{}},"parent":{}}],["authtime",{"_index":220,"name":{"249":{}},"parent":{}}],["azureadauth",{"_index":204,"name":{"219":{}},"parent":{"220":{},"221":{}}}],["body",{"_index":250,"name":{"286":{}},"parent":{}}],["boxauth",{"_index":207,"name":{"222":{}},"parent":{"223":{}}}],["client",{"_index":2,"name":{"2":{}},"parent":{}}],["cloudfoundryauth",{"_index":208,"name":{"224":{}},"parent":{"225":{}}}],["constructor",{"_index":6,"name":{"6":{}},"parent":{}}],["create",{"_index":205,"name":{"220":{},"223":{},"225":{},"227":{},"229":{},"231":{},"233":{},"235":{},"238":{},"240":{},"242":{},"259":{},"261":{},"263":{},"265":{},"267":{},"270":{},"293":{},"296":{},"298":{},"300":{},"302":{}},"parent":{}}],["createkeycloak",{"_index":235,"name":{"269":{}},"parent":{}}],["decodetoken",{"_index":238,"name":{"273":{}},"parent":{}}],["discover",{"_index":206,"name":{"221":{},"236":{},"243":{},"291":{},"294":{}},"parent":{}}],["dropboxauth",{"_index":209,"name":{"226":{}},"parent":{"227":{}}}],["email",{"_index":224,"name":{"253":{}},"parent":{}}],["expired",{"_index":190,"name":{"204":{}},"parent":{}}],["facebookauth",{"_index":210,"name":{"228":{}},"parent":{"229":{}}}],["fetch",{"_index":203,"name":{"218":{}},"parent":{}}],["foursquareauth",{"_index":211,"name":{"230":{}},"parent":{"231":{}}}],["getalpnversions",{"_index":7,"name":{"7":{}},"parent":{}}],["getauthorizationpath",{"_index":9,"name":{"9":{}},"parent":{}}],["getclientid",{"_index":11,"name":{"11":{}},"parent":{}}],["getclientsecret",{"_index":13,"name":{"13":{}},"parent":{}}],["getclientsecretparametername",{"_index":15,"name":{"15":{}},"parent":{}}],["getconnecttimeout",{"_index":17,"name":{"17":{}},"parent":{}}],["getcrlpaths",{"_index":19,"name":{"19":{}},"parent":{}}],["getcrlvalues",{"_index":21,"name":{"21":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":23,"name":{"23":{}},"parent":{}}],["getdefaulthost",{"_index":25,"name":{"25":{}},"parent":{}}],["getdefaultport",{"_index":27,"name":{"27":{}},"parent":{}}],["getenabledciphersuites",{"_index":29,"name":{"29":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":31,"name":{"31":{}},"parent":{}}],["getextraparameters",{"_index":34,"name":{"34":{}},"parent":{}}],["getflow",{"_index":36,"name":{"36":{}},"parent":{}}],["getflowtype",{"_index":240,"name":{"276":{}},"parent":{}}],["getheader",{"_index":249,"name":{"285":{}},"parent":{}}],["getheaders",{"_index":40,"name":{"40":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":44,"name":{"44":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":46,"name":{"46":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":48,"name":{"48":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":50,"name":{"50":{}},"parent":{}}],["getidletimeout",{"_index":52,"name":{"52":{}},"parent":{}}],["getidletimeoutunit",{"_index":54,"name":{"54":{}},"parent":{}}],["getinitialsettings",{"_index":56,"name":{"56":{}},"parent":{}}],["getintrospectionpath",{"_index":58,"name":{"58":{}},"parent":{}}],["getjdksslengineoptions",{"_index":60,"name":{"60":{}},"parent":{}}],["getjwkpath",{"_index":62,"name":{"62":{}},"parent":{}}],["getjwtoptions",{"_index":64,"name":{"64":{}},"parent":{}}],["getkeepalivetimeout",{"_index":68,"name":{"68":{}},"parent":{}}],["getkeystoreoptions",{"_index":70,"name":{"70":{}},"parent":{}}],["getlocaladdress",{"_index":72,"name":{"72":{}},"parent":{}}],["getlogactivity",{"_index":74,"name":{"74":{}},"parent":{}}],["getlogoutpath",{"_index":76,"name":{"76":{}},"parent":{}}],["getmaxchunksize",{"_index":78,"name":{"78":{}},"parent":{}}],["getmaxheadersize",{"_index":80,"name":{"80":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":82,"name":{"82":{}},"parent":{}}],["getmaxpoolsize",{"_index":84,"name":{"84":{}},"parent":{}}],["getmaxredirects",{"_index":86,"name":{"86":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":88,"name":{"88":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":90,"name":{"90":{},"94":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":92,"name":{"92":{},"96":{}},"parent":{}}],["getmetricsname",{"_index":94,"name":{"98":{}},"parent":{}}],["getopensslengineoptions",{"_index":96,"name":{"100":{}},"parent":{}}],["getpemkeycertoptions",{"_index":98,"name":{"102":{}},"parent":{}}],["getpemtrustoptions",{"_index":100,"name":{"104":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":102,"name":{"106":{}},"parent":{}}],["getpfxtrustoptions",{"_index":104,"name":{"108":{}},"parent":{}}],["getpipelininglimit",{"_index":108,"name":{"112":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":110,"name":{"114":{}},"parent":{}}],["getprotocolversion",{"_index":112,"name":{"116":{}},"parent":{}}],["getproxyoptions",{"_index":114,"name":{"118":{}},"parent":{}}],["getpubseckeys",{"_index":116,"name":{"120":{}},"parent":{}}],["getreceivebuffersize",{"_index":119,"name":{"123":{}},"parent":{}}],["getrevocationpath",{"_index":125,"name":{"129":{}},"parent":{}}],["getscopeseparator",{"_index":127,"name":{"131":{},"275":{}},"parent":{}}],["getsendbuffersize",{"_index":129,"name":{"133":{}},"parent":{}}],["getsite",{"_index":133,"name":{"137":{}},"parent":{}}],["getsolinger",{"_index":135,"name":{"139":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":139,"name":{"143":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":141,"name":{"145":{}},"parent":{}}],["gettoken",{"_index":237,"name":{"272":{}},"parent":{}}],["gettokenpath",{"_index":153,"name":{"157":{}},"parent":{}}],["gettrafficclass",{"_index":155,"name":{"159":{}},"parent":{}}],["gettruststoreoptions",{"_index":159,"name":{"163":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":164,"name":{"169":{},"171":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":166,"name":{"173":{},"174":{}},"parent":{}}],["getuseragent",{"_index":173,"name":{"181":{}},"parent":{}}],["getuserinfoparameters",{"_index":175,"name":{"183":{}},"parent":{}}],["getuserinfopath",{"_index":177,"name":{"185":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":183,"name":{"191":{},"197":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":185,"name":{"193":{},"199":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":187,"name":{"195":{},"201":{}},"parent":{}}],["githubauth",{"_index":212,"name":{"232":{}},"parent":{"233":{}}}],["googleauth",{"_index":213,"name":{"234":{}},"parent":{"235":{},"236":{}}}],["headers",{"_index":248,"name":{"284":{}},"parent":{}}],["herokuauth",{"_index":214,"name":{"237":{}},"parent":{"238":{}}}],["idtoken",{"_index":192,"name":{"207":{},"246":{}},"parent":{}}],["instagramauth",{"_index":215,"name":{"239":{}},"parent":{"240":{}}}],["introspect",{"_index":201,"name":{"216":{}},"parent":{}}],["introspecttoken",{"_index":239,"name":{"274":{}},"parent":{}}],["is",{"_index":253,"name":{"289":{}},"parent":{}}],["isauthorized",{"_index":245,"name":{"281":{}},"parent":{}}],["isforcesni",{"_index":38,"name":{"38":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":42,"name":{"42":{}},"parent":{}}],["iskeepalive",{"_index":66,"name":{"66":{}},"parent":{}}],["ispipelining",{"_index":106,"name":{"110":{}},"parent":{}}],["isreuseaddress",{"_index":121,"name":{"125":{}},"parent":{}}],["isreuseport",{"_index":123,"name":{"127":{}},"parent":{}}],["issendunmaskedframes",{"_index":131,"name":{"135":{}},"parent":{}}],["isssl",{"_index":137,"name":{"141":{}},"parent":{}}],["istcpcork",{"_index":143,"name":{"147":{}},"parent":{}}],["istcpfastopen",{"_index":145,"name":{"149":{}},"parent":{}}],["istcpkeepalive",{"_index":147,"name":{"151":{}},"parent":{}}],["istcpnodelay",{"_index":149,"name":{"153":{}},"parent":{}}],["istcpquickack",{"_index":151,"name":{"155":{}},"parent":{}}],["istrustall",{"_index":157,"name":{"161":{}},"parent":{}}],["istryusecompression",{"_index":161,"name":{"165":{}},"parent":{}}],["isusealpn",{"_index":167,"name":{"175":{}},"parent":{}}],["isusebasicauthorizationheader",{"_index":169,"name":{"177":{}},"parent":{}}],["isusepooledbuffers",{"_index":171,"name":{"179":{}},"parent":{}}],["isvalidateissuer",{"_index":179,"name":{"187":{}},"parent":{}}],["isverifyhost",{"_index":181,"name":{"189":{}},"parent":{}}],["jsonarray",{"_index":252,"name":{"288":{}},"parent":{}}],["jsonobject",{"_index":251,"name":{"287":{}},"parent":{}}],["keycloakauth",{"_index":216,"name":{"241":{}},"parent":{"242":{},"243":{}}}],["keycloakhelper",{"_index":217,"name":{"244":{}},"parent":{"245":{},"246":{},"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{}}}],["keycloakrbac",{"_index":229,"name":{"258":{}},"parent":{"259":{}}}],["linkedinauth",{"_index":230,"name":{"260":{}},"parent":{"261":{}}}],["liveauth",{"_index":231,"name":{"262":{}},"parent":{"263":{}}}],["loadjwk",{"_index":241,"name":{"277":{}},"parent":{}}],["logout",{"_index":200,"name":{"215":{}},"parent":{}}],["mailchimpauth",{"_index":232,"name":{"264":{}},"parent":{"265":{}}}],["microprofilerbac",{"_index":233,"name":{"266":{}},"parent":{"267":{}}}],["missingkeyhandler",{"_index":243,"name":{"279":{}},"parent":{}}],["name",{"_index":223,"name":{"252":{}},"parent":{}}],["nickname",{"_index":226,"name":{"255":{}},"parent":{}}],["oauth2auth",{"_index":234,"name":{"268":{}},"parent":{"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{}}}],["oauth2clientoptions",{"_index":5,"name":{"5":{}},"parent":{"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{}}}],["oauth2flowtype",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{}}}],["oauth2rbac",{"_index":244,"name":{"280":{}},"parent":{"281":{}}}],["oauth2response",{"_index":246,"name":{"282":{}},"parent":{"283":{},"284":{},"285":{},"286":{},"287":{},"288":{},"289":{}}}],["opaqueaccesstoken",{"_index":193,"name":{"208":{}},"parent":{}}],["opaqueidtoken",{"_index":195,"name":{"210":{}},"parent":{}}],["opaquerefreshtoken",{"_index":194,"name":{"209":{}},"parent":{}}],["openidconnectauth",{"_index":254,"name":{"290":{}},"parent":{"291":{}}}],["parsetoken",{"_index":228,"name":{"257":{}},"parent":{}}],["password",{"_index":3,"name":{"3":{}},"parent":{}}],["preferredusername",{"_index":225,"name":{"254":{}},"parent":{}}],["rawaccesstoken",{"_index":219,"name":{"247":{}},"parent":{}}],["rawidtoken",{"_index":218,"name":{"245":{}},"parent":{}}],["rbachandler",{"_index":242,"name":{"278":{}},"parent":{}}],["refresh",{"_index":198,"name":{"213":{}},"parent":{}}],["refreshtoken",{"_index":191,"name":{"206":{}},"parent":{}}],["revoke",{"_index":199,"name":{"214":{}},"parent":{}}],["salesforceauth",{"_index":255,"name":{"292":{}},"parent":{"293":{},"294":{}}}],["sessionstate",{"_index":221,"name":{"250":{}},"parent":{}}],["setalpnversions",{"_index":8,"name":{"8":{}},"parent":{}}],["setauthorizationpath",{"_index":10,"name":{"10":{}},"parent":{}}],["setclientid",{"_index":12,"name":{"12":{}},"parent":{}}],["setclientsecret",{"_index":14,"name":{"14":{}},"parent":{}}],["setclientsecretparametername",{"_index":16,"name":{"16":{}},"parent":{}}],["setconnecttimeout",{"_index":18,"name":{"18":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":24,"name":{"24":{}},"parent":{}}],["setdefaulthost",{"_index":26,"name":{"26":{}},"parent":{}}],["setdefaultport",{"_index":28,"name":{"28":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":32,"name":{"32":{}},"parent":{}}],["setextraparameters",{"_index":35,"name":{"35":{}},"parent":{}}],["setflow",{"_index":37,"name":{"37":{}},"parent":{}}],["setforcesni",{"_index":39,"name":{"39":{}},"parent":{}}],["setheaders",{"_index":41,"name":{"41":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":43,"name":{"43":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":45,"name":{"45":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":47,"name":{"47":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":49,"name":{"49":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":51,"name":{"51":{}},"parent":{}}],["setidletimeout",{"_index":53,"name":{"53":{}},"parent":{}}],["setidletimeoutunit",{"_index":55,"name":{"55":{}},"parent":{}}],["setinitialsettings",{"_index":57,"name":{"57":{}},"parent":{}}],["setintrospectionpath",{"_index":59,"name":{"59":{}},"parent":{}}],["setjdksslengineoptions",{"_index":61,"name":{"61":{}},"parent":{}}],["setjwkpath",{"_index":63,"name":{"63":{}},"parent":{}}],["setjwtoptions",{"_index":65,"name":{"65":{}},"parent":{}}],["setkeepalive",{"_index":67,"name":{"67":{}},"parent":{}}],["setkeepalivetimeout",{"_index":69,"name":{"69":{}},"parent":{}}],["setkeystoreoptions",{"_index":71,"name":{"71":{}},"parent":{}}],["setlocaladdress",{"_index":73,"name":{"73":{}},"parent":{}}],["setlogactivity",{"_index":75,"name":{"75":{}},"parent":{}}],["setlogoutpath",{"_index":77,"name":{"77":{}},"parent":{}}],["setmaxchunksize",{"_index":79,"name":{"79":{}},"parent":{}}],["setmaxheadersize",{"_index":81,"name":{"81":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":83,"name":{"83":{}},"parent":{}}],["setmaxpoolsize",{"_index":85,"name":{"85":{}},"parent":{}}],["setmaxredirects",{"_index":87,"name":{"87":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":89,"name":{"89":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":91,"name":{"91":{},"95":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":93,"name":{"93":{},"97":{}},"parent":{}}],["setmetricsname",{"_index":95,"name":{"99":{}},"parent":{}}],["setopensslengineoptions",{"_index":97,"name":{"101":{}},"parent":{}}],["setpemkeycertoptions",{"_index":99,"name":{"103":{}},"parent":{}}],["setpemtrustoptions",{"_index":101,"name":{"105":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":103,"name":{"107":{}},"parent":{}}],["setpfxtrustoptions",{"_index":105,"name":{"109":{}},"parent":{}}],["setpipelining",{"_index":107,"name":{"111":{}},"parent":{}}],["setpipelininglimit",{"_index":109,"name":{"113":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":111,"name":{"115":{}},"parent":{}}],["setprotocolversion",{"_index":113,"name":{"117":{}},"parent":{}}],["setproxyoptions",{"_index":115,"name":{"119":{}},"parent":{}}],["setpubseckeys",{"_index":117,"name":{"121":{}},"parent":{}}],["setreceivebuffersize",{"_index":120,"name":{"124":{}},"parent":{}}],["setreuseaddress",{"_index":122,"name":{"126":{}},"parent":{}}],["setreuseport",{"_index":124,"name":{"128":{}},"parent":{}}],["setrevocationpath",{"_index":126,"name":{"130":{}},"parent":{}}],["setscopeseparator",{"_index":128,"name":{"132":{}},"parent":{}}],["setsendbuffersize",{"_index":130,"name":{"134":{}},"parent":{}}],["setsendunmaskedframes",{"_index":132,"name":{"136":{}},"parent":{}}],["setsite",{"_index":134,"name":{"138":{}},"parent":{}}],["setsolinger",{"_index":136,"name":{"140":{}},"parent":{}}],["setssl",{"_index":138,"name":{"142":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":140,"name":{"144":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":142,"name":{"146":{}},"parent":{}}],["settcpcork",{"_index":144,"name":{"148":{}},"parent":{}}],["settcpfastopen",{"_index":146,"name":{"150":{}},"parent":{}}],["settcpkeepalive",{"_index":148,"name":{"152":{}},"parent":{}}],["settcpnodelay",{"_index":150,"name":{"154":{}},"parent":{}}],["settcpquickack",{"_index":152,"name":{"156":{}},"parent":{}}],["settokenpath",{"_index":154,"name":{"158":{}},"parent":{}}],["settrafficclass",{"_index":156,"name":{"160":{}},"parent":{}}],["settrustall",{"_index":158,"name":{"162":{}},"parent":{}}],["settrustjwt",{"_index":197,"name":{"212":{}},"parent":{}}],["settruststoreoptions",{"_index":160,"name":{"164":{}},"parent":{}}],["settryusecompression",{"_index":162,"name":{"166":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":163,"name":{"167":{},"168":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":165,"name":{"170":{},"172":{}},"parent":{}}],["setusealpn",{"_index":168,"name":{"176":{}},"parent":{}}],["setusebasicauthorizationheader",{"_index":170,"name":{"178":{}},"parent":{}}],["setusepooledbuffers",{"_index":172,"name":{"180":{}},"parent":{}}],["setuseragent",{"_index":174,"name":{"182":{}},"parent":{}}],["setuserinfoparameters",{"_index":176,"name":{"184":{}},"parent":{}}],["setuserinfopath",{"_index":178,"name":{"186":{}},"parent":{}}],["setvalidateissuer",{"_index":180,"name":{"188":{}},"parent":{}}],["setverifyhost",{"_index":182,"name":{"190":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":184,"name":{"192":{},"198":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":186,"name":{"194":{},"200":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":188,"name":{"196":{},"202":{}},"parent":{}}],["shopifyauth",{"_index":256,"name":{"295":{}},"parent":{"296":{}}}],["soundcloudauth",{"_index":257,"name":{"297":{}},"parent":{"298":{}}}],["statuscode",{"_index":247,"name":{"283":{}},"parent":{}}],["stripeauth",{"_index":258,"name":{"299":{}},"parent":{"300":{}}}],["tokentype",{"_index":196,"name":{"211":{}},"parent":{}}],["twitterauth",{"_index":259,"name":{"301":{}},"parent":{"302":{}}}],["userinfo",{"_index":202,"name":{"217":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"4":"Enumeration","16":"Enumeration member","128":"Class","512":"Constructor","2048":"Method"},"rows":[{"id":0,"kind":4,"name":"OAuth2FlowType","url":"enums/oauth2flowtype.html","classes":"tsd-kind-enum"},{"id":1,"kind":16,"name":"AUTH_CODE","url":"enums/oauth2flowtype.html#auth_code","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":2,"kind":16,"name":"CLIENT","url":"enums/oauth2flowtype.html#client","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":3,"kind":16,"name":"PASSWORD","url":"enums/oauth2flowtype.html#password","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":4,"kind":16,"name":"AUTH_JWT","url":"enums/oauth2flowtype.html#auth_jwt","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"OAuth2FlowType"},{"id":5,"kind":128,"name":"OAuth2ClientOptions","url":"classes/oauth2clientoptions.html","classes":"tsd-kind-class"},{"id":6,"kind":512,"name":"constructor","url":"classes/oauth2clientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":7,"kind":2048,"name":"getAlpnVersions","url":"classes/oauth2clientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":8,"kind":2048,"name":"setAlpnVersions","url":"classes/oauth2clientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":9,"kind":2048,"name":"getAuthorizationPath","url":"classes/oauth2clientoptions.html#getauthorizationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":10,"kind":2048,"name":"setAuthorizationPath","url":"classes/oauth2clientoptions.html#setauthorizationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":11,"kind":2048,"name":"getClientID","url":"classes/oauth2clientoptions.html#getclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":12,"kind":2048,"name":"setClientID","url":"classes/oauth2clientoptions.html#setclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":13,"kind":2048,"name":"getClientSecret","url":"classes/oauth2clientoptions.html#getclientsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":14,"kind":2048,"name":"setClientSecret","url":"classes/oauth2clientoptions.html#setclientsecret","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":15,"kind":2048,"name":"getClientSecretParameterName","url":"classes/oauth2clientoptions.html#getclientsecretparametername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":16,"kind":2048,"name":"setClientSecretParameterName","url":"classes/oauth2clientoptions.html#setclientsecretparametername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":17,"kind":2048,"name":"getConnectTimeout","url":"classes/oauth2clientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":18,"kind":2048,"name":"setConnectTimeout","url":"classes/oauth2clientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":19,"kind":2048,"name":"getCrlPaths","url":"classes/oauth2clientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":20,"kind":2048,"name":"addCrlPath","url":"classes/oauth2clientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":21,"kind":2048,"name":"getCrlValues","url":"classes/oauth2clientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":22,"kind":2048,"name":"addCrlValue","url":"classes/oauth2clientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":23,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/oauth2clientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":24,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/oauth2clientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":25,"kind":2048,"name":"getDefaultHost","url":"classes/oauth2clientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":26,"kind":2048,"name":"setDefaultHost","url":"classes/oauth2clientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":27,"kind":2048,"name":"getDefaultPort","url":"classes/oauth2clientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":28,"kind":2048,"name":"setDefaultPort","url":"classes/oauth2clientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":29,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/oauth2clientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":30,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/oauth2clientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":31,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/oauth2clientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":32,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/oauth2clientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":33,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/oauth2clientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":34,"kind":2048,"name":"getExtraParameters","url":"classes/oauth2clientoptions.html#getextraparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":35,"kind":2048,"name":"setExtraParameters","url":"classes/oauth2clientoptions.html#setextraparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":36,"kind":2048,"name":"getFlow","url":"classes/oauth2clientoptions.html#getflow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":37,"kind":2048,"name":"setFlow","url":"classes/oauth2clientoptions.html#setflow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":38,"kind":2048,"name":"isForceSni","url":"classes/oauth2clientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":39,"kind":2048,"name":"setForceSni","url":"classes/oauth2clientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":40,"kind":2048,"name":"getHeaders","url":"classes/oauth2clientoptions.html#getheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":41,"kind":2048,"name":"setHeaders","url":"classes/oauth2clientoptions.html#setheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":42,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/oauth2clientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":43,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/oauth2clientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":44,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/oauth2clientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":45,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/oauth2clientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":46,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/oauth2clientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":47,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/oauth2clientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":48,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/oauth2clientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":49,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/oauth2clientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":50,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/oauth2clientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":51,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/oauth2clientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":52,"kind":2048,"name":"getIdleTimeout","url":"classes/oauth2clientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":53,"kind":2048,"name":"setIdleTimeout","url":"classes/oauth2clientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":54,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/oauth2clientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":55,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/oauth2clientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":56,"kind":2048,"name":"getInitialSettings","url":"classes/oauth2clientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":57,"kind":2048,"name":"setInitialSettings","url":"classes/oauth2clientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":58,"kind":2048,"name":"getIntrospectionPath","url":"classes/oauth2clientoptions.html#getintrospectionpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":59,"kind":2048,"name":"setIntrospectionPath","url":"classes/oauth2clientoptions.html#setintrospectionpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":60,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/oauth2clientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":61,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/oauth2clientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":62,"kind":2048,"name":"getJwkPath","url":"classes/oauth2clientoptions.html#getjwkpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":63,"kind":2048,"name":"setJwkPath","url":"classes/oauth2clientoptions.html#setjwkpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":64,"kind":2048,"name":"getJWTOptions","url":"classes/oauth2clientoptions.html#getjwtoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":65,"kind":2048,"name":"setJWTOptions","url":"classes/oauth2clientoptions.html#setjwtoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":66,"kind":2048,"name":"isKeepAlive","url":"classes/oauth2clientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":67,"kind":2048,"name":"setKeepAlive","url":"classes/oauth2clientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":68,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/oauth2clientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":69,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/oauth2clientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":70,"kind":2048,"name":"getKeyStoreOptions","url":"classes/oauth2clientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":71,"kind":2048,"name":"setKeyStoreOptions","url":"classes/oauth2clientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":72,"kind":2048,"name":"getLocalAddress","url":"classes/oauth2clientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":73,"kind":2048,"name":"setLocalAddress","url":"classes/oauth2clientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":74,"kind":2048,"name":"getLogActivity","url":"classes/oauth2clientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":75,"kind":2048,"name":"setLogActivity","url":"classes/oauth2clientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":76,"kind":2048,"name":"getLogoutPath","url":"classes/oauth2clientoptions.html#getlogoutpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":77,"kind":2048,"name":"setLogoutPath","url":"classes/oauth2clientoptions.html#setlogoutpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":78,"kind":2048,"name":"getMaxChunkSize","url":"classes/oauth2clientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":79,"kind":2048,"name":"setMaxChunkSize","url":"classes/oauth2clientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":80,"kind":2048,"name":"getMaxHeaderSize","url":"classes/oauth2clientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":81,"kind":2048,"name":"setMaxHeaderSize","url":"classes/oauth2clientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":82,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/oauth2clientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":83,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/oauth2clientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":84,"kind":2048,"name":"getMaxPoolSize","url":"classes/oauth2clientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":85,"kind":2048,"name":"setMaxPoolSize","url":"classes/oauth2clientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":86,"kind":2048,"name":"getMaxRedirects","url":"classes/oauth2clientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":87,"kind":2048,"name":"setMaxRedirects","url":"classes/oauth2clientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":88,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/oauth2clientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":89,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/oauth2clientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":90,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":91,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":92,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":93,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":94,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":95,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":96,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/oauth2clientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":97,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/oauth2clientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":98,"kind":2048,"name":"getMetricsName","url":"classes/oauth2clientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":99,"kind":2048,"name":"setMetricsName","url":"classes/oauth2clientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":100,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/oauth2clientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":101,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/oauth2clientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":102,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/oauth2clientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":103,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/oauth2clientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":104,"kind":2048,"name":"getPemTrustOptions","url":"classes/oauth2clientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":105,"kind":2048,"name":"setPemTrustOptions","url":"classes/oauth2clientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":106,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/oauth2clientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":107,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/oauth2clientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":108,"kind":2048,"name":"getPfxTrustOptions","url":"classes/oauth2clientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":109,"kind":2048,"name":"setPfxTrustOptions","url":"classes/oauth2clientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":110,"kind":2048,"name":"isPipelining","url":"classes/oauth2clientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":111,"kind":2048,"name":"setPipelining","url":"classes/oauth2clientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":112,"kind":2048,"name":"getPipeliningLimit","url":"classes/oauth2clientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":113,"kind":2048,"name":"setPipeliningLimit","url":"classes/oauth2clientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":114,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/oauth2clientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":115,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/oauth2clientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":116,"kind":2048,"name":"getProtocolVersion","url":"classes/oauth2clientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":117,"kind":2048,"name":"setProtocolVersion","url":"classes/oauth2clientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":118,"kind":2048,"name":"getProxyOptions","url":"classes/oauth2clientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":119,"kind":2048,"name":"setProxyOptions","url":"classes/oauth2clientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":120,"kind":2048,"name":"getPubSecKeys","url":"classes/oauth2clientoptions.html#getpubseckeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":121,"kind":2048,"name":"setPubSecKeys","url":"classes/oauth2clientoptions.html#setpubseckeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":122,"kind":2048,"name":"addPubSecKey","url":"classes/oauth2clientoptions.html#addpubseckey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":123,"kind":2048,"name":"getReceiveBufferSize","url":"classes/oauth2clientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":124,"kind":2048,"name":"setReceiveBufferSize","url":"classes/oauth2clientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":125,"kind":2048,"name":"isReuseAddress","url":"classes/oauth2clientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":126,"kind":2048,"name":"setReuseAddress","url":"classes/oauth2clientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":127,"kind":2048,"name":"isReusePort","url":"classes/oauth2clientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":128,"kind":2048,"name":"setReusePort","url":"classes/oauth2clientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":129,"kind":2048,"name":"getRevocationPath","url":"classes/oauth2clientoptions.html#getrevocationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":130,"kind":2048,"name":"setRevocationPath","url":"classes/oauth2clientoptions.html#setrevocationpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":131,"kind":2048,"name":"getScopeSeparator","url":"classes/oauth2clientoptions.html#getscopeseparator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":132,"kind":2048,"name":"setScopeSeparator","url":"classes/oauth2clientoptions.html#setscopeseparator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":133,"kind":2048,"name":"getSendBufferSize","url":"classes/oauth2clientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":134,"kind":2048,"name":"setSendBufferSize","url":"classes/oauth2clientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":135,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/oauth2clientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":136,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/oauth2clientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":137,"kind":2048,"name":"getSite","url":"classes/oauth2clientoptions.html#getsite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":138,"kind":2048,"name":"setSite","url":"classes/oauth2clientoptions.html#setsite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":139,"kind":2048,"name":"getSoLinger","url":"classes/oauth2clientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":140,"kind":2048,"name":"setSoLinger","url":"classes/oauth2clientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":141,"kind":2048,"name":"isSsl","url":"classes/oauth2clientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":142,"kind":2048,"name":"setSsl","url":"classes/oauth2clientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":143,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/oauth2clientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":144,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/oauth2clientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":145,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/oauth2clientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":146,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/oauth2clientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":147,"kind":2048,"name":"isTcpCork","url":"classes/oauth2clientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":148,"kind":2048,"name":"setTcpCork","url":"classes/oauth2clientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":149,"kind":2048,"name":"isTcpFastOpen","url":"classes/oauth2clientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":150,"kind":2048,"name":"setTcpFastOpen","url":"classes/oauth2clientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":151,"kind":2048,"name":"isTcpKeepAlive","url":"classes/oauth2clientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":152,"kind":2048,"name":"setTcpKeepAlive","url":"classes/oauth2clientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":153,"kind":2048,"name":"isTcpNoDelay","url":"classes/oauth2clientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":154,"kind":2048,"name":"setTcpNoDelay","url":"classes/oauth2clientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":155,"kind":2048,"name":"isTcpQuickAck","url":"classes/oauth2clientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":156,"kind":2048,"name":"setTcpQuickAck","url":"classes/oauth2clientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":157,"kind":2048,"name":"getTokenPath","url":"classes/oauth2clientoptions.html#gettokenpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":158,"kind":2048,"name":"setTokenPath","url":"classes/oauth2clientoptions.html#settokenpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":159,"kind":2048,"name":"getTrafficClass","url":"classes/oauth2clientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":160,"kind":2048,"name":"setTrafficClass","url":"classes/oauth2clientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":161,"kind":2048,"name":"isTrustAll","url":"classes/oauth2clientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":162,"kind":2048,"name":"setTrustAll","url":"classes/oauth2clientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":163,"kind":2048,"name":"getTrustStoreOptions","url":"classes/oauth2clientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":164,"kind":2048,"name":"setTrustStoreOptions","url":"classes/oauth2clientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":165,"kind":2048,"name":"isTryUseCompression","url":"classes/oauth2clientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":166,"kind":2048,"name":"setTryUseCompression","url":"classes/oauth2clientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":167,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/oauth2clientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":168,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/oauth2clientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":169,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/oauth2clientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":170,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/oauth2clientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":171,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/oauth2clientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":172,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/oauth2clientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":173,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/oauth2clientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":174,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/oauth2clientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":175,"kind":2048,"name":"isUseAlpn","url":"classes/oauth2clientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":176,"kind":2048,"name":"setUseAlpn","url":"classes/oauth2clientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":177,"kind":2048,"name":"isUseBasicAuthorizationHeader","url":"classes/oauth2clientoptions.html#isusebasicauthorizationheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":178,"kind":2048,"name":"setUseBasicAuthorizationHeader","url":"classes/oauth2clientoptions.html#setusebasicauthorizationheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":179,"kind":2048,"name":"isUsePooledBuffers","url":"classes/oauth2clientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":180,"kind":2048,"name":"setUsePooledBuffers","url":"classes/oauth2clientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":181,"kind":2048,"name":"getUserAgent","url":"classes/oauth2clientoptions.html#getuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":182,"kind":2048,"name":"setUserAgent","url":"classes/oauth2clientoptions.html#setuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":183,"kind":2048,"name":"getUserInfoParameters","url":"classes/oauth2clientoptions.html#getuserinfoparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":184,"kind":2048,"name":"setUserInfoParameters","url":"classes/oauth2clientoptions.html#setuserinfoparameters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":185,"kind":2048,"name":"getUserInfoPath","url":"classes/oauth2clientoptions.html#getuserinfopath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":186,"kind":2048,"name":"setUserInfoPath","url":"classes/oauth2clientoptions.html#setuserinfopath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":187,"kind":2048,"name":"isValidateIssuer","url":"classes/oauth2clientoptions.html#isvalidateissuer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":188,"kind":2048,"name":"setValidateIssuer","url":"classes/oauth2clientoptions.html#setvalidateissuer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":189,"kind":2048,"name":"isVerifyHost","url":"classes/oauth2clientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":190,"kind":2048,"name":"setVerifyHost","url":"classes/oauth2clientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":191,"kind":2048,"name":"getWebSocketClosingTimeout","url":"classes/oauth2clientoptions.html#getwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":192,"kind":2048,"name":"setWebSocketClosingTimeout","url":"classes/oauth2clientoptions.html#setwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":193,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":194,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":195,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/oauth2clientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":196,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/oauth2clientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":197,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":198,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":199,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":200,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":201,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/oauth2clientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":202,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/oauth2clientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":203,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":204,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/oauth2clientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2ClientOptions"},{"id":205,"kind":128,"name":"AccessToken","url":"classes/accesstoken.html","classes":"tsd-kind-class"},{"id":206,"kind":2048,"name":"expired","url":"classes/accesstoken.html#expired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":207,"kind":2048,"name":"accessToken","url":"classes/accesstoken.html#accesstoken-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":208,"kind":2048,"name":"refreshToken","url":"classes/accesstoken.html#refreshtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":209,"kind":2048,"name":"idToken","url":"classes/accesstoken.html#idtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":210,"kind":2048,"name":"opaqueAccessToken","url":"classes/accesstoken.html#opaqueaccesstoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":211,"kind":2048,"name":"opaqueRefreshToken","url":"classes/accesstoken.html#opaquerefreshtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":212,"kind":2048,"name":"opaqueIdToken","url":"classes/accesstoken.html#opaqueidtoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":213,"kind":2048,"name":"tokenType","url":"classes/accesstoken.html#tokentype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":214,"kind":2048,"name":"setTrustJWT","url":"classes/accesstoken.html#settrustjwt","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":215,"kind":2048,"name":"refresh","url":"classes/accesstoken.html#refresh","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":216,"kind":2048,"name":"revoke","url":"classes/accesstoken.html#revoke","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":217,"kind":2048,"name":"logout","url":"classes/accesstoken.html#logout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":218,"kind":2048,"name":"introspect","url":"classes/accesstoken.html#introspect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":219,"kind":2048,"name":"userInfo","url":"classes/accesstoken.html#userinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":220,"kind":2048,"name":"fetch","url":"classes/accesstoken.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AccessToken"},{"id":221,"kind":128,"name":"AzureADAuth","url":"classes/azureadauth.html","classes":"tsd-kind-class"},{"id":222,"kind":2048,"name":"create","url":"classes/azureadauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"AzureADAuth"},{"id":223,"kind":2048,"name":"discover","url":"classes/azureadauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"AzureADAuth"},{"id":224,"kind":128,"name":"BoxAuth","url":"classes/boxauth.html","classes":"tsd-kind-class"},{"id":225,"kind":2048,"name":"create","url":"classes/boxauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BoxAuth"},{"id":226,"kind":128,"name":"CloudFoundryAuth","url":"classes/cloudfoundryauth.html","classes":"tsd-kind-class"},{"id":227,"kind":2048,"name":"create","url":"classes/cloudfoundryauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CloudFoundryAuth"},{"id":228,"kind":128,"name":"DropboxAuth","url":"classes/dropboxauth.html","classes":"tsd-kind-class"},{"id":229,"kind":2048,"name":"create","url":"classes/dropboxauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"DropboxAuth"},{"id":230,"kind":128,"name":"FacebookAuth","url":"classes/facebookauth.html","classes":"tsd-kind-class"},{"id":231,"kind":2048,"name":"create","url":"classes/facebookauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FacebookAuth"},{"id":232,"kind":128,"name":"FoursquareAuth","url":"classes/foursquareauth.html","classes":"tsd-kind-class"},{"id":233,"kind":2048,"name":"create","url":"classes/foursquareauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FoursquareAuth"},{"id":234,"kind":128,"name":"GithubAuth","url":"classes/githubauth.html","classes":"tsd-kind-class"},{"id":235,"kind":2048,"name":"create","url":"classes/githubauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GithubAuth"},{"id":236,"kind":128,"name":"GoogleAuth","url":"classes/googleauth.html","classes":"tsd-kind-class"},{"id":237,"kind":2048,"name":"create","url":"classes/googleauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GoogleAuth"},{"id":238,"kind":2048,"name":"discover","url":"classes/googleauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"GoogleAuth"},{"id":239,"kind":128,"name":"HerokuAuth","url":"classes/herokuauth.html","classes":"tsd-kind-class"},{"id":240,"kind":2048,"name":"create","url":"classes/herokuauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"HerokuAuth"},{"id":241,"kind":128,"name":"InstagramAuth","url":"classes/instagramauth.html","classes":"tsd-kind-class"},{"id":242,"kind":2048,"name":"create","url":"classes/instagramauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"InstagramAuth"},{"id":243,"kind":128,"name":"KeycloakAuth","url":"classes/keycloakauth.html","classes":"tsd-kind-class"},{"id":244,"kind":2048,"name":"create","url":"classes/keycloakauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakAuth"},{"id":245,"kind":2048,"name":"discover","url":"classes/keycloakauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"KeycloakAuth"},{"id":246,"kind":128,"name":"KeycloakHelper","url":"classes/keycloakhelper.html","classes":"tsd-kind-class"},{"id":247,"kind":2048,"name":"rawIdToken","url":"classes/keycloakhelper.html#rawidtoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":248,"kind":2048,"name":"idToken","url":"classes/keycloakhelper.html#idtoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":249,"kind":2048,"name":"rawAccessToken","url":"classes/keycloakhelper.html#rawaccesstoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":250,"kind":2048,"name":"accessToken","url":"classes/keycloakhelper.html#accesstoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":251,"kind":2048,"name":"authTime","url":"classes/keycloakhelper.html#authtime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":252,"kind":2048,"name":"sessionState","url":"classes/keycloakhelper.html#sessionstate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":253,"kind":2048,"name":"acr","url":"classes/keycloakhelper.html#acr","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":254,"kind":2048,"name":"name","url":"classes/keycloakhelper.html#name","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":255,"kind":2048,"name":"email","url":"classes/keycloakhelper.html#email","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":256,"kind":2048,"name":"preferredUsername","url":"classes/keycloakhelper.html#preferredusername","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":257,"kind":2048,"name":"nickName","url":"classes/keycloakhelper.html#nickname","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":258,"kind":2048,"name":"allowedOrigins","url":"classes/keycloakhelper.html#allowedorigins","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":259,"kind":2048,"name":"parseToken","url":"classes/keycloakhelper.html#parsetoken","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakHelper"},{"id":260,"kind":128,"name":"KeycloakRBAC","url":"classes/keycloakrbac.html","classes":"tsd-kind-class"},{"id":261,"kind":2048,"name":"create","url":"classes/keycloakrbac.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeycloakRBAC"},{"id":262,"kind":128,"name":"LinkedInAuth","url":"classes/linkedinauth.html","classes":"tsd-kind-class"},{"id":263,"kind":2048,"name":"create","url":"classes/linkedinauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"LinkedInAuth"},{"id":264,"kind":128,"name":"LiveAuth","url":"classes/liveauth.html","classes":"tsd-kind-class"},{"id":265,"kind":2048,"name":"create","url":"classes/liveauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"LiveAuth"},{"id":266,"kind":128,"name":"MailchimpAuth","url":"classes/mailchimpauth.html","classes":"tsd-kind-class"},{"id":267,"kind":2048,"name":"create","url":"classes/mailchimpauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MailchimpAuth"},{"id":268,"kind":128,"name":"MicroProfileRBAC","url":"classes/microprofilerbac.html","classes":"tsd-kind-class"},{"id":269,"kind":2048,"name":"create","url":"classes/microprofilerbac.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MicroProfileRBAC"},{"id":270,"kind":128,"name":"OAuth2Auth","url":"classes/oauth2auth.html","classes":"tsd-kind-class"},{"id":271,"kind":2048,"name":"createKeycloak","url":"classes/oauth2auth.html#createkeycloak","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"OAuth2Auth"},{"id":272,"kind":2048,"name":"create","url":"classes/oauth2auth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"OAuth2Auth"},{"id":273,"kind":2048,"name":"authorizeURL","url":"classes/oauth2auth.html#authorizeurl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":274,"kind":2048,"name":"getToken","url":"classes/oauth2auth.html#gettoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":275,"kind":2048,"name":"decodeToken","url":"classes/oauth2auth.html#decodetoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":276,"kind":2048,"name":"introspectToken","url":"classes/oauth2auth.html#introspecttoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":277,"kind":2048,"name":"getScopeSeparator","url":"classes/oauth2auth.html#getscopeseparator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":278,"kind":2048,"name":"getFlowType","url":"classes/oauth2auth.html#getflowtype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":279,"kind":2048,"name":"loadJWK","url":"classes/oauth2auth.html#loadjwk","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":280,"kind":2048,"name":"rbacHandler","url":"classes/oauth2auth.html#rbachandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":281,"kind":2048,"name":"missingKeyHandler","url":"classes/oauth2auth.html#missingkeyhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Auth"},{"id":282,"kind":128,"name":"OAuth2RBAC","url":"classes/oauth2rbac.html","classes":"tsd-kind-class"},{"id":283,"kind":2048,"name":"isAuthorized","url":"classes/oauth2rbac.html#isauthorized","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2RBAC"},{"id":284,"kind":128,"name":"OAuth2Response","url":"classes/oauth2response.html","classes":"tsd-kind-class"},{"id":285,"kind":2048,"name":"statusCode","url":"classes/oauth2response.html#statuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":286,"kind":2048,"name":"headers","url":"classes/oauth2response.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":287,"kind":2048,"name":"getHeader","url":"classes/oauth2response.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":288,"kind":2048,"name":"body","url":"classes/oauth2response.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":289,"kind":2048,"name":"jsonObject","url":"classes/oauth2response.html#jsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":290,"kind":2048,"name":"jsonArray","url":"classes/oauth2response.html#jsonarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":291,"kind":2048,"name":"is","url":"classes/oauth2response.html#is","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OAuth2Response"},{"id":292,"kind":128,"name":"OpenIDConnectAuth","url":"classes/openidconnectauth.html","classes":"tsd-kind-class"},{"id":293,"kind":2048,"name":"discover","url":"classes/openidconnectauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"OpenIDConnectAuth"},{"id":294,"kind":128,"name":"SalesforceAuth","url":"classes/salesforceauth.html","classes":"tsd-kind-class"},{"id":295,"kind":2048,"name":"create","url":"classes/salesforceauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SalesforceAuth"},{"id":296,"kind":2048,"name":"discover","url":"classes/salesforceauth.html#discover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"SalesforceAuth"},{"id":297,"kind":128,"name":"ShopifyAuth","url":"classes/shopifyauth.html","classes":"tsd-kind-class"},{"id":298,"kind":2048,"name":"create","url":"classes/shopifyauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ShopifyAuth"},{"id":299,"kind":128,"name":"SoundcloudAuth","url":"classes/soundcloudauth.html","classes":"tsd-kind-class"},{"id":300,"kind":2048,"name":"create","url":"classes/soundcloudauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SoundcloudAuth"},{"id":301,"kind":128,"name":"StripeAuth","url":"classes/stripeauth.html","classes":"tsd-kind-class"},{"id":302,"kind":2048,"name":"create","url":"classes/stripeauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"StripeAuth"},{"id":303,"kind":128,"name":"TwitterAuth","url":"classes/twitterauth.html","classes":"tsd-kind-class"},{"id":304,"kind":2048,"name":"create","url":"classes/twitterauth.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"TwitterAuth"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,40.188]],["parent/0",[]],["name/1",[1,53.181]],["parent/1",[0,3.853]],["name/2",[2,53.181]],["parent/2",[0,3.853]],["name/3",[3,53.181]],["parent/3",[0,3.853]],["name/4",[4,53.181]],["parent/4",[0,3.853]],["name/5",[5,4.228]],["parent/5",[]],["name/6",[6,53.181]],["parent/6",[5,0.405]],["name/7",[7,53.181]],["parent/7",[5,0.405]],["name/8",[8,53.181]],["parent/8",[5,0.405]],["name/9",[9,53.181]],["parent/9",[5,0.405]],["name/10",[10,53.181]],["parent/10",[5,0.405]],["name/11",[11,53.181]],["parent/11",[5,0.405]],["name/12",[12,53.181]],["parent/12",[5,0.405]],["name/13",[13,53.181]],["parent/13",[5,0.405]],["name/14",[14,53.181]],["parent/14",[5,0.405]],["name/15",[15,53.181]],["parent/15",[5,0.405]],["name/16",[16,53.181]],["parent/16",[5,0.405]],["name/17",[17,53.181]],["parent/17",[5,0.405]],["name/18",[18,53.181]],["parent/18",[5,0.405]],["name/19",[19,53.181]],["parent/19",[5,0.405]],["name/20",[20,53.181]],["parent/20",[5,0.405]],["name/21",[21,53.181]],["parent/21",[5,0.405]],["name/22",[22,53.181]],["parent/22",[5,0.405]],["name/23",[23,53.181]],["parent/23",[5,0.405]],["name/24",[24,53.181]],["parent/24",[5,0.405]],["name/25",[25,53.181]],["parent/25",[5,0.405]],["name/26",[26,53.181]],["parent/26",[5,0.405]],["name/27",[27,53.181]],["parent/27",[5,0.405]],["name/28",[28,53.181]],["parent/28",[5,0.405]],["name/29",[29,53.181]],["parent/29",[5,0.405]],["name/30",[30,53.181]],["parent/30",[5,0.405]],["name/31",[31,53.181]],["parent/31",[5,0.405]],["name/32",[32,53.181]],["parent/32",[5,0.405]],["name/33",[33,53.181]],["parent/33",[5,0.405]],["name/34",[34,53.181]],["parent/34",[5,0.405]],["name/35",[35,53.181]],["parent/35",[5,0.405]],["name/36",[36,53.181]],["parent/36",[5,0.405]],["name/37",[37,53.181]],["parent/37",[5,0.405]],["name/38",[38,53.181]],["parent/38",[5,0.405]],["name/39",[39,53.181]],["parent/39",[5,0.405]],["name/40",[40,53.181]],["parent/40",[5,0.405]],["name/41",[41,53.181]],["parent/41",[5,0.405]],["name/42",[42,53.181]],["parent/42",[5,0.405]],["name/43",[43,53.181]],["parent/43",[5,0.405]],["name/44",[44,53.181]],["parent/44",[5,0.405]],["name/45",[45,53.181]],["parent/45",[5,0.405]],["name/46",[46,53.181]],["parent/46",[5,0.405]],["name/47",[47,53.181]],["parent/47",[5,0.405]],["name/48",[48,53.181]],["parent/48",[5,0.405]],["name/49",[49,53.181]],["parent/49",[5,0.405]],["name/50",[50,53.181]],["parent/50",[5,0.405]],["name/51",[51,53.181]],["parent/51",[5,0.405]],["name/52",[52,53.181]],["parent/52",[5,0.405]],["name/53",[53,53.181]],["parent/53",[5,0.405]],["name/54",[54,53.181]],["parent/54",[5,0.405]],["name/55",[55,53.181]],["parent/55",[5,0.405]],["name/56",[56,53.181]],["parent/56",[5,0.405]],["name/57",[57,53.181]],["parent/57",[5,0.405]],["name/58",[58,53.181]],["parent/58",[5,0.405]],["name/59",[59,53.181]],["parent/59",[5,0.405]],["name/60",[60,53.181]],["parent/60",[5,0.405]],["name/61",[61,53.181]],["parent/61",[5,0.405]],["name/62",[62,53.181]],["parent/62",[5,0.405]],["name/63",[63,53.181]],["parent/63",[5,0.405]],["name/64",[64,53.181]],["parent/64",[5,0.405]],["name/65",[65,53.181]],["parent/65",[5,0.405]],["name/66",[66,53.181]],["parent/66",[5,0.405]],["name/67",[67,53.181]],["parent/67",[5,0.405]],["name/68",[68,53.181]],["parent/68",[5,0.405]],["name/69",[69,53.181]],["parent/69",[5,0.405]],["name/70",[70,53.181]],["parent/70",[5,0.405]],["name/71",[71,53.181]],["parent/71",[5,0.405]],["name/72",[72,53.181]],["parent/72",[5,0.405]],["name/73",[73,53.181]],["parent/73",[5,0.405]],["name/74",[74,53.181]],["parent/74",[5,0.405]],["name/75",[75,53.181]],["parent/75",[5,0.405]],["name/76",[76,53.181]],["parent/76",[5,0.405]],["name/77",[77,53.181]],["parent/77",[5,0.405]],["name/78",[78,53.181]],["parent/78",[5,0.405]],["name/79",[79,53.181]],["parent/79",[5,0.405]],["name/80",[80,53.181]],["parent/80",[5,0.405]],["name/81",[81,53.181]],["parent/81",[5,0.405]],["name/82",[82,53.181]],["parent/82",[5,0.405]],["name/83",[83,53.181]],["parent/83",[5,0.405]],["name/84",[84,53.181]],["parent/84",[5,0.405]],["name/85",[85,53.181]],["parent/85",[5,0.405]],["name/86",[86,53.181]],["parent/86",[5,0.405]],["name/87",[87,53.181]],["parent/87",[5,0.405]],["name/88",[88,53.181]],["parent/88",[5,0.405]],["name/89",[89,53.181]],["parent/89",[5,0.405]],["name/90",[90,48.073]],["parent/90",[5,0.405]],["name/91",[91,48.073]],["parent/91",[5,0.405]],["name/92",[92,48.073]],["parent/92",[5,0.405]],["name/93",[93,48.073]],["parent/93",[5,0.405]],["name/94",[90,48.073]],["parent/94",[5,0.405]],["name/95",[91,48.073]],["parent/95",[5,0.405]],["name/96",[92,48.073]],["parent/96",[5,0.405]],["name/97",[93,48.073]],["parent/97",[5,0.405]],["name/98",[94,53.181]],["parent/98",[5,0.405]],["name/99",[95,53.181]],["parent/99",[5,0.405]],["name/100",[96,53.181]],["parent/100",[5,0.405]],["name/101",[97,53.181]],["parent/101",[5,0.405]],["name/102",[98,53.181]],["parent/102",[5,0.405]],["name/103",[99,53.181]],["parent/103",[5,0.405]],["name/104",[100,53.181]],["parent/104",[5,0.405]],["name/105",[101,53.181]],["parent/105",[5,0.405]],["name/106",[102,53.181]],["parent/106",[5,0.405]],["name/107",[103,53.181]],["parent/107",[5,0.405]],["name/108",[104,53.181]],["parent/108",[5,0.405]],["name/109",[105,53.181]],["parent/109",[5,0.405]],["name/110",[106,53.181]],["parent/110",[5,0.405]],["name/111",[107,53.181]],["parent/111",[5,0.405]],["name/112",[108,53.181]],["parent/112",[5,0.405]],["name/113",[109,53.181]],["parent/113",[5,0.405]],["name/114",[110,53.181]],["parent/114",[5,0.405]],["name/115",[111,53.181]],["parent/115",[5,0.405]],["name/116",[112,53.181]],["parent/116",[5,0.405]],["name/117",[113,53.181]],["parent/117",[5,0.405]],["name/118",[114,53.181]],["parent/118",[5,0.405]],["name/119",[115,53.181]],["parent/119",[5,0.405]],["name/120",[116,53.181]],["parent/120",[5,0.405]],["name/121",[117,53.181]],["parent/121",[5,0.405]],["name/122",[118,53.181]],["parent/122",[5,0.405]],["name/123",[119,53.181]],["parent/123",[5,0.405]],["name/124",[120,53.181]],["parent/124",[5,0.405]],["name/125",[121,53.181]],["parent/125",[5,0.405]],["name/126",[122,53.181]],["parent/126",[5,0.405]],["name/127",[123,53.181]],["parent/127",[5,0.405]],["name/128",[124,53.181]],["parent/128",[5,0.405]],["name/129",[125,53.181]],["parent/129",[5,0.405]],["name/130",[126,53.181]],["parent/130",[5,0.405]],["name/131",[127,48.073]],["parent/131",[5,0.405]],["name/132",[128,53.181]],["parent/132",[5,0.405]],["name/133",[129,53.181]],["parent/133",[5,0.405]],["name/134",[130,53.181]],["parent/134",[5,0.405]],["name/135",[131,53.181]],["parent/135",[5,0.405]],["name/136",[132,53.181]],["parent/136",[5,0.405]],["name/137",[133,53.181]],["parent/137",[5,0.405]],["name/138",[134,53.181]],["parent/138",[5,0.405]],["name/139",[135,53.181]],["parent/139",[5,0.405]],["name/140",[136,53.181]],["parent/140",[5,0.405]],["name/141",[137,53.181]],["parent/141",[5,0.405]],["name/142",[138,53.181]],["parent/142",[5,0.405]],["name/143",[139,53.181]],["parent/143",[5,0.405]],["name/144",[140,53.181]],["parent/144",[5,0.405]],["name/145",[141,53.181]],["parent/145",[5,0.405]],["name/146",[142,53.181]],["parent/146",[5,0.405]],["name/147",[143,53.181]],["parent/147",[5,0.405]],["name/148",[144,53.181]],["parent/148",[5,0.405]],["name/149",[145,53.181]],["parent/149",[5,0.405]],["name/150",[146,53.181]],["parent/150",[5,0.405]],["name/151",[147,53.181]],["parent/151",[5,0.405]],["name/152",[148,53.181]],["parent/152",[5,0.405]],["name/153",[149,53.181]],["parent/153",[5,0.405]],["name/154",[150,53.181]],["parent/154",[5,0.405]],["name/155",[151,53.181]],["parent/155",[5,0.405]],["name/156",[152,53.181]],["parent/156",[5,0.405]],["name/157",[153,53.181]],["parent/157",[5,0.405]],["name/158",[154,53.181]],["parent/158",[5,0.405]],["name/159",[155,53.181]],["parent/159",[5,0.405]],["name/160",[156,53.181]],["parent/160",[5,0.405]],["name/161",[157,53.181]],["parent/161",[5,0.405]],["name/162",[158,53.181]],["parent/162",[5,0.405]],["name/163",[159,53.181]],["parent/163",[5,0.405]],["name/164",[160,53.181]],["parent/164",[5,0.405]],["name/165",[161,53.181]],["parent/165",[5,0.405]],["name/166",[162,53.181]],["parent/166",[5,0.405]],["name/167",[163,48.073]],["parent/167",[5,0.405]],["name/168",[163,48.073]],["parent/168",[5,0.405]],["name/169",[164,48.073]],["parent/169",[5,0.405]],["name/170",[165,48.073]],["parent/170",[5,0.405]],["name/171",[164,48.073]],["parent/171",[5,0.405]],["name/172",[165,48.073]],["parent/172",[5,0.405]],["name/173",[166,48.073]],["parent/173",[5,0.405]],["name/174",[166,48.073]],["parent/174",[5,0.405]],["name/175",[167,53.181]],["parent/175",[5,0.405]],["name/176",[168,53.181]],["parent/176",[5,0.405]],["name/177",[169,53.181]],["parent/177",[5,0.405]],["name/178",[170,53.181]],["parent/178",[5,0.405]],["name/179",[171,53.181]],["parent/179",[5,0.405]],["name/180",[172,53.181]],["parent/180",[5,0.405]],["name/181",[173,53.181]],["parent/181",[5,0.405]],["name/182",[174,53.181]],["parent/182",[5,0.405]],["name/183",[175,53.181]],["parent/183",[5,0.405]],["name/184",[176,53.181]],["parent/184",[5,0.405]],["name/185",[177,53.181]],["parent/185",[5,0.405]],["name/186",[178,53.181]],["parent/186",[5,0.405]],["name/187",[179,53.181]],["parent/187",[5,0.405]],["name/188",[180,53.181]],["parent/188",[5,0.405]],["name/189",[181,53.181]],["parent/189",[5,0.405]],["name/190",[182,53.181]],["parent/190",[5,0.405]],["name/191",[183,53.181]],["parent/191",[5,0.405]],["name/192",[184,53.181]],["parent/192",[5,0.405]],["name/193",[185,48.073]],["parent/193",[5,0.405]],["name/194",[186,48.073]],["parent/194",[5,0.405]],["name/195",[187,48.073]],["parent/195",[5,0.405]],["name/196",[188,48.073]],["parent/196",[5,0.405]],["name/197",[189,48.073]],["parent/197",[5,0.405]],["name/198",[190,48.073]],["parent/198",[5,0.405]],["name/199",[185,48.073]],["parent/199",[5,0.405]],["name/200",[186,48.073]],["parent/200",[5,0.405]],["name/201",[187,48.073]],["parent/201",[5,0.405]],["name/202",[188,48.073]],["parent/202",[5,0.405]],["name/203",[189,48.073]],["parent/203",[5,0.405]],["name/204",[190,48.073]],["parent/204",[5,0.405]],["name/205",[191,28.058]],["parent/205",[]],["name/206",[192,53.181]],["parent/206",[191,2.69]],["name/207",[191,28.058]],["parent/207",[191,2.69]],["name/208",[193,53.181]],["parent/208",[191,2.69]],["name/209",[194,48.073]],["parent/209",[191,2.69]],["name/210",[195,53.181]],["parent/210",[191,2.69]],["name/211",[196,53.181]],["parent/211",[191,2.69]],["name/212",[197,53.181]],["parent/212",[191,2.69]],["name/213",[198,53.181]],["parent/213",[191,2.69]],["name/214",[199,53.181]],["parent/214",[191,2.69]],["name/215",[200,53.181]],["parent/215",[191,2.69]],["name/216",[201,53.181]],["parent/216",[191,2.69]],["name/217",[202,53.181]],["parent/217",[191,2.69]],["name/218",[203,53.181]],["parent/218",[191,2.69]],["name/219",[204,53.181]],["parent/219",[191,2.69]],["name/220",[205,53.181]],["parent/220",[191,2.69]],["name/221",[206,44.708]],["parent/221",[]],["name/222",[207,26.101]],["parent/222",[206,4.287]],["name/223",[208,40.188]],["parent/223",[206,4.287]],["name/224",[209,48.073]],["parent/224",[]],["name/225",[207,26.101]],["parent/225",[209,4.609]],["name/226",[210,48.073]],["parent/226",[]],["name/227",[207,26.101]],["parent/227",[210,4.609]],["name/228",[211,48.073]],["parent/228",[]],["name/229",[207,26.101]],["parent/229",[211,4.609]],["name/230",[212,48.073]],["parent/230",[]],["name/231",[207,26.101]],["parent/231",[212,4.609]],["name/232",[213,48.073]],["parent/232",[]],["name/233",[207,26.101]],["parent/233",[213,4.609]],["name/234",[214,48.073]],["parent/234",[]],["name/235",[207,26.101]],["parent/235",[214,4.609]],["name/236",[215,44.708]],["parent/236",[]],["name/237",[207,26.101]],["parent/237",[215,4.287]],["name/238",[208,40.188]],["parent/238",[215,4.287]],["name/239",[216,48.073]],["parent/239",[]],["name/240",[207,26.101]],["parent/240",[216,4.609]],["name/241",[217,48.073]],["parent/241",[]],["name/242",[207,26.101]],["parent/242",[217,4.609]],["name/243",[218,44.708]],["parent/243",[]],["name/244",[207,26.101]],["parent/244",[218,4.287]],["name/245",[208,40.188]],["parent/245",[218,4.287]],["name/246",[219,30.494]],["parent/246",[]],["name/247",[220,53.181]],["parent/247",[219,2.924]],["name/248",[194,48.073]],["parent/248",[219,2.924]],["name/249",[221,53.181]],["parent/249",[219,2.924]],["name/250",[191,28.058]],["parent/250",[219,2.924]],["name/251",[222,53.181]],["parent/251",[219,2.924]],["name/252",[223,53.181]],["parent/252",[219,2.924]],["name/253",[224,53.181]],["parent/253",[219,2.924]],["name/254",[225,53.181]],["parent/254",[219,2.924]],["name/255",[226,53.181]],["parent/255",[219,2.924]],["name/256",[227,53.181]],["parent/256",[219,2.924]],["name/257",[228,53.181]],["parent/257",[219,2.924]],["name/258",[229,53.181]],["parent/258",[219,2.924]],["name/259",[230,53.181]],["parent/259",[219,2.924]],["name/260",[231,48.073]],["parent/260",[]],["name/261",[207,26.101]],["parent/261",[231,4.609]],["name/262",[232,48.073]],["parent/262",[]],["name/263",[207,26.101]],["parent/263",[232,4.609]],["name/264",[233,48.073]],["parent/264",[]],["name/265",[207,26.101]],["parent/265",[233,4.609]],["name/266",[234,48.073]],["parent/266",[]],["name/267",[207,26.101]],["parent/267",[234,4.609]],["name/268",[235,48.073]],["parent/268",[]],["name/269",[207,26.101]],["parent/269",[235,4.609]],["name/270",[236,31.979]],["parent/270",[]],["name/271",[237,53.181]],["parent/271",[236,3.066]],["name/272",[207,26.101]],["parent/272",[236,3.066]],["name/273",[238,53.181]],["parent/273",[236,3.066]],["name/274",[239,53.181]],["parent/274",[236,3.066]],["name/275",[240,53.181]],["parent/275",[236,3.066]],["name/276",[241,53.181]],["parent/276",[236,3.066]],["name/277",[127,48.073]],["parent/277",[236,3.066]],["name/278",[242,53.181]],["parent/278",[236,3.066]],["name/279",[243,53.181]],["parent/279",[236,3.066]],["name/280",[244,53.181]],["parent/280",[236,3.066]],["name/281",[245,53.181]],["parent/281",[236,3.066]],["name/282",[246,48.073]],["parent/282",[]],["name/283",[247,53.181]],["parent/283",[246,4.609]],["name/284",[248,35.835]],["parent/284",[]],["name/285",[249,53.181]],["parent/285",[248,3.436]],["name/286",[250,53.181]],["parent/286",[248,3.436]],["name/287",[251,53.181]],["parent/287",[248,3.436]],["name/288",[252,53.181]],["parent/288",[248,3.436]],["name/289",[253,53.181]],["parent/289",[248,3.436]],["name/290",[254,53.181]],["parent/290",[248,3.436]],["name/291",[255,53.181]],["parent/291",[248,3.436]],["name/292",[256,48.073]],["parent/292",[]],["name/293",[208,40.188]],["parent/293",[256,4.609]],["name/294",[257,44.708]],["parent/294",[]],["name/295",[207,26.101]],["parent/295",[257,4.287]],["name/296",[208,40.188]],["parent/296",[257,4.287]],["name/297",[258,48.073]],["parent/297",[]],["name/298",[207,26.101]],["parent/298",[258,4.609]],["name/299",[259,48.073]],["parent/299",[]],["name/300",[207,26.101]],["parent/300",[259,4.609]],["name/301",[260,48.073]],["parent/301",[]],["name/302",[207,26.101]],["parent/302",[260,4.609]],["name/303",[261,48.073]],["parent/303",[]],["name/304",[207,26.101]],["parent/304",[261,4.609]]],"invertedIndex":[["accesstoken",{"_index":191,"name":{"205":{},"207":{},"250":{}},"parent":{"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{}}}],["acr",{"_index":224,"name":{"253":{}},"parent":{}}],["addcrlpath",{"_index":20,"name":{"20":{}},"parent":{}}],["addcrlvalue",{"_index":22,"name":{"22":{}},"parent":{}}],["addenabledciphersuite",{"_index":30,"name":{"30":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":33,"name":{"33":{}},"parent":{}}],["addpubseckey",{"_index":118,"name":{"122":{}},"parent":{}}],["allowedorigins",{"_index":229,"name":{"258":{}},"parent":{}}],["auth_code",{"_index":1,"name":{"1":{}},"parent":{}}],["auth_jwt",{"_index":4,"name":{"4":{}},"parent":{}}],["authorizeurl",{"_index":238,"name":{"273":{}},"parent":{}}],["authtime",{"_index":222,"name":{"251":{}},"parent":{}}],["azureadauth",{"_index":206,"name":{"221":{}},"parent":{"222":{},"223":{}}}],["body",{"_index":252,"name":{"288":{}},"parent":{}}],["boxauth",{"_index":209,"name":{"224":{}},"parent":{"225":{}}}],["client",{"_index":2,"name":{"2":{}},"parent":{}}],["cloudfoundryauth",{"_index":210,"name":{"226":{}},"parent":{"227":{}}}],["constructor",{"_index":6,"name":{"6":{}},"parent":{}}],["create",{"_index":207,"name":{"222":{},"225":{},"227":{},"229":{},"231":{},"233":{},"235":{},"237":{},"240":{},"242":{},"244":{},"261":{},"263":{},"265":{},"267":{},"269":{},"272":{},"295":{},"298":{},"300":{},"302":{},"304":{}},"parent":{}}],["createkeycloak",{"_index":237,"name":{"271":{}},"parent":{}}],["decodetoken",{"_index":240,"name":{"275":{}},"parent":{}}],["discover",{"_index":208,"name":{"223":{},"238":{},"245":{},"293":{},"296":{}},"parent":{}}],["dropboxauth",{"_index":211,"name":{"228":{}},"parent":{"229":{}}}],["email",{"_index":226,"name":{"255":{}},"parent":{}}],["expired",{"_index":192,"name":{"206":{}},"parent":{}}],["facebookauth",{"_index":212,"name":{"230":{}},"parent":{"231":{}}}],["fetch",{"_index":205,"name":{"220":{}},"parent":{}}],["foursquareauth",{"_index":213,"name":{"232":{}},"parent":{"233":{}}}],["getalpnversions",{"_index":7,"name":{"7":{}},"parent":{}}],["getauthorizationpath",{"_index":9,"name":{"9":{}},"parent":{}}],["getclientid",{"_index":11,"name":{"11":{}},"parent":{}}],["getclientsecret",{"_index":13,"name":{"13":{}},"parent":{}}],["getclientsecretparametername",{"_index":15,"name":{"15":{}},"parent":{}}],["getconnecttimeout",{"_index":17,"name":{"17":{}},"parent":{}}],["getcrlpaths",{"_index":19,"name":{"19":{}},"parent":{}}],["getcrlvalues",{"_index":21,"name":{"21":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":23,"name":{"23":{}},"parent":{}}],["getdefaulthost",{"_index":25,"name":{"25":{}},"parent":{}}],["getdefaultport",{"_index":27,"name":{"27":{}},"parent":{}}],["getenabledciphersuites",{"_index":29,"name":{"29":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":31,"name":{"31":{}},"parent":{}}],["getextraparameters",{"_index":34,"name":{"34":{}},"parent":{}}],["getflow",{"_index":36,"name":{"36":{}},"parent":{}}],["getflowtype",{"_index":242,"name":{"278":{}},"parent":{}}],["getheader",{"_index":251,"name":{"287":{}},"parent":{}}],["getheaders",{"_index":40,"name":{"40":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":44,"name":{"44":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":46,"name":{"46":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":48,"name":{"48":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":50,"name":{"50":{}},"parent":{}}],["getidletimeout",{"_index":52,"name":{"52":{}},"parent":{}}],["getidletimeoutunit",{"_index":54,"name":{"54":{}},"parent":{}}],["getinitialsettings",{"_index":56,"name":{"56":{}},"parent":{}}],["getintrospectionpath",{"_index":58,"name":{"58":{}},"parent":{}}],["getjdksslengineoptions",{"_index":60,"name":{"60":{}},"parent":{}}],["getjwkpath",{"_index":62,"name":{"62":{}},"parent":{}}],["getjwtoptions",{"_index":64,"name":{"64":{}},"parent":{}}],["getkeepalivetimeout",{"_index":68,"name":{"68":{}},"parent":{}}],["getkeystoreoptions",{"_index":70,"name":{"70":{}},"parent":{}}],["getlocaladdress",{"_index":72,"name":{"72":{}},"parent":{}}],["getlogactivity",{"_index":74,"name":{"74":{}},"parent":{}}],["getlogoutpath",{"_index":76,"name":{"76":{}},"parent":{}}],["getmaxchunksize",{"_index":78,"name":{"78":{}},"parent":{}}],["getmaxheadersize",{"_index":80,"name":{"80":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":82,"name":{"82":{}},"parent":{}}],["getmaxpoolsize",{"_index":84,"name":{"84":{}},"parent":{}}],["getmaxredirects",{"_index":86,"name":{"86":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":88,"name":{"88":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":90,"name":{"90":{},"94":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":92,"name":{"92":{},"96":{}},"parent":{}}],["getmetricsname",{"_index":94,"name":{"98":{}},"parent":{}}],["getopensslengineoptions",{"_index":96,"name":{"100":{}},"parent":{}}],["getpemkeycertoptions",{"_index":98,"name":{"102":{}},"parent":{}}],["getpemtrustoptions",{"_index":100,"name":{"104":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":102,"name":{"106":{}},"parent":{}}],["getpfxtrustoptions",{"_index":104,"name":{"108":{}},"parent":{}}],["getpipelininglimit",{"_index":108,"name":{"112":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":110,"name":{"114":{}},"parent":{}}],["getprotocolversion",{"_index":112,"name":{"116":{}},"parent":{}}],["getproxyoptions",{"_index":114,"name":{"118":{}},"parent":{}}],["getpubseckeys",{"_index":116,"name":{"120":{}},"parent":{}}],["getreceivebuffersize",{"_index":119,"name":{"123":{}},"parent":{}}],["getrevocationpath",{"_index":125,"name":{"129":{}},"parent":{}}],["getscopeseparator",{"_index":127,"name":{"131":{},"277":{}},"parent":{}}],["getsendbuffersize",{"_index":129,"name":{"133":{}},"parent":{}}],["getsite",{"_index":133,"name":{"137":{}},"parent":{}}],["getsolinger",{"_index":135,"name":{"139":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":139,"name":{"143":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":141,"name":{"145":{}},"parent":{}}],["gettoken",{"_index":239,"name":{"274":{}},"parent":{}}],["gettokenpath",{"_index":153,"name":{"157":{}},"parent":{}}],["gettrafficclass",{"_index":155,"name":{"159":{}},"parent":{}}],["gettruststoreoptions",{"_index":159,"name":{"163":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":164,"name":{"169":{},"171":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":166,"name":{"173":{},"174":{}},"parent":{}}],["getuseragent",{"_index":173,"name":{"181":{}},"parent":{}}],["getuserinfoparameters",{"_index":175,"name":{"183":{}},"parent":{}}],["getuserinfopath",{"_index":177,"name":{"185":{}},"parent":{}}],["getwebsocketclosingtimeout",{"_index":183,"name":{"191":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":185,"name":{"193":{},"199":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":187,"name":{"195":{},"201":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":189,"name":{"197":{},"203":{}},"parent":{}}],["githubauth",{"_index":214,"name":{"234":{}},"parent":{"235":{}}}],["googleauth",{"_index":215,"name":{"236":{}},"parent":{"237":{},"238":{}}}],["headers",{"_index":250,"name":{"286":{}},"parent":{}}],["herokuauth",{"_index":216,"name":{"239":{}},"parent":{"240":{}}}],["idtoken",{"_index":194,"name":{"209":{},"248":{}},"parent":{}}],["instagramauth",{"_index":217,"name":{"241":{}},"parent":{"242":{}}}],["introspect",{"_index":203,"name":{"218":{}},"parent":{}}],["introspecttoken",{"_index":241,"name":{"276":{}},"parent":{}}],["is",{"_index":255,"name":{"291":{}},"parent":{}}],["isauthorized",{"_index":247,"name":{"283":{}},"parent":{}}],["isforcesni",{"_index":38,"name":{"38":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":42,"name":{"42":{}},"parent":{}}],["iskeepalive",{"_index":66,"name":{"66":{}},"parent":{}}],["ispipelining",{"_index":106,"name":{"110":{}},"parent":{}}],["isreuseaddress",{"_index":121,"name":{"125":{}},"parent":{}}],["isreuseport",{"_index":123,"name":{"127":{}},"parent":{}}],["issendunmaskedframes",{"_index":131,"name":{"135":{}},"parent":{}}],["isssl",{"_index":137,"name":{"141":{}},"parent":{}}],["istcpcork",{"_index":143,"name":{"147":{}},"parent":{}}],["istcpfastopen",{"_index":145,"name":{"149":{}},"parent":{}}],["istcpkeepalive",{"_index":147,"name":{"151":{}},"parent":{}}],["istcpnodelay",{"_index":149,"name":{"153":{}},"parent":{}}],["istcpquickack",{"_index":151,"name":{"155":{}},"parent":{}}],["istrustall",{"_index":157,"name":{"161":{}},"parent":{}}],["istryusecompression",{"_index":161,"name":{"165":{}},"parent":{}}],["isusealpn",{"_index":167,"name":{"175":{}},"parent":{}}],["isusebasicauthorizationheader",{"_index":169,"name":{"177":{}},"parent":{}}],["isusepooledbuffers",{"_index":171,"name":{"179":{}},"parent":{}}],["isvalidateissuer",{"_index":179,"name":{"187":{}},"parent":{}}],["isverifyhost",{"_index":181,"name":{"189":{}},"parent":{}}],["jsonarray",{"_index":254,"name":{"290":{}},"parent":{}}],["jsonobject",{"_index":253,"name":{"289":{}},"parent":{}}],["keycloakauth",{"_index":218,"name":{"243":{}},"parent":{"244":{},"245":{}}}],["keycloakhelper",{"_index":219,"name":{"246":{}},"parent":{"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{},"258":{},"259":{}}}],["keycloakrbac",{"_index":231,"name":{"260":{}},"parent":{"261":{}}}],["linkedinauth",{"_index":232,"name":{"262":{}},"parent":{"263":{}}}],["liveauth",{"_index":233,"name":{"264":{}},"parent":{"265":{}}}],["loadjwk",{"_index":243,"name":{"279":{}},"parent":{}}],["logout",{"_index":202,"name":{"217":{}},"parent":{}}],["mailchimpauth",{"_index":234,"name":{"266":{}},"parent":{"267":{}}}],["microprofilerbac",{"_index":235,"name":{"268":{}},"parent":{"269":{}}}],["missingkeyhandler",{"_index":245,"name":{"281":{}},"parent":{}}],["name",{"_index":225,"name":{"254":{}},"parent":{}}],["nickname",{"_index":228,"name":{"257":{}},"parent":{}}],["oauth2auth",{"_index":236,"name":{"270":{}},"parent":{"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{}}}],["oauth2clientoptions",{"_index":5,"name":{"5":{}},"parent":{"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{}}}],["oauth2flowtype",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{}}}],["oauth2rbac",{"_index":246,"name":{"282":{}},"parent":{"283":{}}}],["oauth2response",{"_index":248,"name":{"284":{}},"parent":{"285":{},"286":{},"287":{},"288":{},"289":{},"290":{},"291":{}}}],["opaqueaccesstoken",{"_index":195,"name":{"210":{}},"parent":{}}],["opaqueidtoken",{"_index":197,"name":{"212":{}},"parent":{}}],["opaquerefreshtoken",{"_index":196,"name":{"211":{}},"parent":{}}],["openidconnectauth",{"_index":256,"name":{"292":{}},"parent":{"293":{}}}],["parsetoken",{"_index":230,"name":{"259":{}},"parent":{}}],["password",{"_index":3,"name":{"3":{}},"parent":{}}],["preferredusername",{"_index":227,"name":{"256":{}},"parent":{}}],["rawaccesstoken",{"_index":221,"name":{"249":{}},"parent":{}}],["rawidtoken",{"_index":220,"name":{"247":{}},"parent":{}}],["rbachandler",{"_index":244,"name":{"280":{}},"parent":{}}],["refresh",{"_index":200,"name":{"215":{}},"parent":{}}],["refreshtoken",{"_index":193,"name":{"208":{}},"parent":{}}],["revoke",{"_index":201,"name":{"216":{}},"parent":{}}],["salesforceauth",{"_index":257,"name":{"294":{}},"parent":{"295":{},"296":{}}}],["sessionstate",{"_index":223,"name":{"252":{}},"parent":{}}],["setalpnversions",{"_index":8,"name":{"8":{}},"parent":{}}],["setauthorizationpath",{"_index":10,"name":{"10":{}},"parent":{}}],["setclientid",{"_index":12,"name":{"12":{}},"parent":{}}],["setclientsecret",{"_index":14,"name":{"14":{}},"parent":{}}],["setclientsecretparametername",{"_index":16,"name":{"16":{}},"parent":{}}],["setconnecttimeout",{"_index":18,"name":{"18":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":24,"name":{"24":{}},"parent":{}}],["setdefaulthost",{"_index":26,"name":{"26":{}},"parent":{}}],["setdefaultport",{"_index":28,"name":{"28":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":32,"name":{"32":{}},"parent":{}}],["setextraparameters",{"_index":35,"name":{"35":{}},"parent":{}}],["setflow",{"_index":37,"name":{"37":{}},"parent":{}}],["setforcesni",{"_index":39,"name":{"39":{}},"parent":{}}],["setheaders",{"_index":41,"name":{"41":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":43,"name":{"43":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":45,"name":{"45":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":47,"name":{"47":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":49,"name":{"49":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":51,"name":{"51":{}},"parent":{}}],["setidletimeout",{"_index":53,"name":{"53":{}},"parent":{}}],["setidletimeoutunit",{"_index":55,"name":{"55":{}},"parent":{}}],["setinitialsettings",{"_index":57,"name":{"57":{}},"parent":{}}],["setintrospectionpath",{"_index":59,"name":{"59":{}},"parent":{}}],["setjdksslengineoptions",{"_index":61,"name":{"61":{}},"parent":{}}],["setjwkpath",{"_index":63,"name":{"63":{}},"parent":{}}],["setjwtoptions",{"_index":65,"name":{"65":{}},"parent":{}}],["setkeepalive",{"_index":67,"name":{"67":{}},"parent":{}}],["setkeepalivetimeout",{"_index":69,"name":{"69":{}},"parent":{}}],["setkeystoreoptions",{"_index":71,"name":{"71":{}},"parent":{}}],["setlocaladdress",{"_index":73,"name":{"73":{}},"parent":{}}],["setlogactivity",{"_index":75,"name":{"75":{}},"parent":{}}],["setlogoutpath",{"_index":77,"name":{"77":{}},"parent":{}}],["setmaxchunksize",{"_index":79,"name":{"79":{}},"parent":{}}],["setmaxheadersize",{"_index":81,"name":{"81":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":83,"name":{"83":{}},"parent":{}}],["setmaxpoolsize",{"_index":85,"name":{"85":{}},"parent":{}}],["setmaxredirects",{"_index":87,"name":{"87":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":89,"name":{"89":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":91,"name":{"91":{},"95":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":93,"name":{"93":{},"97":{}},"parent":{}}],["setmetricsname",{"_index":95,"name":{"99":{}},"parent":{}}],["setopensslengineoptions",{"_index":97,"name":{"101":{}},"parent":{}}],["setpemkeycertoptions",{"_index":99,"name":{"103":{}},"parent":{}}],["setpemtrustoptions",{"_index":101,"name":{"105":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":103,"name":{"107":{}},"parent":{}}],["setpfxtrustoptions",{"_index":105,"name":{"109":{}},"parent":{}}],["setpipelining",{"_index":107,"name":{"111":{}},"parent":{}}],["setpipelininglimit",{"_index":109,"name":{"113":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":111,"name":{"115":{}},"parent":{}}],["setprotocolversion",{"_index":113,"name":{"117":{}},"parent":{}}],["setproxyoptions",{"_index":115,"name":{"119":{}},"parent":{}}],["setpubseckeys",{"_index":117,"name":{"121":{}},"parent":{}}],["setreceivebuffersize",{"_index":120,"name":{"124":{}},"parent":{}}],["setreuseaddress",{"_index":122,"name":{"126":{}},"parent":{}}],["setreuseport",{"_index":124,"name":{"128":{}},"parent":{}}],["setrevocationpath",{"_index":126,"name":{"130":{}},"parent":{}}],["setscopeseparator",{"_index":128,"name":{"132":{}},"parent":{}}],["setsendbuffersize",{"_index":130,"name":{"134":{}},"parent":{}}],["setsendunmaskedframes",{"_index":132,"name":{"136":{}},"parent":{}}],["setsite",{"_index":134,"name":{"138":{}},"parent":{}}],["setsolinger",{"_index":136,"name":{"140":{}},"parent":{}}],["setssl",{"_index":138,"name":{"142":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":140,"name":{"144":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":142,"name":{"146":{}},"parent":{}}],["settcpcork",{"_index":144,"name":{"148":{}},"parent":{}}],["settcpfastopen",{"_index":146,"name":{"150":{}},"parent":{}}],["settcpkeepalive",{"_index":148,"name":{"152":{}},"parent":{}}],["settcpnodelay",{"_index":150,"name":{"154":{}},"parent":{}}],["settcpquickack",{"_index":152,"name":{"156":{}},"parent":{}}],["settokenpath",{"_index":154,"name":{"158":{}},"parent":{}}],["settrafficclass",{"_index":156,"name":{"160":{}},"parent":{}}],["settrustall",{"_index":158,"name":{"162":{}},"parent":{}}],["settrustjwt",{"_index":199,"name":{"214":{}},"parent":{}}],["settruststoreoptions",{"_index":160,"name":{"164":{}},"parent":{}}],["settryusecompression",{"_index":162,"name":{"166":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":163,"name":{"167":{},"168":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":165,"name":{"170":{},"172":{}},"parent":{}}],["setusealpn",{"_index":168,"name":{"176":{}},"parent":{}}],["setusebasicauthorizationheader",{"_index":170,"name":{"178":{}},"parent":{}}],["setusepooledbuffers",{"_index":172,"name":{"180":{}},"parent":{}}],["setuseragent",{"_index":174,"name":{"182":{}},"parent":{}}],["setuserinfoparameters",{"_index":176,"name":{"184":{}},"parent":{}}],["setuserinfopath",{"_index":178,"name":{"186":{}},"parent":{}}],["setvalidateissuer",{"_index":180,"name":{"188":{}},"parent":{}}],["setverifyhost",{"_index":182,"name":{"190":{}},"parent":{}}],["setwebsocketclosingtimeout",{"_index":184,"name":{"192":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":186,"name":{"194":{},"200":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":188,"name":{"196":{},"202":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":190,"name":{"198":{},"204":{}},"parent":{}}],["shopifyauth",{"_index":258,"name":{"297":{}},"parent":{"298":{}}}],["soundcloudauth",{"_index":259,"name":{"299":{}},"parent":{"300":{}}}],["statuscode",{"_index":249,"name":{"285":{}},"parent":{}}],["stripeauth",{"_index":260,"name":{"301":{}},"parent":{"302":{}}}],["tokentype",{"_index":198,"name":{"213":{}},"parent":{}}],["twitterauth",{"_index":261,"name":{"303":{}},"parent":{"304":{}}}],["userinfo",{"_index":204,"name":{"219":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/auth-oauth2/classes/oauth2clientoptions.html b/docs/.vuepress/public/@vertx/auth-oauth2/classes/oauth2clientoptions.html index 4b640c19f..d912c76f4 100644 --- a/docs/.vuepress/public/@vertx/auth-oauth2/classes/oauth2clientoptions.html +++ b/docs/.vuepress/public/@vertx/auth-oauth2/classes/oauth2clientoptions.html @@ -168,6 +168,7 @@

Methods

  • getUserAgent
  • getUserInfoParameters
  • getUserInfoPath
  • +
  • getWebSocketClosingTimeout
  • getWebSocketCompressionAllowClientNoContext
  • getWebSocketCompressionLevel
  • getWebSocketCompressionRequestServerNoContext
  • @@ -282,6 +283,7 @@

    Methods

  • setUserInfoPath
  • setValidateIssuer
  • setVerifyHost
  • +
  • setWebSocketClosingTimeout
  • setWebSocketCompressionAllowClientNoContext
  • setWebSocketCompressionLevel
  • setWebSocketCompressionRequestServerNoContext
  • @@ -1752,6 +1754,23 @@

    Returns string +
    + +

    getWebSocketClosingTimeout

    +
      +
    • getWebSocketClosingTimeout(): number
    • +
    +
      +
    • + +

      Returns number

      +
    • +
    +

    getWebSocketCompressionAllowClientNoContext

    @@ -1762,7 +1781,7 @@

    getWebSocketCompressionAllowClientNoContext

    Returns boolean

    @@ -1779,7 +1798,7 @@

    getWebSocketCompressionLevel

  • Returns number

    @@ -1796,7 +1815,7 @@

    getWebSocketCompressionRequestServerNoContext<
  • Returns boolean

    @@ -1813,7 +1832,7 @@

    getWebsocketCompressionAllowClientNoContext

  • Returns boolean

    @@ -1830,7 +1849,7 @@

    getWebsocketCompressionLevel

  • Returns number

    @@ -1847,7 +1866,7 @@

    getWebsocketCompressionRequestServerNoContext

  • Returns boolean

    @@ -4323,6 +4342,29 @@

    Returns + +

    setWebSocketClosingTimeout

    + +
      +
    • + +

      Parameters

      +
        +
      • +
        webSocketClosingTimeout: number
        +
      • +
      +

      Returns OAuth2ClientOptions

      +
    • +
    +
  • setWebSocketCompressionAllowClientNoContext

    @@ -4333,7 +4375,7 @@

    setWebSocketCompressionAllowClientNoContext

    Parameters

    @@ -4356,7 +4398,7 @@

    setWebSocketCompressionLevel

  • Parameters

    @@ -4379,7 +4421,7 @@

    setWebSocketCompressionRequestServerNoContext<
  • Parameters

    @@ -4402,7 +4444,7 @@

    setWebsocketCompressionAllowClientNoContext

  • Parameters

    @@ -4425,7 +4467,7 @@

    setWebsocketCompressionLevel

  • Parameters

    @@ -4448,7 +4490,7 @@

    setWebsocketCompressionRequestServerNoContext

  • Parameters

    @@ -4769,6 +4811,9 @@

    Returns getUserInfoPath

  • +
  • + getWebSocketClosingTimeout +
  • getWebSocketCompressionAllowClientNoContext
  • @@ -5111,6 +5156,9 @@

    Returns setVerifyHost

  • +
  • + setWebSocketClosingTimeout +
  • setWebSocketCompressionAllowClientNoContext
  • diff --git a/docs/.vuepress/public/@vertx/auth-oauth2/index.html b/docs/.vuepress/public/@vertx/auth-oauth2/index.html index 4a66d5b4d..8803cd2b4 100644 --- a/docs/.vuepress/public/@vertx/auth-oauth2/index.html +++ b/docs/.vuepress/public/@vertx/auth-oauth2/index.html @@ -63,7 +63,8 @@

    @vertx/auth-oauth2

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/auth-shiro/index.html b/docs/.vuepress/public/@vertx/auth-shiro/index.html index 47af42742..1b9403175 100644 --- a/docs/.vuepress/public/@vertx/auth-shiro/index.html +++ b/docs/.vuepress/public/@vertx/auth-shiro/index.html @@ -63,7 +63,8 @@

    @vertx/auth-shiro

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/bridge-common/index.html b/docs/.vuepress/public/@vertx/bridge-common/index.html index 4bb6d037a..4831c9617 100644 --- a/docs/.vuepress/public/@vertx/bridge-common/index.html +++ b/docs/.vuepress/public/@vertx/bridge-common/index.html @@ -63,7 +63,8 @@

    @vertx/bridge-common

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/cassandra-client/index.html b/docs/.vuepress/public/@vertx/cassandra-client/index.html index ce7b1a416..e5aff634a 100644 --- a/docs/.vuepress/public/@vertx/cassandra-client/index.html +++ b/docs/.vuepress/public/@vertx/cassandra-client/index.html @@ -63,7 +63,8 @@

    @vertx/cassandra-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/circuit-breaker/index.html b/docs/.vuepress/public/@vertx/circuit-breaker/index.html index 08393e736..9755aa60c 100644 --- a/docs/.vuepress/public/@vertx/circuit-breaker/index.html +++ b/docs/.vuepress/public/@vertx/circuit-breaker/index.html @@ -63,7 +63,8 @@

    @vertx/circuit-breaker

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/config-vault/index.html b/docs/.vuepress/public/@vertx/config-vault/index.html index bf708a0d1..4536bd5bc 100644 --- a/docs/.vuepress/public/@vertx/config-vault/index.html +++ b/docs/.vuepress/public/@vertx/config-vault/index.html @@ -63,7 +63,8 @@

    @vertx/config-vault

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/config/index.html b/docs/.vuepress/public/@vertx/config/index.html index d2740cbef..0e9058da2 100644 --- a/docs/.vuepress/public/@vertx/config/index.html +++ b/docs/.vuepress/public/@vertx/config/index.html @@ -63,7 +63,8 @@

    @vertx/config

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/consul-client/assets/js/search.json b/docs/.vuepress/public/@vertx/consul-client/assets/js/search.json index a3c0ed8e9..68d5c639e 100644 --- a/docs/.vuepress/public/@vertx/consul-client/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/consul-client/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"128":"Class","512":"Constructor","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"AclToken","url":"classes/acltoken.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/acltoken.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"AclToken"},{"id":2,"kind":2048,"name":"getId","url":"classes/acltoken.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":3,"kind":2048,"name":"setId","url":"classes/acltoken.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":4,"kind":2048,"name":"getName","url":"classes/acltoken.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":5,"kind":2048,"name":"setName","url":"classes/acltoken.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":6,"kind":2048,"name":"getRules","url":"classes/acltoken.html#getrules","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":7,"kind":2048,"name":"setRules","url":"classes/acltoken.html#setrules","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":8,"kind":2048,"name":"getType","url":"classes/acltoken.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":9,"kind":2048,"name":"setType","url":"classes/acltoken.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":10,"kind":128,"name":"BlockingQueryOptions","url":"classes/blockingqueryoptions.html","classes":"tsd-kind-class"},{"id":11,"kind":512,"name":"constructor","url":"classes/blockingqueryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":12,"kind":2048,"name":"getIndex","url":"classes/blockingqueryoptions.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":13,"kind":2048,"name":"setIndex","url":"classes/blockingqueryoptions.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":14,"kind":2048,"name":"getWait","url":"classes/blockingqueryoptions.html#getwait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":15,"kind":2048,"name":"setWait","url":"classes/blockingqueryoptions.html#setwait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":16,"kind":128,"name":"Check","url":"classes/check.html","classes":"tsd-kind-class"},{"id":17,"kind":512,"name":"constructor","url":"classes/check.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Check"},{"id":18,"kind":2048,"name":"getId","url":"classes/check.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":19,"kind":2048,"name":"setId","url":"classes/check.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":20,"kind":2048,"name":"getName","url":"classes/check.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":21,"kind":2048,"name":"setName","url":"classes/check.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":22,"kind":2048,"name":"getNodeName","url":"classes/check.html#getnodename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":23,"kind":2048,"name":"setNodeName","url":"classes/check.html#setnodename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":24,"kind":2048,"name":"getNotes","url":"classes/check.html#getnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":25,"kind":2048,"name":"setNotes","url":"classes/check.html#setnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":26,"kind":2048,"name":"getOutput","url":"classes/check.html#getoutput","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":27,"kind":2048,"name":"setOutput","url":"classes/check.html#setoutput","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":28,"kind":2048,"name":"getServiceId","url":"classes/check.html#getserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":29,"kind":2048,"name":"setServiceId","url":"classes/check.html#setserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":30,"kind":2048,"name":"getServiceName","url":"classes/check.html#getservicename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":31,"kind":2048,"name":"setServiceName","url":"classes/check.html#setservicename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":32,"kind":2048,"name":"getStatus","url":"classes/check.html#getstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":33,"kind":2048,"name":"setStatus","url":"classes/check.html#setstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":34,"kind":128,"name":"CheckList","url":"classes/checklist.html","classes":"tsd-kind-class"},{"id":35,"kind":512,"name":"constructor","url":"classes/checklist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CheckList"},{"id":36,"kind":2048,"name":"getIndex","url":"classes/checklist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":37,"kind":2048,"name":"setIndex","url":"classes/checklist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":38,"kind":2048,"name":"getList","url":"classes/checklist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":39,"kind":2048,"name":"setList","url":"classes/checklist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":40,"kind":128,"name":"CheckOptions","url":"classes/checkoptions.html","classes":"tsd-kind-class"},{"id":41,"kind":512,"name":"constructor","url":"classes/checkoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CheckOptions"},{"id":42,"kind":2048,"name":"getDeregisterAfter","url":"classes/checkoptions.html#getderegisterafter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":43,"kind":2048,"name":"setDeregisterAfter","url":"classes/checkoptions.html#setderegisterafter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":44,"kind":2048,"name":"getGrpc","url":"classes/checkoptions.html#getgrpc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":45,"kind":2048,"name":"setGrpc","url":"classes/checkoptions.html#setgrpc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":46,"kind":2048,"name":"isGrpcTls","url":"classes/checkoptions.html#isgrpctls","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":47,"kind":2048,"name":"setGrpcTls","url":"classes/checkoptions.html#setgrpctls","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":48,"kind":2048,"name":"getHttp","url":"classes/checkoptions.html#gethttp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":49,"kind":2048,"name":"setHttp","url":"classes/checkoptions.html#sethttp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":50,"kind":2048,"name":"getId","url":"classes/checkoptions.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":51,"kind":2048,"name":"setId","url":"classes/checkoptions.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":52,"kind":2048,"name":"getInterval","url":"classes/checkoptions.html#getinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":53,"kind":2048,"name":"setInterval","url":"classes/checkoptions.html#setinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":54,"kind":2048,"name":"getName","url":"classes/checkoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":55,"kind":2048,"name":"setName","url":"classes/checkoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":56,"kind":2048,"name":"getNotes","url":"classes/checkoptions.html#getnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":57,"kind":2048,"name":"setNotes","url":"classes/checkoptions.html#setnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":58,"kind":2048,"name":"getScriptArgs","url":"classes/checkoptions.html#getscriptargs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":59,"kind":2048,"name":"setScriptArgs","url":"classes/checkoptions.html#setscriptargs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":60,"kind":2048,"name":"getServiceId","url":"classes/checkoptions.html#getserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":61,"kind":2048,"name":"setServiceId","url":"classes/checkoptions.html#setserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":62,"kind":2048,"name":"getStatus","url":"classes/checkoptions.html#getstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":63,"kind":2048,"name":"setStatus","url":"classes/checkoptions.html#setstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":64,"kind":2048,"name":"getTcp","url":"classes/checkoptions.html#gettcp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":65,"kind":2048,"name":"setTcp","url":"classes/checkoptions.html#settcp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":66,"kind":2048,"name":"isTlsSkipVerify","url":"classes/checkoptions.html#istlsskipverify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":67,"kind":2048,"name":"setTlsSkipVerify","url":"classes/checkoptions.html#settlsskipverify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":68,"kind":2048,"name":"getTtl","url":"classes/checkoptions.html#getttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":69,"kind":2048,"name":"setTtl","url":"classes/checkoptions.html#setttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":70,"kind":128,"name":"CheckQueryOptions","url":"classes/checkqueryoptions.html","classes":"tsd-kind-class"},{"id":71,"kind":512,"name":"constructor","url":"classes/checkqueryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":72,"kind":2048,"name":"getBlockingOptions","url":"classes/checkqueryoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":73,"kind":2048,"name":"setBlockingOptions","url":"classes/checkqueryoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":74,"kind":2048,"name":"getNear","url":"classes/checkqueryoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":75,"kind":2048,"name":"setNear","url":"classes/checkqueryoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":76,"kind":128,"name":"ConsulClientOptions","url":"classes/consulclientoptions.html","classes":"tsd-kind-class"},{"id":77,"kind":512,"name":"constructor","url":"classes/consulclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":78,"kind":2048,"name":"getAclToken","url":"classes/consulclientoptions.html#getacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":79,"kind":2048,"name":"setAclToken","url":"classes/consulclientoptions.html#setacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":80,"kind":2048,"name":"getAlpnVersions","url":"classes/consulclientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":81,"kind":2048,"name":"setAlpnVersions","url":"classes/consulclientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":82,"kind":2048,"name":"getConnectTimeout","url":"classes/consulclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":83,"kind":2048,"name":"setConnectTimeout","url":"classes/consulclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":84,"kind":2048,"name":"getCrlPaths","url":"classes/consulclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":85,"kind":2048,"name":"addCrlPath","url":"classes/consulclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":86,"kind":2048,"name":"getCrlValues","url":"classes/consulclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":87,"kind":2048,"name":"addCrlValue","url":"classes/consulclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":88,"kind":2048,"name":"getDc","url":"classes/consulclientoptions.html#getdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":89,"kind":2048,"name":"setDc","url":"classes/consulclientoptions.html#setdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":90,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/consulclientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":91,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/consulclientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":92,"kind":2048,"name":"getDefaultHost","url":"classes/consulclientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":93,"kind":2048,"name":"setDefaultHost","url":"classes/consulclientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":94,"kind":2048,"name":"getDefaultPort","url":"classes/consulclientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":95,"kind":2048,"name":"setDefaultPort","url":"classes/consulclientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":96,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/consulclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":97,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/consulclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":98,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/consulclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":99,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/consulclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":100,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/consulclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":101,"kind":2048,"name":"isFollowRedirects","url":"classes/consulclientoptions.html#isfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":102,"kind":2048,"name":"setFollowRedirects","url":"classes/consulclientoptions.html#setfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":103,"kind":2048,"name":"isForceSni","url":"classes/consulclientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":104,"kind":2048,"name":"setForceSni","url":"classes/consulclientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":105,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/consulclientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":106,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/consulclientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":107,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/consulclientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":108,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/consulclientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":109,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/consulclientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":110,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/consulclientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":111,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/consulclientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":112,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/consulclientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":113,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/consulclientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":114,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/consulclientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":115,"kind":2048,"name":"getIdleTimeout","url":"classes/consulclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":116,"kind":2048,"name":"setIdleTimeout","url":"classes/consulclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":117,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/consulclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":118,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/consulclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":119,"kind":2048,"name":"getInitialSettings","url":"classes/consulclientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":120,"kind":2048,"name":"setInitialSettings","url":"classes/consulclientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":121,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/consulclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":122,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/consulclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":123,"kind":2048,"name":"isKeepAlive","url":"classes/consulclientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":124,"kind":2048,"name":"setKeepAlive","url":"classes/consulclientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":125,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/consulclientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":126,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/consulclientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":127,"kind":2048,"name":"getKeyStoreOptions","url":"classes/consulclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":128,"kind":2048,"name":"setKeyStoreOptions","url":"classes/consulclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":129,"kind":2048,"name":"getLocalAddress","url":"classes/consulclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":130,"kind":2048,"name":"setLocalAddress","url":"classes/consulclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":131,"kind":2048,"name":"getLogActivity","url":"classes/consulclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":132,"kind":2048,"name":"setLogActivity","url":"classes/consulclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":133,"kind":2048,"name":"getMaxChunkSize","url":"classes/consulclientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":134,"kind":2048,"name":"setMaxChunkSize","url":"classes/consulclientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":135,"kind":2048,"name":"getMaxHeaderSize","url":"classes/consulclientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":136,"kind":2048,"name":"setMaxHeaderSize","url":"classes/consulclientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":137,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/consulclientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":138,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/consulclientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":139,"kind":2048,"name":"getMaxPoolSize","url":"classes/consulclientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":140,"kind":2048,"name":"setMaxPoolSize","url":"classes/consulclientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":141,"kind":2048,"name":"getMaxRedirects","url":"classes/consulclientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":142,"kind":2048,"name":"setMaxRedirects","url":"classes/consulclientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":143,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/consulclientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":144,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/consulclientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":145,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/consulclientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":146,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/consulclientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":147,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/consulclientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":148,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/consulclientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":149,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/consulclientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":150,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/consulclientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":151,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/consulclientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":152,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/consulclientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":153,"kind":2048,"name":"getMetricsName","url":"classes/consulclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":154,"kind":2048,"name":"setMetricsName","url":"classes/consulclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":155,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/consulclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":156,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/consulclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":157,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/consulclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":158,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/consulclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":159,"kind":2048,"name":"getPemTrustOptions","url":"classes/consulclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":160,"kind":2048,"name":"setPemTrustOptions","url":"classes/consulclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":161,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/consulclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":162,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/consulclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":163,"kind":2048,"name":"getPfxTrustOptions","url":"classes/consulclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":164,"kind":2048,"name":"setPfxTrustOptions","url":"classes/consulclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":165,"kind":2048,"name":"isPipelining","url":"classes/consulclientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":166,"kind":2048,"name":"setPipelining","url":"classes/consulclientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":167,"kind":2048,"name":"getPipeliningLimit","url":"classes/consulclientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":168,"kind":2048,"name":"setPipeliningLimit","url":"classes/consulclientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":169,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/consulclientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":170,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/consulclientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":171,"kind":2048,"name":"getProtocolVersion","url":"classes/consulclientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":172,"kind":2048,"name":"setProtocolVersion","url":"classes/consulclientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":173,"kind":2048,"name":"getProxyOptions","url":"classes/consulclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":174,"kind":2048,"name":"setProxyOptions","url":"classes/consulclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":175,"kind":2048,"name":"getReceiveBufferSize","url":"classes/consulclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":176,"kind":2048,"name":"setReceiveBufferSize","url":"classes/consulclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":177,"kind":2048,"name":"isReuseAddress","url":"classes/consulclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":178,"kind":2048,"name":"setReuseAddress","url":"classes/consulclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":179,"kind":2048,"name":"isReusePort","url":"classes/consulclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":180,"kind":2048,"name":"setReusePort","url":"classes/consulclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":181,"kind":2048,"name":"getSendBufferSize","url":"classes/consulclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":182,"kind":2048,"name":"setSendBufferSize","url":"classes/consulclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":183,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/consulclientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":184,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/consulclientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":185,"kind":2048,"name":"getSoLinger","url":"classes/consulclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":186,"kind":2048,"name":"setSoLinger","url":"classes/consulclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":187,"kind":2048,"name":"isSsl","url":"classes/consulclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":188,"kind":2048,"name":"setSsl","url":"classes/consulclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":189,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/consulclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":190,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/consulclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":191,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/consulclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":192,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/consulclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":193,"kind":2048,"name":"isTcpCork","url":"classes/consulclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":194,"kind":2048,"name":"setTcpCork","url":"classes/consulclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":195,"kind":2048,"name":"isTcpFastOpen","url":"classes/consulclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":196,"kind":2048,"name":"setTcpFastOpen","url":"classes/consulclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":197,"kind":2048,"name":"isTcpKeepAlive","url":"classes/consulclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":198,"kind":2048,"name":"setTcpKeepAlive","url":"classes/consulclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":199,"kind":2048,"name":"isTcpNoDelay","url":"classes/consulclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":200,"kind":2048,"name":"setTcpNoDelay","url":"classes/consulclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":201,"kind":2048,"name":"isTcpQuickAck","url":"classes/consulclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":202,"kind":2048,"name":"setTcpQuickAck","url":"classes/consulclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":203,"kind":2048,"name":"getTimeout","url":"classes/consulclientoptions.html#gettimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":204,"kind":2048,"name":"setTimeout","url":"classes/consulclientoptions.html#settimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":205,"kind":2048,"name":"getTrafficClass","url":"classes/consulclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":206,"kind":2048,"name":"setTrafficClass","url":"classes/consulclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":207,"kind":2048,"name":"isTrustAll","url":"classes/consulclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":208,"kind":2048,"name":"setTrustAll","url":"classes/consulclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":209,"kind":2048,"name":"getTrustStoreOptions","url":"classes/consulclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":210,"kind":2048,"name":"setTrustStoreOptions","url":"classes/consulclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":211,"kind":2048,"name":"isTryUseCompression","url":"classes/consulclientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":212,"kind":2048,"name":"setTryUseCompression","url":"classes/consulclientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":213,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/consulclientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":214,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/consulclientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":215,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/consulclientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":216,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/consulclientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":217,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/consulclientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":218,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/consulclientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":219,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/consulclientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":220,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/consulclientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":221,"kind":2048,"name":"isUseAlpn","url":"classes/consulclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":222,"kind":2048,"name":"setUseAlpn","url":"classes/consulclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":223,"kind":2048,"name":"isUsePooledBuffers","url":"classes/consulclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":224,"kind":2048,"name":"setUsePooledBuffers","url":"classes/consulclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":225,"kind":2048,"name":"getUserAgent","url":"classes/consulclientoptions.html#getuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":226,"kind":2048,"name":"setUserAgent","url":"classes/consulclientoptions.html#setuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":227,"kind":2048,"name":"isUserAgentEnabled","url":"classes/consulclientoptions.html#isuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":228,"kind":2048,"name":"setUserAgentEnabled","url":"classes/consulclientoptions.html#setuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":229,"kind":2048,"name":"isVerifyHost","url":"classes/consulclientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":230,"kind":2048,"name":"setVerifyHost","url":"classes/consulclientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":231,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":232,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":233,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/consulclientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":234,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/consulclientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":235,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":236,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":237,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":238,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":239,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/consulclientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":240,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/consulclientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":241,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":242,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":243,"kind":128,"name":"Coordinate","url":"classes/coordinate.html","classes":"tsd-kind-class"},{"id":244,"kind":512,"name":"constructor","url":"classes/coordinate.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Coordinate"},{"id":245,"kind":2048,"name":"getAdj","url":"classes/coordinate.html#getadj","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":246,"kind":2048,"name":"setAdj","url":"classes/coordinate.html#setadj","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":247,"kind":2048,"name":"getErr","url":"classes/coordinate.html#geterr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":248,"kind":2048,"name":"setErr","url":"classes/coordinate.html#seterr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":249,"kind":2048,"name":"getHeight","url":"classes/coordinate.html#getheight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":250,"kind":2048,"name":"setHeight","url":"classes/coordinate.html#setheight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":251,"kind":2048,"name":"getNode","url":"classes/coordinate.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":252,"kind":2048,"name":"setNode","url":"classes/coordinate.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":253,"kind":2048,"name":"getVec","url":"classes/coordinate.html#getvec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":254,"kind":2048,"name":"setVec","url":"classes/coordinate.html#setvec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":255,"kind":128,"name":"CoordinateList","url":"classes/coordinatelist.html","classes":"tsd-kind-class"},{"id":256,"kind":512,"name":"constructor","url":"classes/coordinatelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CoordinateList"},{"id":257,"kind":2048,"name":"getIndex","url":"classes/coordinatelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":258,"kind":2048,"name":"setIndex","url":"classes/coordinatelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":259,"kind":2048,"name":"getList","url":"classes/coordinatelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":260,"kind":2048,"name":"setList","url":"classes/coordinatelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":261,"kind":128,"name":"DcCoordinates","url":"classes/dccoordinates.html","classes":"tsd-kind-class"},{"id":262,"kind":512,"name":"constructor","url":"classes/dccoordinates.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DcCoordinates"},{"id":263,"kind":2048,"name":"getDatacenter","url":"classes/dccoordinates.html#getdatacenter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":264,"kind":2048,"name":"setDatacenter","url":"classes/dccoordinates.html#setdatacenter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":265,"kind":2048,"name":"getServers","url":"classes/dccoordinates.html#getservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":266,"kind":2048,"name":"setServers","url":"classes/dccoordinates.html#setservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":267,"kind":128,"name":"Event","url":"classes/event.html","classes":"tsd-kind-class"},{"id":268,"kind":512,"name":"constructor","url":"classes/event.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Event"},{"id":269,"kind":2048,"name":"getId","url":"classes/event.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":270,"kind":2048,"name":"setId","url":"classes/event.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":271,"kind":2048,"name":"getLTime","url":"classes/event.html#getltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":272,"kind":2048,"name":"setLTime","url":"classes/event.html#setltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":273,"kind":2048,"name":"getName","url":"classes/event.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":274,"kind":2048,"name":"setName","url":"classes/event.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":275,"kind":2048,"name":"getNode","url":"classes/event.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":276,"kind":2048,"name":"setNode","url":"classes/event.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":277,"kind":2048,"name":"getPayload","url":"classes/event.html#getpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":278,"kind":2048,"name":"setPayload","url":"classes/event.html#setpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":279,"kind":2048,"name":"getService","url":"classes/event.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":280,"kind":2048,"name":"setService","url":"classes/event.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":281,"kind":2048,"name":"getTag","url":"classes/event.html#gettag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":282,"kind":2048,"name":"setTag","url":"classes/event.html#settag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":283,"kind":2048,"name":"getVersion","url":"classes/event.html#getversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":284,"kind":2048,"name":"setVersion","url":"classes/event.html#setversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":285,"kind":128,"name":"EventList","url":"classes/eventlist.html","classes":"tsd-kind-class"},{"id":286,"kind":512,"name":"constructor","url":"classes/eventlist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventList"},{"id":287,"kind":2048,"name":"getIndex","url":"classes/eventlist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":288,"kind":2048,"name":"setIndex","url":"classes/eventlist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":289,"kind":2048,"name":"getList","url":"classes/eventlist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":290,"kind":2048,"name":"setList","url":"classes/eventlist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":291,"kind":128,"name":"EventListOptions","url":"classes/eventlistoptions.html","classes":"tsd-kind-class"},{"id":292,"kind":512,"name":"constructor","url":"classes/eventlistoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventListOptions"},{"id":293,"kind":2048,"name":"getBlockingOptions","url":"classes/eventlistoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":294,"kind":2048,"name":"setBlockingOptions","url":"classes/eventlistoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":295,"kind":2048,"name":"getName","url":"classes/eventlistoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":296,"kind":2048,"name":"setName","url":"classes/eventlistoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":297,"kind":128,"name":"EventOptions","url":"classes/eventoptions.html","classes":"tsd-kind-class"},{"id":298,"kind":512,"name":"constructor","url":"classes/eventoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventOptions"},{"id":299,"kind":2048,"name":"getNode","url":"classes/eventoptions.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":300,"kind":2048,"name":"setNode","url":"classes/eventoptions.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":301,"kind":2048,"name":"getPayload","url":"classes/eventoptions.html#getpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":302,"kind":2048,"name":"setPayload","url":"classes/eventoptions.html#setpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":303,"kind":2048,"name":"getService","url":"classes/eventoptions.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":304,"kind":2048,"name":"setService","url":"classes/eventoptions.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":305,"kind":2048,"name":"getTag","url":"classes/eventoptions.html#gettag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":306,"kind":2048,"name":"setTag","url":"classes/eventoptions.html#settag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":307,"kind":128,"name":"KeyValue","url":"classes/keyvalue.html","classes":"tsd-kind-class"},{"id":308,"kind":512,"name":"constructor","url":"classes/keyvalue.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyValue"},{"id":309,"kind":2048,"name":"getCreateIndex","url":"classes/keyvalue.html#getcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":310,"kind":2048,"name":"setCreateIndex","url":"classes/keyvalue.html#setcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":311,"kind":2048,"name":"getFlags","url":"classes/keyvalue.html#getflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":312,"kind":2048,"name":"setFlags","url":"classes/keyvalue.html#setflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":313,"kind":2048,"name":"getKey","url":"classes/keyvalue.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":314,"kind":2048,"name":"setKey","url":"classes/keyvalue.html#setkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":315,"kind":2048,"name":"getLockIndex","url":"classes/keyvalue.html#getlockindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":316,"kind":2048,"name":"setLockIndex","url":"classes/keyvalue.html#setlockindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":317,"kind":2048,"name":"getModifyIndex","url":"classes/keyvalue.html#getmodifyindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":318,"kind":2048,"name":"setModifyIndex","url":"classes/keyvalue.html#setmodifyindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":319,"kind":2048,"name":"getSession","url":"classes/keyvalue.html#getsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":320,"kind":2048,"name":"setSession","url":"classes/keyvalue.html#setsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":321,"kind":2048,"name":"getValue","url":"classes/keyvalue.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":322,"kind":2048,"name":"setValue","url":"classes/keyvalue.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":323,"kind":128,"name":"KeyValueList","url":"classes/keyvaluelist.html","classes":"tsd-kind-class"},{"id":324,"kind":512,"name":"constructor","url":"classes/keyvaluelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyValueList"},{"id":325,"kind":2048,"name":"getIndex","url":"classes/keyvaluelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":326,"kind":2048,"name":"setIndex","url":"classes/keyvaluelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":327,"kind":2048,"name":"getList","url":"classes/keyvaluelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":328,"kind":2048,"name":"setList","url":"classes/keyvaluelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":329,"kind":128,"name":"KeyValueOptions","url":"classes/keyvalueoptions.html","classes":"tsd-kind-class"},{"id":330,"kind":512,"name":"constructor","url":"classes/keyvalueoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":331,"kind":2048,"name":"getAcquireSession","url":"classes/keyvalueoptions.html#getacquiresession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":332,"kind":2048,"name":"setAcquireSession","url":"classes/keyvalueoptions.html#setacquiresession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":333,"kind":2048,"name":"getCasIndex","url":"classes/keyvalueoptions.html#getcasindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":334,"kind":2048,"name":"setCasIndex","url":"classes/keyvalueoptions.html#setcasindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":335,"kind":2048,"name":"getFlags","url":"classes/keyvalueoptions.html#getflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":336,"kind":2048,"name":"setFlags","url":"classes/keyvalueoptions.html#setflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":337,"kind":2048,"name":"getReleaseSession","url":"classes/keyvalueoptions.html#getreleasesession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":338,"kind":2048,"name":"setReleaseSession","url":"classes/keyvalueoptions.html#setreleasesession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":339,"kind":128,"name":"MaintenanceOptions","url":"classes/maintenanceoptions.html","classes":"tsd-kind-class"},{"id":340,"kind":512,"name":"constructor","url":"classes/maintenanceoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":341,"kind":2048,"name":"isEnable","url":"classes/maintenanceoptions.html#isenable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":342,"kind":2048,"name":"setEnable","url":"classes/maintenanceoptions.html#setenable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":343,"kind":2048,"name":"getId","url":"classes/maintenanceoptions.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":344,"kind":2048,"name":"setId","url":"classes/maintenanceoptions.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":345,"kind":2048,"name":"getReason","url":"classes/maintenanceoptions.html#getreason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":346,"kind":2048,"name":"setReason","url":"classes/maintenanceoptions.html#setreason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":347,"kind":128,"name":"Node","url":"classes/node.html","classes":"tsd-kind-class"},{"id":348,"kind":512,"name":"constructor","url":"classes/node.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Node"},{"id":349,"kind":2048,"name":"getAddress","url":"classes/node.html#getaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":350,"kind":2048,"name":"setAddress","url":"classes/node.html#setaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":351,"kind":2048,"name":"getLanAddress","url":"classes/node.html#getlanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":352,"kind":2048,"name":"setLanAddress","url":"classes/node.html#setlanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":353,"kind":2048,"name":"getName","url":"classes/node.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":354,"kind":2048,"name":"setName","url":"classes/node.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":355,"kind":2048,"name":"getWanAddress","url":"classes/node.html#getwanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":356,"kind":2048,"name":"setWanAddress","url":"classes/node.html#setwanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":357,"kind":128,"name":"NodeList","url":"classes/nodelist.html","classes":"tsd-kind-class"},{"id":358,"kind":512,"name":"constructor","url":"classes/nodelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NodeList"},{"id":359,"kind":2048,"name":"getIndex","url":"classes/nodelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":360,"kind":2048,"name":"setIndex","url":"classes/nodelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":361,"kind":2048,"name":"getList","url":"classes/nodelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":362,"kind":2048,"name":"setList","url":"classes/nodelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":363,"kind":128,"name":"NodeQueryOptions","url":"classes/nodequeryoptions.html","classes":"tsd-kind-class"},{"id":364,"kind":512,"name":"constructor","url":"classes/nodequeryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":365,"kind":2048,"name":"getBlockingOptions","url":"classes/nodequeryoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":366,"kind":2048,"name":"setBlockingOptions","url":"classes/nodequeryoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":367,"kind":2048,"name":"getNear","url":"classes/nodequeryoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":368,"kind":2048,"name":"setNear","url":"classes/nodequeryoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":369,"kind":128,"name":"PreparedQueryDefinition","url":"classes/preparedquerydefinition.html","classes":"tsd-kind-class"},{"id":370,"kind":512,"name":"constructor","url":"classes/preparedquerydefinition.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":371,"kind":2048,"name":"getDcs","url":"classes/preparedquerydefinition.html#getdcs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":372,"kind":2048,"name":"setDcs","url":"classes/preparedquerydefinition.html#setdcs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":373,"kind":2048,"name":"getDnsTtl","url":"classes/preparedquerydefinition.html#getdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":374,"kind":2048,"name":"setDnsTtl","url":"classes/preparedquerydefinition.html#setdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":375,"kind":2048,"name":"getId","url":"classes/preparedquerydefinition.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":376,"kind":2048,"name":"setId","url":"classes/preparedquerydefinition.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":377,"kind":2048,"name":"getMeta","url":"classes/preparedquerydefinition.html#getmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":378,"kind":2048,"name":"setMeta","url":"classes/preparedquerydefinition.html#setmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":379,"kind":2048,"name":"getName","url":"classes/preparedquerydefinition.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":380,"kind":2048,"name":"setName","url":"classes/preparedquerydefinition.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":381,"kind":2048,"name":"getNearestN","url":"classes/preparedquerydefinition.html#getnearestn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":382,"kind":2048,"name":"setNearestN","url":"classes/preparedquerydefinition.html#setnearestn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":383,"kind":2048,"name":"getPassing","url":"classes/preparedquerydefinition.html#getpassing","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":384,"kind":2048,"name":"setPassing","url":"classes/preparedquerydefinition.html#setpassing","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":385,"kind":2048,"name":"getService","url":"classes/preparedquerydefinition.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":386,"kind":2048,"name":"setService","url":"classes/preparedquerydefinition.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":387,"kind":2048,"name":"getSession","url":"classes/preparedquerydefinition.html#getsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":388,"kind":2048,"name":"setSession","url":"classes/preparedquerydefinition.html#setsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":389,"kind":2048,"name":"getTags","url":"classes/preparedquerydefinition.html#gettags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":390,"kind":2048,"name":"setTags","url":"classes/preparedquerydefinition.html#settags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":391,"kind":2048,"name":"getTemplateRegexp","url":"classes/preparedquerydefinition.html#gettemplateregexp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":392,"kind":2048,"name":"setTemplateRegexp","url":"classes/preparedquerydefinition.html#settemplateregexp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":393,"kind":2048,"name":"getTemplateType","url":"classes/preparedquerydefinition.html#gettemplatetype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":394,"kind":2048,"name":"setTemplateType","url":"classes/preparedquerydefinition.html#settemplatetype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":395,"kind":2048,"name":"getToken","url":"classes/preparedquerydefinition.html#gettoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":396,"kind":2048,"name":"setToken","url":"classes/preparedquerydefinition.html#settoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":397,"kind":128,"name":"PreparedQueryExecuteOptions","url":"classes/preparedqueryexecuteoptions.html","classes":"tsd-kind-class"},{"id":398,"kind":512,"name":"constructor","url":"classes/preparedqueryexecuteoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":399,"kind":2048,"name":"getLimit","url":"classes/preparedqueryexecuteoptions.html#getlimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":400,"kind":2048,"name":"setLimit","url":"classes/preparedqueryexecuteoptions.html#setlimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":401,"kind":2048,"name":"getNear","url":"classes/preparedqueryexecuteoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":402,"kind":2048,"name":"setNear","url":"classes/preparedqueryexecuteoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":403,"kind":128,"name":"PreparedQueryExecuteResponse","url":"classes/preparedqueryexecuteresponse.html","classes":"tsd-kind-class"},{"id":404,"kind":512,"name":"constructor","url":"classes/preparedqueryexecuteresponse.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":405,"kind":2048,"name":"getDc","url":"classes/preparedqueryexecuteresponse.html#getdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":406,"kind":2048,"name":"setDc","url":"classes/preparedqueryexecuteresponse.html#setdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":407,"kind":2048,"name":"getDnsTtl","url":"classes/preparedqueryexecuteresponse.html#getdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":408,"kind":2048,"name":"setDnsTtl","url":"classes/preparedqueryexecuteresponse.html#setdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":409,"kind":2048,"name":"getFailovers","url":"classes/preparedqueryexecuteresponse.html#getfailovers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":410,"kind":2048,"name":"setFailovers","url":"classes/preparedqueryexecuteresponse.html#setfailovers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":411,"kind":2048,"name":"getNodes","url":"classes/preparedqueryexecuteresponse.html#getnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":412,"kind":2048,"name":"setNodes","url":"classes/preparedqueryexecuteresponse.html#setnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":413,"kind":2048,"name":"getService","url":"classes/preparedqueryexecuteresponse.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":414,"kind":2048,"name":"setService","url":"classes/preparedqueryexecuteresponse.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":415,"kind":128,"name":"Service","url":"classes/service.html","classes":"tsd-kind-class"},{"id":416,"kind":512,"name":"constructor","url":"classes/service.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Service"},{"id":417,"kind":2048,"name":"getAddress","url":"classes/service.html#getaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":418,"kind":2048,"name":"setAddress","url":"classes/service.html#setaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":419,"kind":2048,"name":"getId","url":"classes/service.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":420,"kind":2048,"name":"setId","url":"classes/service.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":421,"kind":2048,"name":"getMeta","url":"classes/service.html#getmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":422,"kind":2048,"name":"setMeta","url":"classes/service.html#setmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":423,"kind":2048,"name":"getName","url":"classes/service.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":424,"kind":2048,"name":"setName","url":"classes/service.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":425,"kind":2048,"name":"getNode","url":"classes/service.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":426,"kind":2048,"name":"setNode","url":"classes/service.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":427,"kind":2048,"name":"getNodeAddress","url":"classes/service.html#getnodeaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":428,"kind":2048,"name":"setNodeAddress","url":"classes/service.html#setnodeaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":429,"kind":2048,"name":"getPort","url":"classes/service.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":430,"kind":2048,"name":"setPort","url":"classes/service.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":431,"kind":2048,"name":"getTags","url":"classes/service.html#gettags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":432,"kind":2048,"name":"setTags","url":"classes/service.html#settags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":433,"kind":128,"name":"ServiceEntry","url":"classes/serviceentry.html","classes":"tsd-kind-class"},{"id":434,"kind":512,"name":"constructor","url":"classes/serviceentry.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceEntry"},{"id":435,"kind":2048,"name":"getChecks","url":"classes/serviceentry.html#getchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":436,"kind":2048,"name":"setChecks","url":"classes/serviceentry.html#setchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":437,"kind":2048,"name":"getNode","url":"classes/serviceentry.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":438,"kind":2048,"name":"setNode","url":"classes/serviceentry.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":439,"kind":2048,"name":"getService","url":"classes/serviceentry.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":440,"kind":2048,"name":"setService","url":"classes/serviceentry.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":441,"kind":128,"name":"ServiceEntryList","url":"classes/serviceentrylist.html","classes":"tsd-kind-class"},{"id":442,"kind":512,"name":"constructor","url":"classes/serviceentrylist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":443,"kind":2048,"name":"getIndex","url":"classes/serviceentrylist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":444,"kind":2048,"name":"setIndex","url":"classes/serviceentrylist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":445,"kind":2048,"name":"getList","url":"classes/serviceentrylist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":446,"kind":2048,"name":"setList","url":"classes/serviceentrylist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":447,"kind":128,"name":"ServiceList","url":"classes/servicelist.html","classes":"tsd-kind-class"},{"id":448,"kind":512,"name":"constructor","url":"classes/servicelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceList"},{"id":449,"kind":2048,"name":"getIndex","url":"classes/servicelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":450,"kind":2048,"name":"setIndex","url":"classes/servicelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":451,"kind":2048,"name":"getList","url":"classes/servicelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":452,"kind":2048,"name":"setList","url":"classes/servicelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":453,"kind":128,"name":"ServiceOptions","url":"classes/serviceoptions.html","classes":"tsd-kind-class"},{"id":454,"kind":512,"name":"constructor","url":"classes/serviceoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceOptions"},{"id":455,"kind":2048,"name":"getAddress","url":"classes/serviceoptions.html#getaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":456,"kind":2048,"name":"setAddress","url":"classes/serviceoptions.html#setaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":457,"kind":2048,"name":"getCheckListOptions","url":"classes/serviceoptions.html#getchecklistoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":458,"kind":2048,"name":"setCheckListOptions","url":"classes/serviceoptions.html#setchecklistoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":459,"kind":2048,"name":"getCheckOptions","url":"classes/serviceoptions.html#getcheckoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":460,"kind":2048,"name":"setCheckOptions","url":"classes/serviceoptions.html#setcheckoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":461,"kind":2048,"name":"getId","url":"classes/serviceoptions.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":462,"kind":2048,"name":"setId","url":"classes/serviceoptions.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":463,"kind":2048,"name":"getMeta","url":"classes/serviceoptions.html#getmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":464,"kind":2048,"name":"setMeta","url":"classes/serviceoptions.html#setmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":465,"kind":2048,"name":"getName","url":"classes/serviceoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":466,"kind":2048,"name":"setName","url":"classes/serviceoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":467,"kind":2048,"name":"getPort","url":"classes/serviceoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":468,"kind":2048,"name":"setPort","url":"classes/serviceoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":469,"kind":2048,"name":"getTags","url":"classes/serviceoptions.html#gettags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":470,"kind":2048,"name":"setTags","url":"classes/serviceoptions.html#settags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":471,"kind":128,"name":"ServiceQueryOptions","url":"classes/servicequeryoptions.html","classes":"tsd-kind-class"},{"id":472,"kind":512,"name":"constructor","url":"classes/servicequeryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":473,"kind":2048,"name":"getBlockingOptions","url":"classes/servicequeryoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":474,"kind":2048,"name":"setBlockingOptions","url":"classes/servicequeryoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":475,"kind":2048,"name":"getNear","url":"classes/servicequeryoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":476,"kind":2048,"name":"setNear","url":"classes/servicequeryoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":477,"kind":2048,"name":"getTag","url":"classes/servicequeryoptions.html#gettag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":478,"kind":2048,"name":"setTag","url":"classes/servicequeryoptions.html#settag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":479,"kind":128,"name":"Session","url":"classes/session.html","classes":"tsd-kind-class"},{"id":480,"kind":512,"name":"constructor","url":"classes/session.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Session"},{"id":481,"kind":2048,"name":"getChecks","url":"classes/session.html#getchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":482,"kind":2048,"name":"setChecks","url":"classes/session.html#setchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":483,"kind":2048,"name":"getCreateIndex","url":"classes/session.html#getcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":484,"kind":2048,"name":"setCreateIndex","url":"classes/session.html#setcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":485,"kind":2048,"name":"getId","url":"classes/session.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":486,"kind":2048,"name":"setId","url":"classes/session.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":487,"kind":2048,"name":"getIndex","url":"classes/session.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":488,"kind":2048,"name":"setIndex","url":"classes/session.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":489,"kind":2048,"name":"getLockDelay","url":"classes/session.html#getlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":490,"kind":2048,"name":"setLockDelay","url":"classes/session.html#setlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":491,"kind":2048,"name":"getNode","url":"classes/session.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":492,"kind":2048,"name":"setNode","url":"classes/session.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":493,"kind":128,"name":"SessionList","url":"classes/sessionlist.html","classes":"tsd-kind-class"},{"id":494,"kind":512,"name":"constructor","url":"classes/sessionlist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SessionList"},{"id":495,"kind":2048,"name":"getIndex","url":"classes/sessionlist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":496,"kind":2048,"name":"setIndex","url":"classes/sessionlist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":497,"kind":2048,"name":"getList","url":"classes/sessionlist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":498,"kind":2048,"name":"setList","url":"classes/sessionlist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":499,"kind":128,"name":"SessionOptions","url":"classes/sessionoptions.html","classes":"tsd-kind-class"},{"id":500,"kind":512,"name":"constructor","url":"classes/sessionoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SessionOptions"},{"id":501,"kind":2048,"name":"getBehavior","url":"classes/sessionoptions.html#getbehavior","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":502,"kind":2048,"name":"setBehavior","url":"classes/sessionoptions.html#setbehavior","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":503,"kind":2048,"name":"getChecks","url":"classes/sessionoptions.html#getchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":504,"kind":2048,"name":"setChecks","url":"classes/sessionoptions.html#setchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":505,"kind":2048,"name":"getLockDelay","url":"classes/sessionoptions.html#getlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":506,"kind":2048,"name":"setLockDelay","url":"classes/sessionoptions.html#setlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":507,"kind":2048,"name":"getName","url":"classes/sessionoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":508,"kind":2048,"name":"setName","url":"classes/sessionoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":509,"kind":2048,"name":"getNode","url":"classes/sessionoptions.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":510,"kind":2048,"name":"setNode","url":"classes/sessionoptions.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":511,"kind":2048,"name":"getTtl","url":"classes/sessionoptions.html#getttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":512,"kind":2048,"name":"setTtl","url":"classes/sessionoptions.html#setttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":513,"kind":128,"name":"TxnError","url":"classes/txnerror.html","classes":"tsd-kind-class"},{"id":514,"kind":512,"name":"constructor","url":"classes/txnerror.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnError"},{"id":515,"kind":2048,"name":"getOpIndex","url":"classes/txnerror.html#getopindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":516,"kind":2048,"name":"setOpIndex","url":"classes/txnerror.html#setopindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":517,"kind":2048,"name":"getWhat","url":"classes/txnerror.html#getwhat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":518,"kind":2048,"name":"setWhat","url":"classes/txnerror.html#setwhat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":519,"kind":128,"name":"TxnKVOperation","url":"classes/txnkvoperation.html","classes":"tsd-kind-class"},{"id":520,"kind":512,"name":"constructor","url":"classes/txnkvoperation.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":521,"kind":2048,"name":"getFlags","url":"classes/txnkvoperation.html#getflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":522,"kind":2048,"name":"setFlags","url":"classes/txnkvoperation.html#setflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":523,"kind":2048,"name":"getIndex","url":"classes/txnkvoperation.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":524,"kind":2048,"name":"setIndex","url":"classes/txnkvoperation.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":525,"kind":2048,"name":"getKey","url":"classes/txnkvoperation.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":526,"kind":2048,"name":"setKey","url":"classes/txnkvoperation.html#setkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":527,"kind":2048,"name":"getSession","url":"classes/txnkvoperation.html#getsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":528,"kind":2048,"name":"setSession","url":"classes/txnkvoperation.html#setsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":529,"kind":2048,"name":"getType","url":"classes/txnkvoperation.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":530,"kind":2048,"name":"setType","url":"classes/txnkvoperation.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":531,"kind":2048,"name":"getValue","url":"classes/txnkvoperation.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":532,"kind":2048,"name":"setValue","url":"classes/txnkvoperation.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":533,"kind":128,"name":"TxnRequest","url":"classes/txnrequest.html","classes":"tsd-kind-class"},{"id":534,"kind":512,"name":"constructor","url":"classes/txnrequest.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnRequest"},{"id":535,"kind":2048,"name":"getOperationsSize","url":"classes/txnrequest.html#getoperationssize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnRequest"},{"id":536,"kind":128,"name":"TxnResponse","url":"classes/txnresponse.html","classes":"tsd-kind-class"},{"id":537,"kind":512,"name":"constructor","url":"classes/txnresponse.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnResponse"},{"id":538,"kind":2048,"name":"getErrors","url":"classes/txnresponse.html#geterrors","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":539,"kind":2048,"name":"addError","url":"classes/txnresponse.html#adderror","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":540,"kind":2048,"name":"getErrorsSize","url":"classes/txnresponse.html#geterrorssize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":541,"kind":2048,"name":"getResultsSize","url":"classes/txnresponse.html#getresultssize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":542,"kind":128,"name":"ConsulClient","url":"classes/consulclient.html","classes":"tsd-kind-class"},{"id":543,"kind":2048,"name":"create","url":"classes/consulclient.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ConsulClient"},{"id":544,"kind":2048,"name":"agentInfo","url":"classes/consulclient.html#agentinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":545,"kind":2048,"name":"coordinateNodes","url":"classes/consulclient.html#coordinatenodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":546,"kind":2048,"name":"coordinateNodesWithOptions","url":"classes/consulclient.html#coordinatenodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":547,"kind":2048,"name":"coordinateDatacenters","url":"classes/consulclient.html#coordinatedatacenters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":548,"kind":2048,"name":"getKeys","url":"classes/consulclient.html#getkeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":549,"kind":2048,"name":"getKeysWithOptions","url":"classes/consulclient.html#getkeyswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":550,"kind":2048,"name":"getValue","url":"classes/consulclient.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":551,"kind":2048,"name":"getValueWithOptions","url":"classes/consulclient.html#getvaluewithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":552,"kind":2048,"name":"deleteValue","url":"classes/consulclient.html#deletevalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":553,"kind":2048,"name":"getValues","url":"classes/consulclient.html#getvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":554,"kind":2048,"name":"getValuesWithOptions","url":"classes/consulclient.html#getvalueswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":555,"kind":2048,"name":"deleteValues","url":"classes/consulclient.html#deletevalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":556,"kind":2048,"name":"putValue","url":"classes/consulclient.html#putvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":557,"kind":2048,"name":"putValueWithOptions","url":"classes/consulclient.html#putvaluewithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":558,"kind":2048,"name":"transaction","url":"classes/consulclient.html#transaction","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":559,"kind":2048,"name":"createAclToken","url":"classes/consulclient.html#createacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":560,"kind":2048,"name":"updateAclToken","url":"classes/consulclient.html#updateacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":561,"kind":2048,"name":"cloneAclToken","url":"classes/consulclient.html#cloneacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":562,"kind":2048,"name":"listAclTokens","url":"classes/consulclient.html#listacltokens","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":563,"kind":2048,"name":"infoAclToken","url":"classes/consulclient.html#infoacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":564,"kind":2048,"name":"destroyAclToken","url":"classes/consulclient.html#destroyacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":565,"kind":2048,"name":"fireEvent","url":"classes/consulclient.html#fireevent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":566,"kind":2048,"name":"fireEventWithOptions","url":"classes/consulclient.html#fireeventwithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":567,"kind":2048,"name":"listEvents","url":"classes/consulclient.html#listevents","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":568,"kind":2048,"name":"listEventsWithOptions","url":"classes/consulclient.html#listeventswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":569,"kind":2048,"name":"registerService","url":"classes/consulclient.html#registerservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":570,"kind":2048,"name":"maintenanceService","url":"classes/consulclient.html#maintenanceservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":571,"kind":2048,"name":"deregisterService","url":"classes/consulclient.html#deregisterservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":572,"kind":2048,"name":"catalogServiceNodes","url":"classes/consulclient.html#catalogservicenodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":573,"kind":2048,"name":"catalogServiceNodesWithOptions","url":"classes/consulclient.html#catalogservicenodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":574,"kind":2048,"name":"catalogDatacenters","url":"classes/consulclient.html#catalogdatacenters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":575,"kind":2048,"name":"catalogNodes","url":"classes/consulclient.html#catalognodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":576,"kind":2048,"name":"catalogNodesWithOptions","url":"classes/consulclient.html#catalognodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":577,"kind":2048,"name":"healthChecks","url":"classes/consulclient.html#healthchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":578,"kind":2048,"name":"healthChecksWithOptions","url":"classes/consulclient.html#healthcheckswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":579,"kind":2048,"name":"healthState","url":"classes/consulclient.html#healthstate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":580,"kind":2048,"name":"healthStateWithOptions","url":"classes/consulclient.html#healthstatewithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":581,"kind":2048,"name":"healthServiceNodes","url":"classes/consulclient.html#healthservicenodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":582,"kind":2048,"name":"healthServiceNodesWithOptions","url":"classes/consulclient.html#healthservicenodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":583,"kind":2048,"name":"catalogServices","url":"classes/consulclient.html#catalogservices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":584,"kind":2048,"name":"catalogServicesWithOptions","url":"classes/consulclient.html#catalogserviceswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":585,"kind":2048,"name":"catalogNodeServices","url":"classes/consulclient.html#catalognodeservices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":586,"kind":2048,"name":"catalogNodeServicesWithOptions","url":"classes/consulclient.html#catalognodeserviceswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":587,"kind":2048,"name":"localServices","url":"classes/consulclient.html#localservices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":588,"kind":2048,"name":"localChecks","url":"classes/consulclient.html#localchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":589,"kind":2048,"name":"registerCheck","url":"classes/consulclient.html#registercheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":590,"kind":2048,"name":"deregisterCheck","url":"classes/consulclient.html#deregistercheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":591,"kind":2048,"name":"passCheck","url":"classes/consulclient.html#passcheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":592,"kind":2048,"name":"passCheckWithNote","url":"classes/consulclient.html#passcheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":593,"kind":2048,"name":"warnCheck","url":"classes/consulclient.html#warncheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":594,"kind":2048,"name":"warnCheckWithNote","url":"classes/consulclient.html#warncheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":595,"kind":2048,"name":"failCheck","url":"classes/consulclient.html#failcheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":596,"kind":2048,"name":"failCheckWithNote","url":"classes/consulclient.html#failcheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":597,"kind":2048,"name":"updateCheck","url":"classes/consulclient.html#updatecheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":598,"kind":2048,"name":"updateCheckWithNote","url":"classes/consulclient.html#updatecheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":599,"kind":2048,"name":"leaderStatus","url":"classes/consulclient.html#leaderstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":600,"kind":2048,"name":"peersStatus","url":"classes/consulclient.html#peersstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":601,"kind":2048,"name":"createSession","url":"classes/consulclient.html#createsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":602,"kind":2048,"name":"createSessionWithOptions","url":"classes/consulclient.html#createsessionwithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":603,"kind":2048,"name":"infoSession","url":"classes/consulclient.html#infosession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":604,"kind":2048,"name":"infoSessionWithOptions","url":"classes/consulclient.html#infosessionwithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":605,"kind":2048,"name":"renewSession","url":"classes/consulclient.html#renewsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":606,"kind":2048,"name":"listSessions","url":"classes/consulclient.html#listsessions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":607,"kind":2048,"name":"listSessionsWithOptions","url":"classes/consulclient.html#listsessionswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":608,"kind":2048,"name":"listNodeSessions","url":"classes/consulclient.html#listnodesessions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":609,"kind":2048,"name":"listNodeSessionsWithOptions","url":"classes/consulclient.html#listnodesessionswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":610,"kind":2048,"name":"destroySession","url":"classes/consulclient.html#destroysession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":611,"kind":2048,"name":"createPreparedQuery","url":"classes/consulclient.html#createpreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":612,"kind":2048,"name":"getPreparedQuery","url":"classes/consulclient.html#getpreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":613,"kind":2048,"name":"getAllPreparedQueries","url":"classes/consulclient.html#getallpreparedqueries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":614,"kind":2048,"name":"updatePreparedQuery","url":"classes/consulclient.html#updatepreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":615,"kind":2048,"name":"deletePreparedQuery","url":"classes/consulclient.html#deletepreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":616,"kind":2048,"name":"executePreparedQuery","url":"classes/consulclient.html#executepreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":617,"kind":2048,"name":"executePreparedQueryWithOptions","url":"classes/consulclient.html#executepreparedquerywithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":618,"kind":2048,"name":"close","url":"classes/consulclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":619,"kind":128,"name":"Watch","url":"classes/watch.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":620,"kind":2048,"name":"key","url":"classes/watch.html#key","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":621,"kind":2048,"name":"keyPrefix","url":"classes/watch.html#keyprefix","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":622,"kind":2048,"name":"services","url":"classes/watch.html#services","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":623,"kind":2048,"name":"service","url":"classes/watch.html#service","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":624,"kind":2048,"name":"events","url":"classes/watch.html#events","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":625,"kind":2048,"name":"nodes","url":"classes/watch.html#nodes","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":626,"kind":2048,"name":"setHandler","url":"classes/watch.html#sethandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Watch"},{"id":627,"kind":2048,"name":"start","url":"classes/watch.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Watch"},{"id":628,"kind":2048,"name":"stop","url":"classes/watch.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Watch"},{"id":629,"kind":128,"name":"WatchResult","url":"classes/watchresult.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":630,"kind":2048,"name":"prevResult","url":"classes/watchresult.html#prevresult","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":631,"kind":2048,"name":"nextResult","url":"classes/watchresult.html#nextresult","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":632,"kind":2048,"name":"cause","url":"classes/watchresult.html#cause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":633,"kind":2048,"name":"succeeded","url":"classes/watchresult.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":634,"kind":2048,"name":"failed","url":"classes/watchresult.html#failed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,41.038]],["parent/0",[]],["name/1",[1,28.309]],["parent/1",[0,3.994]],["name/2",[2,42.039]],["parent/2",[0,3.994]],["name/3",[3,42.039]],["parent/3",[0,3.994]],["name/4",[4,41.038]],["parent/4",[0,3.994]],["name/5",[5,41.038]],["parent/5",[0,3.994]],["name/6",[6,60.497]],["parent/6",[0,3.994]],["name/7",[7,60.497]],["parent/7",[0,3.994]],["name/8",[8,55.389]],["parent/8",[0,3.994]],["name/9",[9,55.389]],["parent/9",[0,3.994]],["name/10",[10,45.834]],["parent/10",[]],["name/11",[1,28.309]],["parent/11",[10,4.461]],["name/12",[11,40.129]],["parent/12",[10,4.461]],["name/13",[12,40.129]],["parent/13",[10,4.461]],["name/14",[13,60.497]],["parent/14",[10,4.461]],["name/15",[14,60.497]],["parent/15",[10,4.461]],["name/16",[15,35.374]],["parent/16",[]],["name/17",[1,28.309]],["parent/17",[15,3.443]],["name/18",[2,42.039]],["parent/18",[15,3.443]],["name/19",[3,42.039]],["parent/19",[15,3.443]],["name/20",[4,41.038]],["parent/20",[15,3.443]],["name/21",[5,41.038]],["parent/21",[15,3.443]],["name/22",[16,60.497]],["parent/22",[15,3.443]],["name/23",[17,60.497]],["parent/23",[15,3.443]],["name/24",[18,55.389]],["parent/24",[15,3.443]],["name/25",[19,55.389]],["parent/25",[15,3.443]],["name/26",[20,60.497]],["parent/26",[15,3.443]],["name/27",[21,60.497]],["parent/27",[15,3.443]],["name/28",[22,55.389]],["parent/28",[15,3.443]],["name/29",[23,55.389]],["parent/29",[15,3.443]],["name/30",[24,60.497]],["parent/30",[15,3.443]],["name/31",[25,60.497]],["parent/31",[15,3.443]],["name/32",[26,55.389]],["parent/32",[15,3.443]],["name/33",[27,55.389]],["parent/33",[15,3.443]],["name/34",[28,45.834]],["parent/34",[]],["name/35",[1,28.309]],["parent/35",[28,4.461]],["name/36",[11,40.129]],["parent/36",[28,4.461]],["name/37",[12,40.129]],["parent/37",[28,4.461]],["name/38",[29,43.151]],["parent/38",[28,4.461]],["name/39",[30,43.151]],["parent/39",[28,4.461]],["name/40",[31,30.375]],["parent/40",[]],["name/41",[1,28.309]],["parent/41",[31,2.956]],["name/42",[32,60.497]],["parent/42",[31,2.956]],["name/43",[33,60.497]],["parent/43",[31,2.956]],["name/44",[34,60.497]],["parent/44",[31,2.956]],["name/45",[35,60.497]],["parent/45",[31,2.956]],["name/46",[36,60.497]],["parent/46",[31,2.956]],["name/47",[37,60.497]],["parent/47",[31,2.956]],["name/48",[38,60.497]],["parent/48",[31,2.956]],["name/49",[39,60.497]],["parent/49",[31,2.956]],["name/50",[2,42.039]],["parent/50",[31,2.956]],["name/51",[3,42.039]],["parent/51",[31,2.956]],["name/52",[40,60.497]],["parent/52",[31,2.956]],["name/53",[41,60.497]],["parent/53",[31,2.956]],["name/54",[4,41.038]],["parent/54",[31,2.956]],["name/55",[5,41.038]],["parent/55",[31,2.956]],["name/56",[18,55.389]],["parent/56",[31,2.956]],["name/57",[19,55.389]],["parent/57",[31,2.956]],["name/58",[42,60.497]],["parent/58",[31,2.956]],["name/59",[43,60.497]],["parent/59",[31,2.956]],["name/60",[22,55.389]],["parent/60",[31,2.956]],["name/61",[23,55.389]],["parent/61",[31,2.956]],["name/62",[26,55.389]],["parent/62",[31,2.956]],["name/63",[27,55.389]],["parent/63",[31,2.956]],["name/64",[44,60.497]],["parent/64",[31,2.956]],["name/65",[45,60.497]],["parent/65",[31,2.956]],["name/66",[46,60.497]],["parent/66",[31,2.956]],["name/67",[47,60.497]],["parent/67",[31,2.956]],["name/68",[48,55.389]],["parent/68",[31,2.956]],["name/69",[49,55.389]],["parent/69",[31,2.956]],["name/70",[50,45.834]],["parent/70",[]],["name/71",[1,28.309]],["parent/71",[50,4.461]],["name/72",[51,49.511]],["parent/72",[50,4.461]],["name/73",[52,49.511]],["parent/73",[50,4.461]],["name/74",[53,49.511]],["parent/74",[50,4.461]],["name/75",[54,49.511]],["parent/75",[50,4.461]],["name/76",[55,13.342]],["parent/76",[]],["name/77",[1,28.309]],["parent/77",[55,1.299]],["name/78",[56,60.497]],["parent/78",[55,1.299]],["name/79",[57,60.497]],["parent/79",[55,1.299]],["name/80",[58,60.497]],["parent/80",[55,1.299]],["name/81",[59,60.497]],["parent/81",[55,1.299]],["name/82",[60,60.497]],["parent/82",[55,1.299]],["name/83",[61,60.497]],["parent/83",[55,1.299]],["name/84",[62,60.497]],["parent/84",[55,1.299]],["name/85",[63,60.497]],["parent/85",[55,1.299]],["name/86",[64,60.497]],["parent/86",[55,1.299]],["name/87",[65,60.497]],["parent/87",[55,1.299]],["name/88",[66,55.389]],["parent/88",[55,1.299]],["name/89",[67,55.389]],["parent/89",[55,1.299]],["name/90",[68,60.497]],["parent/90",[55,1.299]],["name/91",[69,60.497]],["parent/91",[55,1.299]],["name/92",[70,60.497]],["parent/92",[55,1.299]],["name/93",[71,60.497]],["parent/93",[55,1.299]],["name/94",[72,60.497]],["parent/94",[55,1.299]],["name/95",[73,60.497]],["parent/95",[55,1.299]],["name/96",[74,60.497]],["parent/96",[55,1.299]],["name/97",[75,60.497]],["parent/97",[55,1.299]],["name/98",[76,60.497]],["parent/98",[55,1.299]],["name/99",[77,60.497]],["parent/99",[55,1.299]],["name/100",[78,60.497]],["parent/100",[55,1.299]],["name/101",[79,60.497]],["parent/101",[55,1.299]],["name/102",[80,60.497]],["parent/102",[55,1.299]],["name/103",[81,60.497]],["parent/103",[55,1.299]],["name/104",[82,60.497]],["parent/104",[55,1.299]],["name/105",[83,60.497]],["parent/105",[55,1.299]],["name/106",[84,60.497]],["parent/106",[55,1.299]],["name/107",[85,60.497]],["parent/107",[55,1.299]],["name/108",[86,60.497]],["parent/108",[55,1.299]],["name/109",[87,60.497]],["parent/109",[55,1.299]],["name/110",[88,60.497]],["parent/110",[55,1.299]],["name/111",[89,60.497]],["parent/111",[55,1.299]],["name/112",[90,60.497]],["parent/112",[55,1.299]],["name/113",[91,60.497]],["parent/113",[55,1.299]],["name/114",[92,60.497]],["parent/114",[55,1.299]],["name/115",[93,60.497]],["parent/115",[55,1.299]],["name/116",[94,60.497]],["parent/116",[55,1.299]],["name/117",[95,60.497]],["parent/117",[55,1.299]],["name/118",[96,60.497]],["parent/118",[55,1.299]],["name/119",[97,60.497]],["parent/119",[55,1.299]],["name/120",[98,60.497]],["parent/120",[55,1.299]],["name/121",[99,60.497]],["parent/121",[55,1.299]],["name/122",[100,60.497]],["parent/122",[55,1.299]],["name/123",[101,60.497]],["parent/123",[55,1.299]],["name/124",[102,60.497]],["parent/124",[55,1.299]],["name/125",[103,60.497]],["parent/125",[55,1.299]],["name/126",[104,60.497]],["parent/126",[55,1.299]],["name/127",[105,60.497]],["parent/127",[55,1.299]],["name/128",[106,60.497]],["parent/128",[55,1.299]],["name/129",[107,60.497]],["parent/129",[55,1.299]],["name/130",[108,60.497]],["parent/130",[55,1.299]],["name/131",[109,60.497]],["parent/131",[55,1.299]],["name/132",[110,60.497]],["parent/132",[55,1.299]],["name/133",[111,60.497]],["parent/133",[55,1.299]],["name/134",[112,60.497]],["parent/134",[55,1.299]],["name/135",[113,60.497]],["parent/135",[55,1.299]],["name/136",[114,60.497]],["parent/136",[55,1.299]],["name/137",[115,60.497]],["parent/137",[55,1.299]],["name/138",[116,60.497]],["parent/138",[55,1.299]],["name/139",[117,60.497]],["parent/139",[55,1.299]],["name/140",[118,60.497]],["parent/140",[55,1.299]],["name/141",[119,60.497]],["parent/141",[55,1.299]],["name/142",[120,60.497]],["parent/142",[55,1.299]],["name/143",[121,60.497]],["parent/143",[55,1.299]],["name/144",[122,60.497]],["parent/144",[55,1.299]],["name/145",[123,55.389]],["parent/145",[55,1.299]],["name/146",[124,55.389]],["parent/146",[55,1.299]],["name/147",[125,55.389]],["parent/147",[55,1.299]],["name/148",[126,55.389]],["parent/148",[55,1.299]],["name/149",[123,55.389]],["parent/149",[55,1.299]],["name/150",[124,55.389]],["parent/150",[55,1.299]],["name/151",[125,55.389]],["parent/151",[55,1.299]],["name/152",[126,55.389]],["parent/152",[55,1.299]],["name/153",[127,60.497]],["parent/153",[55,1.299]],["name/154",[128,60.497]],["parent/154",[55,1.299]],["name/155",[129,60.497]],["parent/155",[55,1.299]],["name/156",[130,60.497]],["parent/156",[55,1.299]],["name/157",[131,60.497]],["parent/157",[55,1.299]],["name/158",[132,60.497]],["parent/158",[55,1.299]],["name/159",[133,60.497]],["parent/159",[55,1.299]],["name/160",[134,60.497]],["parent/160",[55,1.299]],["name/161",[135,60.497]],["parent/161",[55,1.299]],["name/162",[136,60.497]],["parent/162",[55,1.299]],["name/163",[137,60.497]],["parent/163",[55,1.299]],["name/164",[138,60.497]],["parent/164",[55,1.299]],["name/165",[139,60.497]],["parent/165",[55,1.299]],["name/166",[140,60.497]],["parent/166",[55,1.299]],["name/167",[141,60.497]],["parent/167",[55,1.299]],["name/168",[142,60.497]],["parent/168",[55,1.299]],["name/169",[143,60.497]],["parent/169",[55,1.299]],["name/170",[144,60.497]],["parent/170",[55,1.299]],["name/171",[145,60.497]],["parent/171",[55,1.299]],["name/172",[146,60.497]],["parent/172",[55,1.299]],["name/173",[147,60.497]],["parent/173",[55,1.299]],["name/174",[148,60.497]],["parent/174",[55,1.299]],["name/175",[149,60.497]],["parent/175",[55,1.299]],["name/176",[150,60.497]],["parent/176",[55,1.299]],["name/177",[151,60.497]],["parent/177",[55,1.299]],["name/178",[152,60.497]],["parent/178",[55,1.299]],["name/179",[153,60.497]],["parent/179",[55,1.299]],["name/180",[154,60.497]],["parent/180",[55,1.299]],["name/181",[155,60.497]],["parent/181",[55,1.299]],["name/182",[156,60.497]],["parent/182",[55,1.299]],["name/183",[157,60.497]],["parent/183",[55,1.299]],["name/184",[158,60.497]],["parent/184",[55,1.299]],["name/185",[159,60.497]],["parent/185",[55,1.299]],["name/186",[160,60.497]],["parent/186",[55,1.299]],["name/187",[161,60.497]],["parent/187",[55,1.299]],["name/188",[162,60.497]],["parent/188",[55,1.299]],["name/189",[163,60.497]],["parent/189",[55,1.299]],["name/190",[164,60.497]],["parent/190",[55,1.299]],["name/191",[165,60.497]],["parent/191",[55,1.299]],["name/192",[166,60.497]],["parent/192",[55,1.299]],["name/193",[167,60.497]],["parent/193",[55,1.299]],["name/194",[168,60.497]],["parent/194",[55,1.299]],["name/195",[169,60.497]],["parent/195",[55,1.299]],["name/196",[170,60.497]],["parent/196",[55,1.299]],["name/197",[171,60.497]],["parent/197",[55,1.299]],["name/198",[172,60.497]],["parent/198",[55,1.299]],["name/199",[173,60.497]],["parent/199",[55,1.299]],["name/200",[174,60.497]],["parent/200",[55,1.299]],["name/201",[175,60.497]],["parent/201",[55,1.299]],["name/202",[176,60.497]],["parent/202",[55,1.299]],["name/203",[177,60.497]],["parent/203",[55,1.299]],["name/204",[178,60.497]],["parent/204",[55,1.299]],["name/205",[179,60.497]],["parent/205",[55,1.299]],["name/206",[180,60.497]],["parent/206",[55,1.299]],["name/207",[181,60.497]],["parent/207",[55,1.299]],["name/208",[182,60.497]],["parent/208",[55,1.299]],["name/209",[183,60.497]],["parent/209",[55,1.299]],["name/210",[184,60.497]],["parent/210",[55,1.299]],["name/211",[185,60.497]],["parent/211",[55,1.299]],["name/212",[186,60.497]],["parent/212",[55,1.299]],["name/213",[187,55.389]],["parent/213",[55,1.299]],["name/214",[187,55.389]],["parent/214",[55,1.299]],["name/215",[188,55.389]],["parent/215",[55,1.299]],["name/216",[189,55.389]],["parent/216",[55,1.299]],["name/217",[188,55.389]],["parent/217",[55,1.299]],["name/218",[189,55.389]],["parent/218",[55,1.299]],["name/219",[190,55.389]],["parent/219",[55,1.299]],["name/220",[190,55.389]],["parent/220",[55,1.299]],["name/221",[191,60.497]],["parent/221",[55,1.299]],["name/222",[192,60.497]],["parent/222",[55,1.299]],["name/223",[193,60.497]],["parent/223",[55,1.299]],["name/224",[194,60.497]],["parent/224",[55,1.299]],["name/225",[195,60.497]],["parent/225",[55,1.299]],["name/226",[196,60.497]],["parent/226",[55,1.299]],["name/227",[197,60.497]],["parent/227",[55,1.299]],["name/228",[198,60.497]],["parent/228",[55,1.299]],["name/229",[199,60.497]],["parent/229",[55,1.299]],["name/230",[200,60.497]],["parent/230",[55,1.299]],["name/231",[201,55.389]],["parent/231",[55,1.299]],["name/232",[202,55.389]],["parent/232",[55,1.299]],["name/233",[203,55.389]],["parent/233",[55,1.299]],["name/234",[204,55.389]],["parent/234",[55,1.299]],["name/235",[205,55.389]],["parent/235",[55,1.299]],["name/236",[206,55.389]],["parent/236",[55,1.299]],["name/237",[201,55.389]],["parent/237",[55,1.299]],["name/238",[202,55.389]],["parent/238",[55,1.299]],["name/239",[203,55.389]],["parent/239",[55,1.299]],["name/240",[204,55.389]],["parent/240",[55,1.299]],["name/241",[205,55.389]],["parent/241",[55,1.299]],["name/242",[206,55.389]],["parent/242",[55,1.299]],["name/243",[207,39.295]],["parent/243",[]],["name/244",[1,28.309]],["parent/244",[207,3.824]],["name/245",[208,60.497]],["parent/245",[207,3.824]],["name/246",[209,60.497]],["parent/246",[207,3.824]],["name/247",[210,60.497]],["parent/247",[207,3.824]],["name/248",[211,60.497]],["parent/248",[207,3.824]],["name/249",[212,60.497]],["parent/249",[207,3.824]],["name/250",[213,60.497]],["parent/250",[207,3.824]],["name/251",[214,44.403]],["parent/251",[207,3.824]],["name/252",[215,44.403]],["parent/252",[207,3.824]],["name/253",[216,60.497]],["parent/253",[207,3.824]],["name/254",[217,60.497]],["parent/254",[207,3.824]],["name/255",[218,45.834]],["parent/255",[]],["name/256",[1,28.309]],["parent/256",[218,4.461]],["name/257",[11,40.129]],["parent/257",[218,4.461]],["name/258",[12,40.129]],["parent/258",[218,4.461]],["name/259",[29,43.151]],["parent/259",[218,4.461]],["name/260",[30,43.151]],["parent/260",[218,4.461]],["name/261",[219,45.834]],["parent/261",[]],["name/262",[1,28.309]],["parent/262",[219,4.461]],["name/263",[220,60.497]],["parent/263",[219,4.461]],["name/264",[221,60.497]],["parent/264",[219,4.461]],["name/265",[222,60.497]],["parent/265",[219,4.461]],["name/266",[223,60.497]],["parent/266",[219,4.461]],["name/267",[224,35.374]],["parent/267",[]],["name/268",[1,28.309]],["parent/268",[224,3.443]],["name/269",[2,42.039]],["parent/269",[224,3.443]],["name/270",[3,42.039]],["parent/270",[224,3.443]],["name/271",[225,60.497]],["parent/271",[224,3.443]],["name/272",[226,60.497]],["parent/272",[224,3.443]],["name/273",[4,41.038]],["parent/273",[224,3.443]],["name/274",[5,41.038]],["parent/274",[224,3.443]],["name/275",[214,44.403]],["parent/275",[224,3.443]],["name/276",[215,44.403]],["parent/276",[224,3.443]],["name/277",[227,55.389]],["parent/277",[224,3.443]],["name/278",[228,55.389]],["parent/278",[224,3.443]],["name/279",[229,47.505]],["parent/279",[224,3.443]],["name/280",[230,47.505]],["parent/280",[224,3.443]],["name/281",[231,52.024]],["parent/281",[224,3.443]],["name/282",[232,52.024]],["parent/282",[224,3.443]],["name/283",[233,60.497]],["parent/283",[224,3.443]],["name/284",[234,60.497]],["parent/284",[224,3.443]],["name/285",[235,45.834]],["parent/285",[]],["name/286",[1,28.309]],["parent/286",[235,4.461]],["name/287",[11,40.129]],["parent/287",[235,4.461]],["name/288",[12,40.129]],["parent/288",[235,4.461]],["name/289",[29,43.151]],["parent/289",[235,4.461]],["name/290",[30,43.151]],["parent/290",[235,4.461]],["name/291",[236,45.834]],["parent/291",[]],["name/292",[1,28.309]],["parent/292",[236,4.461]],["name/293",[51,49.511]],["parent/293",[236,4.461]],["name/294",[52,49.511]],["parent/294",[236,4.461]],["name/295",[4,41.038]],["parent/295",[236,4.461]],["name/296",[5,41.038]],["parent/296",[236,4.461]],["name/297",[237,41.038]],["parent/297",[]],["name/298",[1,28.309]],["parent/298",[237,3.994]],["name/299",[214,44.403]],["parent/299",[237,3.994]],["name/300",[215,44.403]],["parent/300",[237,3.994]],["name/301",[227,55.389]],["parent/301",[237,3.994]],["name/302",[228,55.389]],["parent/302",[237,3.994]],["name/303",[229,47.505]],["parent/303",[237,3.994]],["name/304",[230,47.505]],["parent/304",[237,3.994]],["name/305",[231,52.024]],["parent/305",[237,3.994]],["name/306",[232,52.024]],["parent/306",[237,3.994]],["name/307",[238,36.518]],["parent/307",[]],["name/308",[1,28.309]],["parent/308",[238,3.554]],["name/309",[239,55.389]],["parent/309",[238,3.554]],["name/310",[240,55.389]],["parent/310",[238,3.554]],["name/311",[241,52.024]],["parent/311",[238,3.554]],["name/312",[242,52.024]],["parent/312",[238,3.554]],["name/313",[243,55.389]],["parent/313",[238,3.554]],["name/314",[244,55.389]],["parent/314",[238,3.554]],["name/315",[245,60.497]],["parent/315",[238,3.554]],["name/316",[246,60.497]],["parent/316",[238,3.554]],["name/317",[247,60.497]],["parent/317",[238,3.554]],["name/318",[248,60.497]],["parent/318",[238,3.554]],["name/319",[249,52.024]],["parent/319",[238,3.554]],["name/320",[250,52.024]],["parent/320",[238,3.554]],["name/321",[251,52.024]],["parent/321",[238,3.554]],["name/322",[252,55.389]],["parent/322",[238,3.554]],["name/323",[253,45.834]],["parent/323",[]],["name/324",[1,28.309]],["parent/324",[253,4.461]],["name/325",[11,40.129]],["parent/325",[253,4.461]],["name/326",[12,40.129]],["parent/326",[253,4.461]],["name/327",[29,43.151]],["parent/327",[253,4.461]],["name/328",[30,43.151]],["parent/328",[253,4.461]],["name/329",[254,41.038]],["parent/329",[]],["name/330",[1,28.309]],["parent/330",[254,3.994]],["name/331",[255,60.497]],["parent/331",[254,3.994]],["name/332",[256,60.497]],["parent/332",[254,3.994]],["name/333",[257,60.497]],["parent/333",[254,3.994]],["name/334",[258,60.497]],["parent/334",[254,3.994]],["name/335",[241,52.024]],["parent/335",[254,3.994]],["name/336",[242,52.024]],["parent/336",[254,3.994]],["name/337",[259,60.497]],["parent/337",[254,3.994]],["name/338",[260,60.497]],["parent/338",[254,3.994]],["name/339",[261,43.151]],["parent/339",[]],["name/340",[1,28.309]],["parent/340",[261,4.2]],["name/341",[262,60.497]],["parent/341",[261,4.2]],["name/342",[263,60.497]],["parent/342",[261,4.2]],["name/343",[2,42.039]],["parent/343",[261,4.2]],["name/344",[3,42.039]],["parent/344",[261,4.2]],["name/345",[264,60.497]],["parent/345",[261,4.2]],["name/346",[265,60.497]],["parent/346",[261,4.2]],["name/347",[266,41.038]],["parent/347",[]],["name/348",[1,28.309]],["parent/348",[266,3.994]],["name/349",[267,52.024]],["parent/349",[266,3.994]],["name/350",[268,52.024]],["parent/350",[266,3.994]],["name/351",[269,60.497]],["parent/351",[266,3.994]],["name/352",[270,60.497]],["parent/352",[266,3.994]],["name/353",[4,41.038]],["parent/353",[266,3.994]],["name/354",[5,41.038]],["parent/354",[266,3.994]],["name/355",[271,60.497]],["parent/355",[266,3.994]],["name/356",[272,60.497]],["parent/356",[266,3.994]],["name/357",[273,45.834]],["parent/357",[]],["name/358",[1,28.309]],["parent/358",[273,4.461]],["name/359",[11,40.129]],["parent/359",[273,4.461]],["name/360",[12,40.129]],["parent/360",[273,4.461]],["name/361",[29,43.151]],["parent/361",[273,4.461]],["name/362",[30,43.151]],["parent/362",[273,4.461]],["name/363",[274,45.834]],["parent/363",[]],["name/364",[1,28.309]],["parent/364",[274,4.461]],["name/365",[51,49.511]],["parent/365",[274,4.461]],["name/366",[52,49.511]],["parent/366",[274,4.461]],["name/367",[53,49.511]],["parent/367",[274,4.461]],["name/368",[54,49.511]],["parent/368",[274,4.461]],["name/369",[275,31.053]],["parent/369",[]],["name/370",[1,28.309]],["parent/370",[275,3.022]],["name/371",[276,60.497]],["parent/371",[275,3.022]],["name/372",[277,60.497]],["parent/372",[275,3.022]],["name/373",[278,55.389]],["parent/373",[275,3.022]],["name/374",[279,55.389]],["parent/374",[275,3.022]],["name/375",[2,42.039]],["parent/375",[275,3.022]],["name/376",[3,42.039]],["parent/376",[275,3.022]],["name/377",[280,52.024]],["parent/377",[275,3.022]],["name/378",[281,52.024]],["parent/378",[275,3.022]],["name/379",[4,41.038]],["parent/379",[275,3.022]],["name/380",[5,41.038]],["parent/380",[275,3.022]],["name/381",[282,60.497]],["parent/381",[275,3.022]],["name/382",[283,60.497]],["parent/382",[275,3.022]],["name/383",[284,60.497]],["parent/383",[275,3.022]],["name/384",[285,60.497]],["parent/384",[275,3.022]],["name/385",[229,47.505]],["parent/385",[275,3.022]],["name/386",[230,47.505]],["parent/386",[275,3.022]],["name/387",[249,52.024]],["parent/387",[275,3.022]],["name/388",[250,52.024]],["parent/388",[275,3.022]],["name/389",[286,52.024]],["parent/389",[275,3.022]],["name/390",[287,52.024]],["parent/390",[275,3.022]],["name/391",[288,60.497]],["parent/391",[275,3.022]],["name/392",[289,60.497]],["parent/392",[275,3.022]],["name/393",[290,60.497]],["parent/393",[275,3.022]],["name/394",[291,60.497]],["parent/394",[275,3.022]],["name/395",[292,60.497]],["parent/395",[275,3.022]],["name/396",[293,60.497]],["parent/396",[275,3.022]],["name/397",[294,45.834]],["parent/397",[]],["name/398",[1,28.309]],["parent/398",[294,4.461]],["name/399",[295,60.497]],["parent/399",[294,4.461]],["name/400",[296,60.497]],["parent/400",[294,4.461]],["name/401",[53,49.511]],["parent/401",[294,4.461]],["name/402",[54,49.511]],["parent/402",[294,4.461]],["name/403",[297,39.295]],["parent/403",[]],["name/404",[1,28.309]],["parent/404",[297,3.824]],["name/405",[66,55.389]],["parent/405",[297,3.824]],["name/406",[67,55.389]],["parent/406",[297,3.824]],["name/407",[278,55.389]],["parent/407",[297,3.824]],["name/408",[279,55.389]],["parent/408",[297,3.824]],["name/409",[298,60.497]],["parent/409",[297,3.824]],["name/410",[299,60.497]],["parent/410",[297,3.824]],["name/411",[300,60.497]],["parent/411",[297,3.824]],["name/412",[301,60.497]],["parent/412",[297,3.824]],["name/413",[229,47.505]],["parent/413",[297,3.824]],["name/414",[230,47.505]],["parent/414",[297,3.824]],["name/415",[302,34.848]],["parent/415",[]],["name/416",[1,28.309]],["parent/416",[302,3.392]],["name/417",[267,52.024]],["parent/417",[302,3.392]],["name/418",[268,52.024]],["parent/418",[302,3.392]],["name/419",[2,42.039]],["parent/419",[302,3.392]],["name/420",[3,42.039]],["parent/420",[302,3.392]],["name/421",[280,52.024]],["parent/421",[302,3.392]],["name/422",[281,52.024]],["parent/422",[302,3.392]],["name/423",[4,41.038]],["parent/423",[302,3.392]],["name/424",[5,41.038]],["parent/424",[302,3.392]],["name/425",[214,44.403]],["parent/425",[302,3.392]],["name/426",[215,44.403]],["parent/426",[302,3.392]],["name/427",[303,60.497]],["parent/427",[302,3.392]],["name/428",[304,60.497]],["parent/428",[302,3.392]],["name/429",[305,55.389]],["parent/429",[302,3.392]],["name/430",[306,55.389]],["parent/430",[302,3.392]],["name/431",[286,52.024]],["parent/431",[302,3.392]],["name/432",[287,52.024]],["parent/432",[302,3.392]],["name/433",[307,43.151]],["parent/433",[]],["name/434",[1,28.309]],["parent/434",[307,4.2]],["name/435",[308,52.024]],["parent/435",[307,4.2]],["name/436",[309,52.024]],["parent/436",[307,4.2]],["name/437",[214,44.403]],["parent/437",[307,4.2]],["name/438",[215,44.403]],["parent/438",[307,4.2]],["name/439",[229,47.505]],["parent/439",[307,4.2]],["name/440",[230,47.505]],["parent/440",[307,4.2]],["name/441",[310,45.834]],["parent/441",[]],["name/442",[1,28.309]],["parent/442",[310,4.461]],["name/443",[11,40.129]],["parent/443",[310,4.461]],["name/444",[12,40.129]],["parent/444",[310,4.461]],["name/445",[29,43.151]],["parent/445",[310,4.461]],["name/446",[30,43.151]],["parent/446",[310,4.461]],["name/447",[311,45.834]],["parent/447",[]],["name/448",[1,28.309]],["parent/448",[311,4.461]],["name/449",[11,40.129]],["parent/449",[311,4.461]],["name/450",[12,40.129]],["parent/450",[311,4.461]],["name/451",[29,43.151]],["parent/451",[311,4.461]],["name/452",[30,43.151]],["parent/452",[311,4.461]],["name/453",[312,35.374]],["parent/453",[]],["name/454",[1,28.309]],["parent/454",[312,3.443]],["name/455",[267,52.024]],["parent/455",[312,3.443]],["name/456",[268,52.024]],["parent/456",[312,3.443]],["name/457",[313,60.497]],["parent/457",[312,3.443]],["name/458",[314,60.497]],["parent/458",[312,3.443]],["name/459",[315,60.497]],["parent/459",[312,3.443]],["name/460",[316,60.497]],["parent/460",[312,3.443]],["name/461",[2,42.039]],["parent/461",[312,3.443]],["name/462",[3,42.039]],["parent/462",[312,3.443]],["name/463",[280,52.024]],["parent/463",[312,3.443]],["name/464",[281,52.024]],["parent/464",[312,3.443]],["name/465",[4,41.038]],["parent/465",[312,3.443]],["name/466",[5,41.038]],["parent/466",[312,3.443]],["name/467",[305,55.389]],["parent/467",[312,3.443]],["name/468",[306,55.389]],["parent/468",[312,3.443]],["name/469",[286,52.024]],["parent/469",[312,3.443]],["name/470",[287,52.024]],["parent/470",[312,3.443]],["name/471",[317,43.151]],["parent/471",[]],["name/472",[1,28.309]],["parent/472",[317,4.2]],["name/473",[51,49.511]],["parent/473",[317,4.2]],["name/474",[52,49.511]],["parent/474",[317,4.2]],["name/475",[53,49.511]],["parent/475",[317,4.2]],["name/476",[54,49.511]],["parent/476",[317,4.2]],["name/477",[231,52.024]],["parent/477",[317,4.2]],["name/478",[232,52.024]],["parent/478",[317,4.2]],["name/479",[318,37.81]],["parent/479",[]],["name/480",[1,28.309]],["parent/480",[318,3.68]],["name/481",[308,52.024]],["parent/481",[318,3.68]],["name/482",[309,52.024]],["parent/482",[318,3.68]],["name/483",[239,55.389]],["parent/483",[318,3.68]],["name/484",[240,55.389]],["parent/484",[318,3.68]],["name/485",[2,42.039]],["parent/485",[318,3.68]],["name/486",[3,42.039]],["parent/486",[318,3.68]],["name/487",[11,40.129]],["parent/487",[318,3.68]],["name/488",[12,40.129]],["parent/488",[318,3.68]],["name/489",[319,55.389]],["parent/489",[318,3.68]],["name/490",[320,55.389]],["parent/490",[318,3.68]],["name/491",[214,44.403]],["parent/491",[318,3.68]],["name/492",[215,44.403]],["parent/492",[318,3.68]],["name/493",[321,45.834]],["parent/493",[]],["name/494",[1,28.309]],["parent/494",[321,4.461]],["name/495",[11,40.129]],["parent/495",[321,4.461]],["name/496",[12,40.129]],["parent/496",[321,4.461]],["name/497",[29,43.151]],["parent/497",[321,4.461]],["name/498",[30,43.151]],["parent/498",[321,4.461]],["name/499",[322,37.81]],["parent/499",[]],["name/500",[1,28.309]],["parent/500",[322,3.68]],["name/501",[323,60.497]],["parent/501",[322,3.68]],["name/502",[324,60.497]],["parent/502",[322,3.68]],["name/503",[308,52.024]],["parent/503",[322,3.68]],["name/504",[309,52.024]],["parent/504",[322,3.68]],["name/505",[319,55.389]],["parent/505",[322,3.68]],["name/506",[320,55.389]],["parent/506",[322,3.68]],["name/507",[4,41.038]],["parent/507",[322,3.68]],["name/508",[5,41.038]],["parent/508",[322,3.68]],["name/509",[214,44.403]],["parent/509",[322,3.68]],["name/510",[215,44.403]],["parent/510",[322,3.68]],["name/511",[48,55.389]],["parent/511",[322,3.68]],["name/512",[49,55.389]],["parent/512",[322,3.68]],["name/513",[325,45.834]],["parent/513",[]],["name/514",[1,28.309]],["parent/514",[325,4.461]],["name/515",[326,60.497]],["parent/515",[325,4.461]],["name/516",[327,60.497]],["parent/516",[325,4.461]],["name/517",[328,60.497]],["parent/517",[325,4.461]],["name/518",[329,60.497]],["parent/518",[325,4.461]],["name/519",[330,37.81]],["parent/519",[]],["name/520",[1,28.309]],["parent/520",[330,3.68]],["name/521",[241,52.024]],["parent/521",[330,3.68]],["name/522",[242,52.024]],["parent/522",[330,3.68]],["name/523",[11,40.129]],["parent/523",[330,3.68]],["name/524",[12,40.129]],["parent/524",[330,3.68]],["name/525",[243,55.389]],["parent/525",[330,3.68]],["name/526",[244,55.389]],["parent/526",[330,3.68]],["name/527",[249,52.024]],["parent/527",[330,3.68]],["name/528",[250,52.024]],["parent/528",[330,3.68]],["name/529",[8,55.389]],["parent/529",[330,3.68]],["name/530",[9,55.389]],["parent/530",[330,3.68]],["name/531",[251,52.024]],["parent/531",[330,3.68]],["name/532",[252,55.389]],["parent/532",[330,3.68]],["name/533",[331,52.024]],["parent/533",[]],["name/534",[1,28.309]],["parent/534",[331,5.063]],["name/535",[332,60.497]],["parent/535",[331,5.063]],["name/536",[333,45.834]],["parent/536",[]],["name/537",[1,28.309]],["parent/537",[333,4.461]],["name/538",[334,60.497]],["parent/538",[333,4.461]],["name/539",[335,60.497]],["parent/539",[333,4.461]],["name/540",[336,60.497]],["parent/540",[333,4.461]],["name/541",[337,60.497]],["parent/541",[333,4.461]],["name/542",[338,21.049]],["parent/542",[]],["name/543",[339,60.497]],["parent/543",[338,2.049]],["name/544",[340,60.497]],["parent/544",[338,2.049]],["name/545",[341,60.497]],["parent/545",[338,2.049]],["name/546",[342,60.497]],["parent/546",[338,2.049]],["name/547",[343,60.497]],["parent/547",[338,2.049]],["name/548",[344,60.497]],["parent/548",[338,2.049]],["name/549",[345,60.497]],["parent/549",[338,2.049]],["name/550",[251,52.024]],["parent/550",[338,2.049]],["name/551",[346,60.497]],["parent/551",[338,2.049]],["name/552",[347,60.497]],["parent/552",[338,2.049]],["name/553",[348,60.497]],["parent/553",[338,2.049]],["name/554",[349,60.497]],["parent/554",[338,2.049]],["name/555",[350,60.497]],["parent/555",[338,2.049]],["name/556",[351,60.497]],["parent/556",[338,2.049]],["name/557",[352,60.497]],["parent/557",[338,2.049]],["name/558",[353,60.497]],["parent/558",[338,2.049]],["name/559",[354,60.497]],["parent/559",[338,2.049]],["name/560",[355,60.497]],["parent/560",[338,2.049]],["name/561",[356,60.497]],["parent/561",[338,2.049]],["name/562",[357,60.497]],["parent/562",[338,2.049]],["name/563",[358,60.497]],["parent/563",[338,2.049]],["name/564",[359,60.497]],["parent/564",[338,2.049]],["name/565",[360,60.497]],["parent/565",[338,2.049]],["name/566",[361,60.497]],["parent/566",[338,2.049]],["name/567",[362,60.497]],["parent/567",[338,2.049]],["name/568",[363,60.497]],["parent/568",[338,2.049]],["name/569",[364,60.497]],["parent/569",[338,2.049]],["name/570",[365,60.497]],["parent/570",[338,2.049]],["name/571",[366,60.497]],["parent/571",[338,2.049]],["name/572",[367,60.497]],["parent/572",[338,2.049]],["name/573",[368,60.497]],["parent/573",[338,2.049]],["name/574",[369,60.497]],["parent/574",[338,2.049]],["name/575",[370,60.497]],["parent/575",[338,2.049]],["name/576",[371,60.497]],["parent/576",[338,2.049]],["name/577",[372,60.497]],["parent/577",[338,2.049]],["name/578",[373,60.497]],["parent/578",[338,2.049]],["name/579",[374,60.497]],["parent/579",[338,2.049]],["name/580",[375,60.497]],["parent/580",[338,2.049]],["name/581",[376,60.497]],["parent/581",[338,2.049]],["name/582",[377,60.497]],["parent/582",[338,2.049]],["name/583",[378,60.497]],["parent/583",[338,2.049]],["name/584",[379,60.497]],["parent/584",[338,2.049]],["name/585",[380,60.497]],["parent/585",[338,2.049]],["name/586",[381,60.497]],["parent/586",[338,2.049]],["name/587",[382,60.497]],["parent/587",[338,2.049]],["name/588",[383,60.497]],["parent/588",[338,2.049]],["name/589",[384,60.497]],["parent/589",[338,2.049]],["name/590",[385,60.497]],["parent/590",[338,2.049]],["name/591",[386,60.497]],["parent/591",[338,2.049]],["name/592",[387,60.497]],["parent/592",[338,2.049]],["name/593",[388,60.497]],["parent/593",[338,2.049]],["name/594",[389,60.497]],["parent/594",[338,2.049]],["name/595",[390,60.497]],["parent/595",[338,2.049]],["name/596",[391,60.497]],["parent/596",[338,2.049]],["name/597",[392,60.497]],["parent/597",[338,2.049]],["name/598",[393,60.497]],["parent/598",[338,2.049]],["name/599",[394,60.497]],["parent/599",[338,2.049]],["name/600",[395,60.497]],["parent/600",[338,2.049]],["name/601",[396,60.497]],["parent/601",[338,2.049]],["name/602",[397,60.497]],["parent/602",[338,2.049]],["name/603",[398,60.497]],["parent/603",[338,2.049]],["name/604",[399,60.497]],["parent/604",[338,2.049]],["name/605",[400,60.497]],["parent/605",[338,2.049]],["name/606",[401,60.497]],["parent/606",[338,2.049]],["name/607",[402,60.497]],["parent/607",[338,2.049]],["name/608",[403,60.497]],["parent/608",[338,2.049]],["name/609",[404,60.497]],["parent/609",[338,2.049]],["name/610",[405,60.497]],["parent/610",[338,2.049]],["name/611",[406,60.497]],["parent/611",[338,2.049]],["name/612",[407,60.497]],["parent/612",[338,2.049]],["name/613",[408,60.497]],["parent/613",[338,2.049]],["name/614",[409,60.497]],["parent/614",[338,2.049]],["name/615",[410,60.497]],["parent/615",[338,2.049]],["name/616",[411,60.497]],["parent/616",[338,2.049]],["name/617",[412,60.497]],["parent/617",[338,2.049]],["name/618",[413,60.497]],["parent/618",[338,2.049]],["name/619",[414,41.038]],["parent/619",[]],["name/620",[415,60.497]],["parent/620",[414,3.994]],["name/621",[416,60.497]],["parent/621",[414,3.994]],["name/622",[417,60.497]],["parent/622",[414,3.994]],["name/623",[302,34.848]],["parent/623",[414,3.994]],["name/624",[418,60.497]],["parent/624",[414,3.994]],["name/625",[419,60.497]],["parent/625",[414,3.994]],["name/626",[420,60.497]],["parent/626",[414,3.994]],["name/627",[421,60.497]],["parent/627",[414,3.994]],["name/628",[422,60.497]],["parent/628",[414,3.994]],["name/629",[423,45.834]],["parent/629",[]],["name/630",[424,60.497]],["parent/630",[423,4.461]],["name/631",[425,60.497]],["parent/631",[423,4.461]],["name/632",[426,60.497]],["parent/632",[423,4.461]],["name/633",[427,60.497]],["parent/633",[423,4.461]],["name/634",[428,60.497]],["parent/634",[423,4.461]]],"invertedIndex":[["acltoken",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{}}}],["addcrlpath",{"_index":63,"name":{"85":{}},"parent":{}}],["addcrlvalue",{"_index":65,"name":{"87":{}},"parent":{}}],["addenabledciphersuite",{"_index":75,"name":{"97":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":78,"name":{"100":{}},"parent":{}}],["adderror",{"_index":335,"name":{"539":{}},"parent":{}}],["agentinfo",{"_index":340,"name":{"544":{}},"parent":{}}],["blockingqueryoptions",{"_index":10,"name":{"10":{}},"parent":{"11":{},"12":{},"13":{},"14":{},"15":{}}}],["catalogdatacenters",{"_index":369,"name":{"574":{}},"parent":{}}],["catalognodes",{"_index":370,"name":{"575":{}},"parent":{}}],["catalognodeservices",{"_index":380,"name":{"585":{}},"parent":{}}],["catalognodeserviceswithoptions",{"_index":381,"name":{"586":{}},"parent":{}}],["catalognodeswithoptions",{"_index":371,"name":{"576":{}},"parent":{}}],["catalogservicenodes",{"_index":367,"name":{"572":{}},"parent":{}}],["catalogservicenodeswithoptions",{"_index":368,"name":{"573":{}},"parent":{}}],["catalogservices",{"_index":378,"name":{"583":{}},"parent":{}}],["catalogserviceswithoptions",{"_index":379,"name":{"584":{}},"parent":{}}],["cause",{"_index":426,"name":{"632":{}},"parent":{}}],["check",{"_index":15,"name":{"16":{}},"parent":{"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{}}}],["checklist",{"_index":28,"name":{"34":{}},"parent":{"35":{},"36":{},"37":{},"38":{},"39":{}}}],["checkoptions",{"_index":31,"name":{"40":{}},"parent":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{}}}],["checkqueryoptions",{"_index":50,"name":{"70":{}},"parent":{"71":{},"72":{},"73":{},"74":{},"75":{}}}],["cloneacltoken",{"_index":356,"name":{"561":{}},"parent":{}}],["close",{"_index":413,"name":{"618":{}},"parent":{}}],["constructor",{"_index":1,"name":{"1":{},"11":{},"17":{},"35":{},"41":{},"71":{},"77":{},"244":{},"256":{},"262":{},"268":{},"286":{},"292":{},"298":{},"308":{},"324":{},"330":{},"340":{},"348":{},"358":{},"364":{},"370":{},"398":{},"404":{},"416":{},"434":{},"442":{},"448":{},"454":{},"472":{},"480":{},"494":{},"500":{},"514":{},"520":{},"534":{},"537":{}},"parent":{}}],["consulclient",{"_index":338,"name":{"542":{}},"parent":{"543":{},"544":{},"545":{},"546":{},"547":{},"548":{},"549":{},"550":{},"551":{},"552":{},"553":{},"554":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"566":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"601":{},"602":{},"603":{},"604":{},"605":{},"606":{},"607":{},"608":{},"609":{},"610":{},"611":{},"612":{},"613":{},"614":{},"615":{},"616":{},"617":{},"618":{}}}],["consulclientoptions",{"_index":55,"name":{"76":{}},"parent":{"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{}}}],["coordinate",{"_index":207,"name":{"243":{}},"parent":{"244":{},"245":{},"246":{},"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{}}}],["coordinatedatacenters",{"_index":343,"name":{"547":{}},"parent":{}}],["coordinatelist",{"_index":218,"name":{"255":{}},"parent":{"256":{},"257":{},"258":{},"259":{},"260":{}}}],["coordinatenodes",{"_index":341,"name":{"545":{}},"parent":{}}],["coordinatenodeswithoptions",{"_index":342,"name":{"546":{}},"parent":{}}],["create",{"_index":339,"name":{"543":{}},"parent":{}}],["createacltoken",{"_index":354,"name":{"559":{}},"parent":{}}],["createpreparedquery",{"_index":406,"name":{"611":{}},"parent":{}}],["createsession",{"_index":396,"name":{"601":{}},"parent":{}}],["createsessionwithoptions",{"_index":397,"name":{"602":{}},"parent":{}}],["dccoordinates",{"_index":219,"name":{"261":{}},"parent":{"262":{},"263":{},"264":{},"265":{},"266":{}}}],["deletepreparedquery",{"_index":410,"name":{"615":{}},"parent":{}}],["deletevalue",{"_index":347,"name":{"552":{}},"parent":{}}],["deletevalues",{"_index":350,"name":{"555":{}},"parent":{}}],["deregistercheck",{"_index":385,"name":{"590":{}},"parent":{}}],["deregisterservice",{"_index":366,"name":{"571":{}},"parent":{}}],["destroyacltoken",{"_index":359,"name":{"564":{}},"parent":{}}],["destroysession",{"_index":405,"name":{"610":{}},"parent":{}}],["event",{"_index":224,"name":{"267":{}},"parent":{"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{}}}],["eventlist",{"_index":235,"name":{"285":{}},"parent":{"286":{},"287":{},"288":{},"289":{},"290":{}}}],["eventlistoptions",{"_index":236,"name":{"291":{}},"parent":{"292":{},"293":{},"294":{},"295":{},"296":{}}}],["eventoptions",{"_index":237,"name":{"297":{}},"parent":{"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{}}}],["events",{"_index":418,"name":{"624":{}},"parent":{}}],["executepreparedquery",{"_index":411,"name":{"616":{}},"parent":{}}],["executepreparedquerywithoptions",{"_index":412,"name":{"617":{}},"parent":{}}],["failcheck",{"_index":390,"name":{"595":{}},"parent":{}}],["failcheckwithnote",{"_index":391,"name":{"596":{}},"parent":{}}],["failed",{"_index":428,"name":{"634":{}},"parent":{}}],["fireevent",{"_index":360,"name":{"565":{}},"parent":{}}],["fireeventwithoptions",{"_index":361,"name":{"566":{}},"parent":{}}],["getacltoken",{"_index":56,"name":{"78":{}},"parent":{}}],["getacquiresession",{"_index":255,"name":{"331":{}},"parent":{}}],["getaddress",{"_index":267,"name":{"349":{},"417":{},"455":{}},"parent":{}}],["getadj",{"_index":208,"name":{"245":{}},"parent":{}}],["getallpreparedqueries",{"_index":408,"name":{"613":{}},"parent":{}}],["getalpnversions",{"_index":58,"name":{"80":{}},"parent":{}}],["getbehavior",{"_index":323,"name":{"501":{}},"parent":{}}],["getblockingoptions",{"_index":51,"name":{"72":{},"293":{},"365":{},"473":{}},"parent":{}}],["getcasindex",{"_index":257,"name":{"333":{}},"parent":{}}],["getchecklistoptions",{"_index":313,"name":{"457":{}},"parent":{}}],["getcheckoptions",{"_index":315,"name":{"459":{}},"parent":{}}],["getchecks",{"_index":308,"name":{"435":{},"481":{},"503":{}},"parent":{}}],["getconnecttimeout",{"_index":60,"name":{"82":{}},"parent":{}}],["getcreateindex",{"_index":239,"name":{"309":{},"483":{}},"parent":{}}],["getcrlpaths",{"_index":62,"name":{"84":{}},"parent":{}}],["getcrlvalues",{"_index":64,"name":{"86":{}},"parent":{}}],["getdatacenter",{"_index":220,"name":{"263":{}},"parent":{}}],["getdc",{"_index":66,"name":{"88":{},"405":{}},"parent":{}}],["getdcs",{"_index":276,"name":{"371":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":68,"name":{"90":{}},"parent":{}}],["getdefaulthost",{"_index":70,"name":{"92":{}},"parent":{}}],["getdefaultport",{"_index":72,"name":{"94":{}},"parent":{}}],["getderegisterafter",{"_index":32,"name":{"42":{}},"parent":{}}],["getdnsttl",{"_index":278,"name":{"373":{},"407":{}},"parent":{}}],["getenabledciphersuites",{"_index":74,"name":{"96":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":76,"name":{"98":{}},"parent":{}}],["geterr",{"_index":210,"name":{"247":{}},"parent":{}}],["geterrors",{"_index":334,"name":{"538":{}},"parent":{}}],["geterrorssize",{"_index":336,"name":{"540":{}},"parent":{}}],["getfailovers",{"_index":298,"name":{"409":{}},"parent":{}}],["getflags",{"_index":241,"name":{"311":{},"335":{},"521":{}},"parent":{}}],["getgrpc",{"_index":34,"name":{"44":{}},"parent":{}}],["getheight",{"_index":212,"name":{"249":{}},"parent":{}}],["gethttp",{"_index":38,"name":{"48":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":85,"name":{"107":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":87,"name":{"109":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":89,"name":{"111":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":91,"name":{"113":{}},"parent":{}}],["getid",{"_index":2,"name":{"2":{},"18":{},"50":{},"269":{},"343":{},"375":{},"419":{},"461":{},"485":{}},"parent":{}}],["getidletimeout",{"_index":93,"name":{"115":{}},"parent":{}}],["getidletimeoutunit",{"_index":95,"name":{"117":{}},"parent":{}}],["getindex",{"_index":11,"name":{"12":{},"36":{},"257":{},"287":{},"325":{},"359":{},"443":{},"449":{},"487":{},"495":{},"523":{}},"parent":{}}],["getinitialsettings",{"_index":97,"name":{"119":{}},"parent":{}}],["getinterval",{"_index":40,"name":{"52":{}},"parent":{}}],["getjdksslengineoptions",{"_index":99,"name":{"121":{}},"parent":{}}],["getkeepalivetimeout",{"_index":103,"name":{"125":{}},"parent":{}}],["getkey",{"_index":243,"name":{"313":{},"525":{}},"parent":{}}],["getkeys",{"_index":344,"name":{"548":{}},"parent":{}}],["getkeystoreoptions",{"_index":105,"name":{"127":{}},"parent":{}}],["getkeyswithoptions",{"_index":345,"name":{"549":{}},"parent":{}}],["getlanaddress",{"_index":269,"name":{"351":{}},"parent":{}}],["getlimit",{"_index":295,"name":{"399":{}},"parent":{}}],["getlist",{"_index":29,"name":{"38":{},"259":{},"289":{},"327":{},"361":{},"445":{},"451":{},"497":{}},"parent":{}}],["getlocaladdress",{"_index":107,"name":{"129":{}},"parent":{}}],["getlockdelay",{"_index":319,"name":{"489":{},"505":{}},"parent":{}}],["getlockindex",{"_index":245,"name":{"315":{}},"parent":{}}],["getlogactivity",{"_index":109,"name":{"131":{}},"parent":{}}],["getltime",{"_index":225,"name":{"271":{}},"parent":{}}],["getmaxchunksize",{"_index":111,"name":{"133":{}},"parent":{}}],["getmaxheadersize",{"_index":113,"name":{"135":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":115,"name":{"137":{}},"parent":{}}],["getmaxpoolsize",{"_index":117,"name":{"139":{}},"parent":{}}],["getmaxredirects",{"_index":119,"name":{"141":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":121,"name":{"143":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":123,"name":{"145":{},"149":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":125,"name":{"147":{},"151":{}},"parent":{}}],["getmeta",{"_index":280,"name":{"377":{},"421":{},"463":{}},"parent":{}}],["getmetricsname",{"_index":127,"name":{"153":{}},"parent":{}}],["getmodifyindex",{"_index":247,"name":{"317":{}},"parent":{}}],["getname",{"_index":4,"name":{"4":{},"20":{},"54":{},"273":{},"295":{},"353":{},"379":{},"423":{},"465":{},"507":{}},"parent":{}}],["getnear",{"_index":53,"name":{"74":{},"367":{},"401":{},"475":{}},"parent":{}}],["getnearestn",{"_index":282,"name":{"381":{}},"parent":{}}],["getnode",{"_index":214,"name":{"251":{},"275":{},"299":{},"425":{},"437":{},"491":{},"509":{}},"parent":{}}],["getnodeaddress",{"_index":303,"name":{"427":{}},"parent":{}}],["getnodename",{"_index":16,"name":{"22":{}},"parent":{}}],["getnodes",{"_index":300,"name":{"411":{}},"parent":{}}],["getnotes",{"_index":18,"name":{"24":{},"56":{}},"parent":{}}],["getopensslengineoptions",{"_index":129,"name":{"155":{}},"parent":{}}],["getoperationssize",{"_index":332,"name":{"535":{}},"parent":{}}],["getopindex",{"_index":326,"name":{"515":{}},"parent":{}}],["getoutput",{"_index":20,"name":{"26":{}},"parent":{}}],["getpassing",{"_index":284,"name":{"383":{}},"parent":{}}],["getpayload",{"_index":227,"name":{"277":{},"301":{}},"parent":{}}],["getpemkeycertoptions",{"_index":131,"name":{"157":{}},"parent":{}}],["getpemtrustoptions",{"_index":133,"name":{"159":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":135,"name":{"161":{}},"parent":{}}],["getpfxtrustoptions",{"_index":137,"name":{"163":{}},"parent":{}}],["getpipelininglimit",{"_index":141,"name":{"167":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":143,"name":{"169":{}},"parent":{}}],["getport",{"_index":305,"name":{"429":{},"467":{}},"parent":{}}],["getpreparedquery",{"_index":407,"name":{"612":{}},"parent":{}}],["getprotocolversion",{"_index":145,"name":{"171":{}},"parent":{}}],["getproxyoptions",{"_index":147,"name":{"173":{}},"parent":{}}],["getreason",{"_index":264,"name":{"345":{}},"parent":{}}],["getreceivebuffersize",{"_index":149,"name":{"175":{}},"parent":{}}],["getreleasesession",{"_index":259,"name":{"337":{}},"parent":{}}],["getresultssize",{"_index":337,"name":{"541":{}},"parent":{}}],["getrules",{"_index":6,"name":{"6":{}},"parent":{}}],["getscriptargs",{"_index":42,"name":{"58":{}},"parent":{}}],["getsendbuffersize",{"_index":155,"name":{"181":{}},"parent":{}}],["getservers",{"_index":222,"name":{"265":{}},"parent":{}}],["getservice",{"_index":229,"name":{"279":{},"303":{},"385":{},"413":{},"439":{}},"parent":{}}],["getserviceid",{"_index":22,"name":{"28":{},"60":{}},"parent":{}}],["getservicename",{"_index":24,"name":{"30":{}},"parent":{}}],["getsession",{"_index":249,"name":{"319":{},"387":{},"527":{}},"parent":{}}],["getsolinger",{"_index":159,"name":{"185":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":163,"name":{"189":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":165,"name":{"191":{}},"parent":{}}],["getstatus",{"_index":26,"name":{"32":{},"62":{}},"parent":{}}],["gettag",{"_index":231,"name":{"281":{},"305":{},"477":{}},"parent":{}}],["gettags",{"_index":286,"name":{"389":{},"431":{},"469":{}},"parent":{}}],["gettcp",{"_index":44,"name":{"64":{}},"parent":{}}],["gettemplateregexp",{"_index":288,"name":{"391":{}},"parent":{}}],["gettemplatetype",{"_index":290,"name":{"393":{}},"parent":{}}],["gettimeout",{"_index":177,"name":{"203":{}},"parent":{}}],["gettoken",{"_index":292,"name":{"395":{}},"parent":{}}],["gettrafficclass",{"_index":179,"name":{"205":{}},"parent":{}}],["gettruststoreoptions",{"_index":183,"name":{"209":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":188,"name":{"215":{},"217":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":190,"name":{"219":{},"220":{}},"parent":{}}],["getttl",{"_index":48,"name":{"68":{},"511":{}},"parent":{}}],["gettype",{"_index":8,"name":{"8":{},"529":{}},"parent":{}}],["getuseragent",{"_index":195,"name":{"225":{}},"parent":{}}],["getvalue",{"_index":251,"name":{"321":{},"531":{},"550":{}},"parent":{}}],["getvalues",{"_index":348,"name":{"553":{}},"parent":{}}],["getvalueswithoptions",{"_index":349,"name":{"554":{}},"parent":{}}],["getvaluewithoptions",{"_index":346,"name":{"551":{}},"parent":{}}],["getvec",{"_index":216,"name":{"253":{}},"parent":{}}],["getversion",{"_index":233,"name":{"283":{}},"parent":{}}],["getwait",{"_index":13,"name":{"14":{}},"parent":{}}],["getwanaddress",{"_index":271,"name":{"355":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":201,"name":{"231":{},"237":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":203,"name":{"233":{},"239":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":205,"name":{"235":{},"241":{}},"parent":{}}],["getwhat",{"_index":328,"name":{"517":{}},"parent":{}}],["healthchecks",{"_index":372,"name":{"577":{}},"parent":{}}],["healthcheckswithoptions",{"_index":373,"name":{"578":{}},"parent":{}}],["healthservicenodes",{"_index":376,"name":{"581":{}},"parent":{}}],["healthservicenodeswithoptions",{"_index":377,"name":{"582":{}},"parent":{}}],["healthstate",{"_index":374,"name":{"579":{}},"parent":{}}],["healthstatewithoptions",{"_index":375,"name":{"580":{}},"parent":{}}],["infoacltoken",{"_index":358,"name":{"563":{}},"parent":{}}],["infosession",{"_index":398,"name":{"603":{}},"parent":{}}],["infosessionwithoptions",{"_index":399,"name":{"604":{}},"parent":{}}],["isenable",{"_index":262,"name":{"341":{}},"parent":{}}],["isfollowredirects",{"_index":79,"name":{"101":{}},"parent":{}}],["isforcesni",{"_index":81,"name":{"103":{}},"parent":{}}],["isgrpctls",{"_index":36,"name":{"46":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":83,"name":{"105":{}},"parent":{}}],["iskeepalive",{"_index":101,"name":{"123":{}},"parent":{}}],["ispipelining",{"_index":139,"name":{"165":{}},"parent":{}}],["isreuseaddress",{"_index":151,"name":{"177":{}},"parent":{}}],["isreuseport",{"_index":153,"name":{"179":{}},"parent":{}}],["issendunmaskedframes",{"_index":157,"name":{"183":{}},"parent":{}}],["isssl",{"_index":161,"name":{"187":{}},"parent":{}}],["istcpcork",{"_index":167,"name":{"193":{}},"parent":{}}],["istcpfastopen",{"_index":169,"name":{"195":{}},"parent":{}}],["istcpkeepalive",{"_index":171,"name":{"197":{}},"parent":{}}],["istcpnodelay",{"_index":173,"name":{"199":{}},"parent":{}}],["istcpquickack",{"_index":175,"name":{"201":{}},"parent":{}}],["istlsskipverify",{"_index":46,"name":{"66":{}},"parent":{}}],["istrustall",{"_index":181,"name":{"207":{}},"parent":{}}],["istryusecompression",{"_index":185,"name":{"211":{}},"parent":{}}],["isusealpn",{"_index":191,"name":{"221":{}},"parent":{}}],["isusepooledbuffers",{"_index":193,"name":{"223":{}},"parent":{}}],["isuseragentenabled",{"_index":197,"name":{"227":{}},"parent":{}}],["isverifyhost",{"_index":199,"name":{"229":{}},"parent":{}}],["key",{"_index":415,"name":{"620":{}},"parent":{}}],["keyprefix",{"_index":416,"name":{"621":{}},"parent":{}}],["keyvalue",{"_index":238,"name":{"307":{}},"parent":{"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"322":{}}}],["keyvaluelist",{"_index":253,"name":{"323":{}},"parent":{"324":{},"325":{},"326":{},"327":{},"328":{}}}],["keyvalueoptions",{"_index":254,"name":{"329":{}},"parent":{"330":{},"331":{},"332":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{}}}],["leaderstatus",{"_index":394,"name":{"599":{}},"parent":{}}],["listacltokens",{"_index":357,"name":{"562":{}},"parent":{}}],["listevents",{"_index":362,"name":{"567":{}},"parent":{}}],["listeventswithoptions",{"_index":363,"name":{"568":{}},"parent":{}}],["listnodesessions",{"_index":403,"name":{"608":{}},"parent":{}}],["listnodesessionswithoptions",{"_index":404,"name":{"609":{}},"parent":{}}],["listsessions",{"_index":401,"name":{"606":{}},"parent":{}}],["listsessionswithoptions",{"_index":402,"name":{"607":{}},"parent":{}}],["localchecks",{"_index":383,"name":{"588":{}},"parent":{}}],["localservices",{"_index":382,"name":{"587":{}},"parent":{}}],["maintenanceoptions",{"_index":261,"name":{"339":{}},"parent":{"340":{},"341":{},"342":{},"343":{},"344":{},"345":{},"346":{}}}],["maintenanceservice",{"_index":365,"name":{"570":{}},"parent":{}}],["nextresult",{"_index":425,"name":{"631":{}},"parent":{}}],["node",{"_index":266,"name":{"347":{}},"parent":{"348":{},"349":{},"350":{},"351":{},"352":{},"353":{},"354":{},"355":{},"356":{}}}],["nodelist",{"_index":273,"name":{"357":{}},"parent":{"358":{},"359":{},"360":{},"361":{},"362":{}}}],["nodequeryoptions",{"_index":274,"name":{"363":{}},"parent":{"364":{},"365":{},"366":{},"367":{},"368":{}}}],["nodes",{"_index":419,"name":{"625":{}},"parent":{}}],["passcheck",{"_index":386,"name":{"591":{}},"parent":{}}],["passcheckwithnote",{"_index":387,"name":{"592":{}},"parent":{}}],["peersstatus",{"_index":395,"name":{"600":{}},"parent":{}}],["preparedquerydefinition",{"_index":275,"name":{"369":{}},"parent":{"370":{},"371":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{},"381":{},"382":{},"383":{},"384":{},"385":{},"386":{},"387":{},"388":{},"389":{},"390":{},"391":{},"392":{},"393":{},"394":{},"395":{},"396":{}}}],["preparedqueryexecuteoptions",{"_index":294,"name":{"397":{}},"parent":{"398":{},"399":{},"400":{},"401":{},"402":{}}}],["preparedqueryexecuteresponse",{"_index":297,"name":{"403":{}},"parent":{"404":{},"405":{},"406":{},"407":{},"408":{},"409":{},"410":{},"411":{},"412":{},"413":{},"414":{}}}],["prevresult",{"_index":424,"name":{"630":{}},"parent":{}}],["putvalue",{"_index":351,"name":{"556":{}},"parent":{}}],["putvaluewithoptions",{"_index":352,"name":{"557":{}},"parent":{}}],["registercheck",{"_index":384,"name":{"589":{}},"parent":{}}],["registerservice",{"_index":364,"name":{"569":{}},"parent":{}}],["renewsession",{"_index":400,"name":{"605":{}},"parent":{}}],["service",{"_index":302,"name":{"415":{},"623":{}},"parent":{"416":{},"417":{},"418":{},"419":{},"420":{},"421":{},"422":{},"423":{},"424":{},"425":{},"426":{},"427":{},"428":{},"429":{},"430":{},"431":{},"432":{}}}],["serviceentry",{"_index":307,"name":{"433":{}},"parent":{"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"440":{}}}],["serviceentrylist",{"_index":310,"name":{"441":{}},"parent":{"442":{},"443":{},"444":{},"445":{},"446":{}}}],["servicelist",{"_index":311,"name":{"447":{}},"parent":{"448":{},"449":{},"450":{},"451":{},"452":{}}}],["serviceoptions",{"_index":312,"name":{"453":{}},"parent":{"454":{},"455":{},"456":{},"457":{},"458":{},"459":{},"460":{},"461":{},"462":{},"463":{},"464":{},"465":{},"466":{},"467":{},"468":{},"469":{},"470":{}}}],["servicequeryoptions",{"_index":317,"name":{"471":{}},"parent":{"472":{},"473":{},"474":{},"475":{},"476":{},"477":{},"478":{}}}],["services",{"_index":417,"name":{"622":{}},"parent":{}}],["session",{"_index":318,"name":{"479":{}},"parent":{"480":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{}}}],["sessionlist",{"_index":321,"name":{"493":{}},"parent":{"494":{},"495":{},"496":{},"497":{},"498":{}}}],["sessionoptions",{"_index":322,"name":{"499":{}},"parent":{"500":{},"501":{},"502":{},"503":{},"504":{},"505":{},"506":{},"507":{},"508":{},"509":{},"510":{},"511":{},"512":{}}}],["setacltoken",{"_index":57,"name":{"79":{}},"parent":{}}],["setacquiresession",{"_index":256,"name":{"332":{}},"parent":{}}],["setaddress",{"_index":268,"name":{"350":{},"418":{},"456":{}},"parent":{}}],["setadj",{"_index":209,"name":{"246":{}},"parent":{}}],["setalpnversions",{"_index":59,"name":{"81":{}},"parent":{}}],["setbehavior",{"_index":324,"name":{"502":{}},"parent":{}}],["setblockingoptions",{"_index":52,"name":{"73":{},"294":{},"366":{},"474":{}},"parent":{}}],["setcasindex",{"_index":258,"name":{"334":{}},"parent":{}}],["setchecklistoptions",{"_index":314,"name":{"458":{}},"parent":{}}],["setcheckoptions",{"_index":316,"name":{"460":{}},"parent":{}}],["setchecks",{"_index":309,"name":{"436":{},"482":{},"504":{}},"parent":{}}],["setconnecttimeout",{"_index":61,"name":{"83":{}},"parent":{}}],["setcreateindex",{"_index":240,"name":{"310":{},"484":{}},"parent":{}}],["setdatacenter",{"_index":221,"name":{"264":{}},"parent":{}}],["setdc",{"_index":67,"name":{"89":{},"406":{}},"parent":{}}],["setdcs",{"_index":277,"name":{"372":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":69,"name":{"91":{}},"parent":{}}],["setdefaulthost",{"_index":71,"name":{"93":{}},"parent":{}}],["setdefaultport",{"_index":73,"name":{"95":{}},"parent":{}}],["setderegisterafter",{"_index":33,"name":{"43":{}},"parent":{}}],["setdnsttl",{"_index":279,"name":{"374":{},"408":{}},"parent":{}}],["setenable",{"_index":263,"name":{"342":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":77,"name":{"99":{}},"parent":{}}],["seterr",{"_index":211,"name":{"248":{}},"parent":{}}],["setfailovers",{"_index":299,"name":{"410":{}},"parent":{}}],["setflags",{"_index":242,"name":{"312":{},"336":{},"522":{}},"parent":{}}],["setfollowredirects",{"_index":80,"name":{"102":{}},"parent":{}}],["setforcesni",{"_index":82,"name":{"104":{}},"parent":{}}],["setgrpc",{"_index":35,"name":{"45":{}},"parent":{}}],["setgrpctls",{"_index":37,"name":{"47":{}},"parent":{}}],["sethandler",{"_index":420,"name":{"626":{}},"parent":{}}],["setheight",{"_index":213,"name":{"250":{}},"parent":{}}],["sethttp",{"_index":39,"name":{"49":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":84,"name":{"106":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":86,"name":{"108":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":88,"name":{"110":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":90,"name":{"112":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":92,"name":{"114":{}},"parent":{}}],["setid",{"_index":3,"name":{"3":{},"19":{},"51":{},"270":{},"344":{},"376":{},"420":{},"462":{},"486":{}},"parent":{}}],["setidletimeout",{"_index":94,"name":{"116":{}},"parent":{}}],["setidletimeoutunit",{"_index":96,"name":{"118":{}},"parent":{}}],["setindex",{"_index":12,"name":{"13":{},"37":{},"258":{},"288":{},"326":{},"360":{},"444":{},"450":{},"488":{},"496":{},"524":{}},"parent":{}}],["setinitialsettings",{"_index":98,"name":{"120":{}},"parent":{}}],["setinterval",{"_index":41,"name":{"53":{}},"parent":{}}],["setjdksslengineoptions",{"_index":100,"name":{"122":{}},"parent":{}}],["setkeepalive",{"_index":102,"name":{"124":{}},"parent":{}}],["setkeepalivetimeout",{"_index":104,"name":{"126":{}},"parent":{}}],["setkey",{"_index":244,"name":{"314":{},"526":{}},"parent":{}}],["setkeystoreoptions",{"_index":106,"name":{"128":{}},"parent":{}}],["setlanaddress",{"_index":270,"name":{"352":{}},"parent":{}}],["setlimit",{"_index":296,"name":{"400":{}},"parent":{}}],["setlist",{"_index":30,"name":{"39":{},"260":{},"290":{},"328":{},"362":{},"446":{},"452":{},"498":{}},"parent":{}}],["setlocaladdress",{"_index":108,"name":{"130":{}},"parent":{}}],["setlockdelay",{"_index":320,"name":{"490":{},"506":{}},"parent":{}}],["setlockindex",{"_index":246,"name":{"316":{}},"parent":{}}],["setlogactivity",{"_index":110,"name":{"132":{}},"parent":{}}],["setltime",{"_index":226,"name":{"272":{}},"parent":{}}],["setmaxchunksize",{"_index":112,"name":{"134":{}},"parent":{}}],["setmaxheadersize",{"_index":114,"name":{"136":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":116,"name":{"138":{}},"parent":{}}],["setmaxpoolsize",{"_index":118,"name":{"140":{}},"parent":{}}],["setmaxredirects",{"_index":120,"name":{"142":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":122,"name":{"144":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":124,"name":{"146":{},"150":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":126,"name":{"148":{},"152":{}},"parent":{}}],["setmeta",{"_index":281,"name":{"378":{},"422":{},"464":{}},"parent":{}}],["setmetricsname",{"_index":128,"name":{"154":{}},"parent":{}}],["setmodifyindex",{"_index":248,"name":{"318":{}},"parent":{}}],["setname",{"_index":5,"name":{"5":{},"21":{},"55":{},"274":{},"296":{},"354":{},"380":{},"424":{},"466":{},"508":{}},"parent":{}}],["setnear",{"_index":54,"name":{"75":{},"368":{},"402":{},"476":{}},"parent":{}}],["setnearestn",{"_index":283,"name":{"382":{}},"parent":{}}],["setnode",{"_index":215,"name":{"252":{},"276":{},"300":{},"426":{},"438":{},"492":{},"510":{}},"parent":{}}],["setnodeaddress",{"_index":304,"name":{"428":{}},"parent":{}}],["setnodename",{"_index":17,"name":{"23":{}},"parent":{}}],["setnodes",{"_index":301,"name":{"412":{}},"parent":{}}],["setnotes",{"_index":19,"name":{"25":{},"57":{}},"parent":{}}],["setopensslengineoptions",{"_index":130,"name":{"156":{}},"parent":{}}],["setopindex",{"_index":327,"name":{"516":{}},"parent":{}}],["setoutput",{"_index":21,"name":{"27":{}},"parent":{}}],["setpassing",{"_index":285,"name":{"384":{}},"parent":{}}],["setpayload",{"_index":228,"name":{"278":{},"302":{}},"parent":{}}],["setpemkeycertoptions",{"_index":132,"name":{"158":{}},"parent":{}}],["setpemtrustoptions",{"_index":134,"name":{"160":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":136,"name":{"162":{}},"parent":{}}],["setpfxtrustoptions",{"_index":138,"name":{"164":{}},"parent":{}}],["setpipelining",{"_index":140,"name":{"166":{}},"parent":{}}],["setpipelininglimit",{"_index":142,"name":{"168":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":144,"name":{"170":{}},"parent":{}}],["setport",{"_index":306,"name":{"430":{},"468":{}},"parent":{}}],["setprotocolversion",{"_index":146,"name":{"172":{}},"parent":{}}],["setproxyoptions",{"_index":148,"name":{"174":{}},"parent":{}}],["setreason",{"_index":265,"name":{"346":{}},"parent":{}}],["setreceivebuffersize",{"_index":150,"name":{"176":{}},"parent":{}}],["setreleasesession",{"_index":260,"name":{"338":{}},"parent":{}}],["setreuseaddress",{"_index":152,"name":{"178":{}},"parent":{}}],["setreuseport",{"_index":154,"name":{"180":{}},"parent":{}}],["setrules",{"_index":7,"name":{"7":{}},"parent":{}}],["setscriptargs",{"_index":43,"name":{"59":{}},"parent":{}}],["setsendbuffersize",{"_index":156,"name":{"182":{}},"parent":{}}],["setsendunmaskedframes",{"_index":158,"name":{"184":{}},"parent":{}}],["setservers",{"_index":223,"name":{"266":{}},"parent":{}}],["setservice",{"_index":230,"name":{"280":{},"304":{},"386":{},"414":{},"440":{}},"parent":{}}],["setserviceid",{"_index":23,"name":{"29":{},"61":{}},"parent":{}}],["setservicename",{"_index":25,"name":{"31":{}},"parent":{}}],["setsession",{"_index":250,"name":{"320":{},"388":{},"528":{}},"parent":{}}],["setsolinger",{"_index":160,"name":{"186":{}},"parent":{}}],["setssl",{"_index":162,"name":{"188":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":164,"name":{"190":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":166,"name":{"192":{}},"parent":{}}],["setstatus",{"_index":27,"name":{"33":{},"63":{}},"parent":{}}],["settag",{"_index":232,"name":{"282":{},"306":{},"478":{}},"parent":{}}],["settags",{"_index":287,"name":{"390":{},"432":{},"470":{}},"parent":{}}],["settcp",{"_index":45,"name":{"65":{}},"parent":{}}],["settcpcork",{"_index":168,"name":{"194":{}},"parent":{}}],["settcpfastopen",{"_index":170,"name":{"196":{}},"parent":{}}],["settcpkeepalive",{"_index":172,"name":{"198":{}},"parent":{}}],["settcpnodelay",{"_index":174,"name":{"200":{}},"parent":{}}],["settcpquickack",{"_index":176,"name":{"202":{}},"parent":{}}],["settemplateregexp",{"_index":289,"name":{"392":{}},"parent":{}}],["settemplatetype",{"_index":291,"name":{"394":{}},"parent":{}}],["settimeout",{"_index":178,"name":{"204":{}},"parent":{}}],["settlsskipverify",{"_index":47,"name":{"67":{}},"parent":{}}],["settoken",{"_index":293,"name":{"396":{}},"parent":{}}],["settrafficclass",{"_index":180,"name":{"206":{}},"parent":{}}],["settrustall",{"_index":182,"name":{"208":{}},"parent":{}}],["settruststoreoptions",{"_index":184,"name":{"210":{}},"parent":{}}],["settryusecompression",{"_index":186,"name":{"212":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":187,"name":{"213":{},"214":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":189,"name":{"216":{},"218":{}},"parent":{}}],["setttl",{"_index":49,"name":{"69":{},"512":{}},"parent":{}}],["settype",{"_index":9,"name":{"9":{},"530":{}},"parent":{}}],["setusealpn",{"_index":192,"name":{"222":{}},"parent":{}}],["setusepooledbuffers",{"_index":194,"name":{"224":{}},"parent":{}}],["setuseragent",{"_index":196,"name":{"226":{}},"parent":{}}],["setuseragentenabled",{"_index":198,"name":{"228":{}},"parent":{}}],["setvalue",{"_index":252,"name":{"322":{},"532":{}},"parent":{}}],["setvec",{"_index":217,"name":{"254":{}},"parent":{}}],["setverifyhost",{"_index":200,"name":{"230":{}},"parent":{}}],["setversion",{"_index":234,"name":{"284":{}},"parent":{}}],["setwait",{"_index":14,"name":{"15":{}},"parent":{}}],["setwanaddress",{"_index":272,"name":{"356":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":202,"name":{"232":{},"238":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":204,"name":{"234":{},"240":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":206,"name":{"236":{},"242":{}},"parent":{}}],["setwhat",{"_index":329,"name":{"518":{}},"parent":{}}],["start",{"_index":421,"name":{"627":{}},"parent":{}}],["stop",{"_index":422,"name":{"628":{}},"parent":{}}],["succeeded",{"_index":427,"name":{"633":{}},"parent":{}}],["transaction",{"_index":353,"name":{"558":{}},"parent":{}}],["txnerror",{"_index":325,"name":{"513":{}},"parent":{"514":{},"515":{},"516":{},"517":{},"518":{}}}],["txnkvoperation",{"_index":330,"name":{"519":{}},"parent":{"520":{},"521":{},"522":{},"523":{},"524":{},"525":{},"526":{},"527":{},"528":{},"529":{},"530":{},"531":{},"532":{}}}],["txnrequest",{"_index":331,"name":{"533":{}},"parent":{"534":{},"535":{}}}],["txnresponse",{"_index":333,"name":{"536":{}},"parent":{"537":{},"538":{},"539":{},"540":{},"541":{}}}],["updateacltoken",{"_index":355,"name":{"560":{}},"parent":{}}],["updatecheck",{"_index":392,"name":{"597":{}},"parent":{}}],["updatecheckwithnote",{"_index":393,"name":{"598":{}},"parent":{}}],["updatepreparedquery",{"_index":409,"name":{"614":{}},"parent":{}}],["warncheck",{"_index":388,"name":{"593":{}},"parent":{}}],["warncheckwithnote",{"_index":389,"name":{"594":{}},"parent":{}}],["watch",{"_index":414,"name":{"619":{}},"parent":{"620":{},"621":{},"622":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{}}}],["watchresult",{"_index":423,"name":{"629":{}},"parent":{"630":{},"631":{},"632":{},"633":{},"634":{}}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"128":"Class","512":"Constructor","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"AclToken","url":"classes/acltoken.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/acltoken.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"AclToken"},{"id":2,"kind":2048,"name":"getId","url":"classes/acltoken.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":3,"kind":2048,"name":"setId","url":"classes/acltoken.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":4,"kind":2048,"name":"getName","url":"classes/acltoken.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":5,"kind":2048,"name":"setName","url":"classes/acltoken.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":6,"kind":2048,"name":"getRules","url":"classes/acltoken.html#getrules","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":7,"kind":2048,"name":"setRules","url":"classes/acltoken.html#setrules","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":8,"kind":2048,"name":"getType","url":"classes/acltoken.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":9,"kind":2048,"name":"setType","url":"classes/acltoken.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AclToken"},{"id":10,"kind":128,"name":"BlockingQueryOptions","url":"classes/blockingqueryoptions.html","classes":"tsd-kind-class"},{"id":11,"kind":512,"name":"constructor","url":"classes/blockingqueryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":12,"kind":2048,"name":"getIndex","url":"classes/blockingqueryoptions.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":13,"kind":2048,"name":"setIndex","url":"classes/blockingqueryoptions.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":14,"kind":2048,"name":"getWait","url":"classes/blockingqueryoptions.html#getwait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":15,"kind":2048,"name":"setWait","url":"classes/blockingqueryoptions.html#setwait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"BlockingQueryOptions"},{"id":16,"kind":128,"name":"Check","url":"classes/check.html","classes":"tsd-kind-class"},{"id":17,"kind":512,"name":"constructor","url":"classes/check.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Check"},{"id":18,"kind":2048,"name":"getId","url":"classes/check.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":19,"kind":2048,"name":"setId","url":"classes/check.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":20,"kind":2048,"name":"getName","url":"classes/check.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":21,"kind":2048,"name":"setName","url":"classes/check.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":22,"kind":2048,"name":"getNodeName","url":"classes/check.html#getnodename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":23,"kind":2048,"name":"setNodeName","url":"classes/check.html#setnodename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":24,"kind":2048,"name":"getNotes","url":"classes/check.html#getnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":25,"kind":2048,"name":"setNotes","url":"classes/check.html#setnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":26,"kind":2048,"name":"getOutput","url":"classes/check.html#getoutput","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":27,"kind":2048,"name":"setOutput","url":"classes/check.html#setoutput","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":28,"kind":2048,"name":"getServiceId","url":"classes/check.html#getserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":29,"kind":2048,"name":"setServiceId","url":"classes/check.html#setserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":30,"kind":2048,"name":"getServiceName","url":"classes/check.html#getservicename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":31,"kind":2048,"name":"setServiceName","url":"classes/check.html#setservicename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":32,"kind":2048,"name":"getStatus","url":"classes/check.html#getstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":33,"kind":2048,"name":"setStatus","url":"classes/check.html#setstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Check"},{"id":34,"kind":128,"name":"CheckList","url":"classes/checklist.html","classes":"tsd-kind-class"},{"id":35,"kind":512,"name":"constructor","url":"classes/checklist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CheckList"},{"id":36,"kind":2048,"name":"getIndex","url":"classes/checklist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":37,"kind":2048,"name":"setIndex","url":"classes/checklist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":38,"kind":2048,"name":"getList","url":"classes/checklist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":39,"kind":2048,"name":"setList","url":"classes/checklist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckList"},{"id":40,"kind":128,"name":"CheckOptions","url":"classes/checkoptions.html","classes":"tsd-kind-class"},{"id":41,"kind":512,"name":"constructor","url":"classes/checkoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CheckOptions"},{"id":42,"kind":2048,"name":"getDeregisterAfter","url":"classes/checkoptions.html#getderegisterafter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":43,"kind":2048,"name":"setDeregisterAfter","url":"classes/checkoptions.html#setderegisterafter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":44,"kind":2048,"name":"getGrpc","url":"classes/checkoptions.html#getgrpc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":45,"kind":2048,"name":"setGrpc","url":"classes/checkoptions.html#setgrpc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":46,"kind":2048,"name":"isGrpcTls","url":"classes/checkoptions.html#isgrpctls","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":47,"kind":2048,"name":"setGrpcTls","url":"classes/checkoptions.html#setgrpctls","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":48,"kind":2048,"name":"getHttp","url":"classes/checkoptions.html#gethttp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":49,"kind":2048,"name":"setHttp","url":"classes/checkoptions.html#sethttp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":50,"kind":2048,"name":"getId","url":"classes/checkoptions.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":51,"kind":2048,"name":"setId","url":"classes/checkoptions.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":52,"kind":2048,"name":"getInterval","url":"classes/checkoptions.html#getinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":53,"kind":2048,"name":"setInterval","url":"classes/checkoptions.html#setinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":54,"kind":2048,"name":"getName","url":"classes/checkoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":55,"kind":2048,"name":"setName","url":"classes/checkoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":56,"kind":2048,"name":"getNotes","url":"classes/checkoptions.html#getnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":57,"kind":2048,"name":"setNotes","url":"classes/checkoptions.html#setnotes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":58,"kind":2048,"name":"getScriptArgs","url":"classes/checkoptions.html#getscriptargs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":59,"kind":2048,"name":"setScriptArgs","url":"classes/checkoptions.html#setscriptargs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":60,"kind":2048,"name":"getServiceId","url":"classes/checkoptions.html#getserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":61,"kind":2048,"name":"setServiceId","url":"classes/checkoptions.html#setserviceid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":62,"kind":2048,"name":"getStatus","url":"classes/checkoptions.html#getstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":63,"kind":2048,"name":"setStatus","url":"classes/checkoptions.html#setstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":64,"kind":2048,"name":"getTcp","url":"classes/checkoptions.html#gettcp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":65,"kind":2048,"name":"setTcp","url":"classes/checkoptions.html#settcp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":66,"kind":2048,"name":"isTlsSkipVerify","url":"classes/checkoptions.html#istlsskipverify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":67,"kind":2048,"name":"setTlsSkipVerify","url":"classes/checkoptions.html#settlsskipverify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":68,"kind":2048,"name":"getTtl","url":"classes/checkoptions.html#getttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":69,"kind":2048,"name":"setTtl","url":"classes/checkoptions.html#setttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckOptions"},{"id":70,"kind":128,"name":"CheckQueryOptions","url":"classes/checkqueryoptions.html","classes":"tsd-kind-class"},{"id":71,"kind":512,"name":"constructor","url":"classes/checkqueryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":72,"kind":2048,"name":"getBlockingOptions","url":"classes/checkqueryoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":73,"kind":2048,"name":"setBlockingOptions","url":"classes/checkqueryoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":74,"kind":2048,"name":"getNear","url":"classes/checkqueryoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":75,"kind":2048,"name":"setNear","url":"classes/checkqueryoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CheckQueryOptions"},{"id":76,"kind":128,"name":"ConsulClientOptions","url":"classes/consulclientoptions.html","classes":"tsd-kind-class"},{"id":77,"kind":512,"name":"constructor","url":"classes/consulclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":78,"kind":2048,"name":"getAclToken","url":"classes/consulclientoptions.html#getacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":79,"kind":2048,"name":"setAclToken","url":"classes/consulclientoptions.html#setacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":80,"kind":2048,"name":"getAlpnVersions","url":"classes/consulclientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":81,"kind":2048,"name":"setAlpnVersions","url":"classes/consulclientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":82,"kind":2048,"name":"getConnectTimeout","url":"classes/consulclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":83,"kind":2048,"name":"setConnectTimeout","url":"classes/consulclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":84,"kind":2048,"name":"getCrlPaths","url":"classes/consulclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":85,"kind":2048,"name":"addCrlPath","url":"classes/consulclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":86,"kind":2048,"name":"getCrlValues","url":"classes/consulclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":87,"kind":2048,"name":"addCrlValue","url":"classes/consulclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":88,"kind":2048,"name":"getDc","url":"classes/consulclientoptions.html#getdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":89,"kind":2048,"name":"setDc","url":"classes/consulclientoptions.html#setdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":90,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/consulclientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":91,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/consulclientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":92,"kind":2048,"name":"getDefaultHost","url":"classes/consulclientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":93,"kind":2048,"name":"setDefaultHost","url":"classes/consulclientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":94,"kind":2048,"name":"getDefaultPort","url":"classes/consulclientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":95,"kind":2048,"name":"setDefaultPort","url":"classes/consulclientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":96,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/consulclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":97,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/consulclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":98,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/consulclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":99,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/consulclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":100,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/consulclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":101,"kind":2048,"name":"isFollowRedirects","url":"classes/consulclientoptions.html#isfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":102,"kind":2048,"name":"setFollowRedirects","url":"classes/consulclientoptions.html#setfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":103,"kind":2048,"name":"isForceSni","url":"classes/consulclientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":104,"kind":2048,"name":"setForceSni","url":"classes/consulclientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":105,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/consulclientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":106,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/consulclientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":107,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/consulclientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":108,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/consulclientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":109,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/consulclientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":110,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/consulclientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":111,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/consulclientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":112,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/consulclientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":113,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/consulclientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":114,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/consulclientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":115,"kind":2048,"name":"getIdleTimeout","url":"classes/consulclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":116,"kind":2048,"name":"setIdleTimeout","url":"classes/consulclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":117,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/consulclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":118,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/consulclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":119,"kind":2048,"name":"getInitialSettings","url":"classes/consulclientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":120,"kind":2048,"name":"setInitialSettings","url":"classes/consulclientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":121,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/consulclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":122,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/consulclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":123,"kind":2048,"name":"isKeepAlive","url":"classes/consulclientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":124,"kind":2048,"name":"setKeepAlive","url":"classes/consulclientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":125,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/consulclientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":126,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/consulclientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":127,"kind":2048,"name":"getKeyStoreOptions","url":"classes/consulclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":128,"kind":2048,"name":"setKeyStoreOptions","url":"classes/consulclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":129,"kind":2048,"name":"getLocalAddress","url":"classes/consulclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":130,"kind":2048,"name":"setLocalAddress","url":"classes/consulclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":131,"kind":2048,"name":"getLogActivity","url":"classes/consulclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":132,"kind":2048,"name":"setLogActivity","url":"classes/consulclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":133,"kind":2048,"name":"getMaxChunkSize","url":"classes/consulclientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":134,"kind":2048,"name":"setMaxChunkSize","url":"classes/consulclientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":135,"kind":2048,"name":"getMaxHeaderSize","url":"classes/consulclientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":136,"kind":2048,"name":"setMaxHeaderSize","url":"classes/consulclientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":137,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/consulclientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":138,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/consulclientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":139,"kind":2048,"name":"getMaxPoolSize","url":"classes/consulclientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":140,"kind":2048,"name":"setMaxPoolSize","url":"classes/consulclientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":141,"kind":2048,"name":"getMaxRedirects","url":"classes/consulclientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":142,"kind":2048,"name":"setMaxRedirects","url":"classes/consulclientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":143,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/consulclientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":144,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/consulclientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":145,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/consulclientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":146,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/consulclientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":147,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/consulclientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":148,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/consulclientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":149,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/consulclientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":150,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/consulclientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":151,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/consulclientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":152,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/consulclientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":153,"kind":2048,"name":"getMetricsName","url":"classes/consulclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":154,"kind":2048,"name":"setMetricsName","url":"classes/consulclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":155,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/consulclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":156,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/consulclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":157,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/consulclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":158,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/consulclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":159,"kind":2048,"name":"getPemTrustOptions","url":"classes/consulclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":160,"kind":2048,"name":"setPemTrustOptions","url":"classes/consulclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":161,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/consulclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":162,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/consulclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":163,"kind":2048,"name":"getPfxTrustOptions","url":"classes/consulclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":164,"kind":2048,"name":"setPfxTrustOptions","url":"classes/consulclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":165,"kind":2048,"name":"isPipelining","url":"classes/consulclientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":166,"kind":2048,"name":"setPipelining","url":"classes/consulclientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":167,"kind":2048,"name":"getPipeliningLimit","url":"classes/consulclientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":168,"kind":2048,"name":"setPipeliningLimit","url":"classes/consulclientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":169,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/consulclientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":170,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/consulclientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":171,"kind":2048,"name":"getProtocolVersion","url":"classes/consulclientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":172,"kind":2048,"name":"setProtocolVersion","url":"classes/consulclientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":173,"kind":2048,"name":"getProxyOptions","url":"classes/consulclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":174,"kind":2048,"name":"setProxyOptions","url":"classes/consulclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":175,"kind":2048,"name":"getReceiveBufferSize","url":"classes/consulclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":176,"kind":2048,"name":"setReceiveBufferSize","url":"classes/consulclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":177,"kind":2048,"name":"isReuseAddress","url":"classes/consulclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":178,"kind":2048,"name":"setReuseAddress","url":"classes/consulclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":179,"kind":2048,"name":"isReusePort","url":"classes/consulclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":180,"kind":2048,"name":"setReusePort","url":"classes/consulclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":181,"kind":2048,"name":"getSendBufferSize","url":"classes/consulclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":182,"kind":2048,"name":"setSendBufferSize","url":"classes/consulclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":183,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/consulclientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":184,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/consulclientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":185,"kind":2048,"name":"getSoLinger","url":"classes/consulclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":186,"kind":2048,"name":"setSoLinger","url":"classes/consulclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":187,"kind":2048,"name":"isSsl","url":"classes/consulclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":188,"kind":2048,"name":"setSsl","url":"classes/consulclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":189,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/consulclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":190,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/consulclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":191,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/consulclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":192,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/consulclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":193,"kind":2048,"name":"isTcpCork","url":"classes/consulclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":194,"kind":2048,"name":"setTcpCork","url":"classes/consulclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":195,"kind":2048,"name":"isTcpFastOpen","url":"classes/consulclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":196,"kind":2048,"name":"setTcpFastOpen","url":"classes/consulclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":197,"kind":2048,"name":"isTcpKeepAlive","url":"classes/consulclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":198,"kind":2048,"name":"setTcpKeepAlive","url":"classes/consulclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":199,"kind":2048,"name":"isTcpNoDelay","url":"classes/consulclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":200,"kind":2048,"name":"setTcpNoDelay","url":"classes/consulclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":201,"kind":2048,"name":"isTcpQuickAck","url":"classes/consulclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":202,"kind":2048,"name":"setTcpQuickAck","url":"classes/consulclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":203,"kind":2048,"name":"getTimeout","url":"classes/consulclientoptions.html#gettimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":204,"kind":2048,"name":"setTimeout","url":"classes/consulclientoptions.html#settimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":205,"kind":2048,"name":"getTrafficClass","url":"classes/consulclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":206,"kind":2048,"name":"setTrafficClass","url":"classes/consulclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":207,"kind":2048,"name":"isTrustAll","url":"classes/consulclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":208,"kind":2048,"name":"setTrustAll","url":"classes/consulclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":209,"kind":2048,"name":"getTrustStoreOptions","url":"classes/consulclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":210,"kind":2048,"name":"setTrustStoreOptions","url":"classes/consulclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":211,"kind":2048,"name":"isTryUseCompression","url":"classes/consulclientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":212,"kind":2048,"name":"setTryUseCompression","url":"classes/consulclientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":213,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/consulclientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":214,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/consulclientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":215,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/consulclientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":216,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/consulclientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":217,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/consulclientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":218,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/consulclientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":219,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/consulclientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":220,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/consulclientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":221,"kind":2048,"name":"isUseAlpn","url":"classes/consulclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":222,"kind":2048,"name":"setUseAlpn","url":"classes/consulclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":223,"kind":2048,"name":"isUsePooledBuffers","url":"classes/consulclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":224,"kind":2048,"name":"setUsePooledBuffers","url":"classes/consulclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":225,"kind":2048,"name":"getUserAgent","url":"classes/consulclientoptions.html#getuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":226,"kind":2048,"name":"setUserAgent","url":"classes/consulclientoptions.html#setuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":227,"kind":2048,"name":"isUserAgentEnabled","url":"classes/consulclientoptions.html#isuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":228,"kind":2048,"name":"setUserAgentEnabled","url":"classes/consulclientoptions.html#setuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":229,"kind":2048,"name":"isVerifyHost","url":"classes/consulclientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":230,"kind":2048,"name":"setVerifyHost","url":"classes/consulclientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":231,"kind":2048,"name":"getWebSocketClosingTimeout","url":"classes/consulclientoptions.html#getwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":232,"kind":2048,"name":"setWebSocketClosingTimeout","url":"classes/consulclientoptions.html#setwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":233,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":234,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":235,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/consulclientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":236,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/consulclientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":237,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":238,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":239,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":240,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":241,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/consulclientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":242,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/consulclientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":243,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":244,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/consulclientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClientOptions"},{"id":245,"kind":128,"name":"Coordinate","url":"classes/coordinate.html","classes":"tsd-kind-class"},{"id":246,"kind":512,"name":"constructor","url":"classes/coordinate.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Coordinate"},{"id":247,"kind":2048,"name":"getAdj","url":"classes/coordinate.html#getadj","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":248,"kind":2048,"name":"setAdj","url":"classes/coordinate.html#setadj","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":249,"kind":2048,"name":"getErr","url":"classes/coordinate.html#geterr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":250,"kind":2048,"name":"setErr","url":"classes/coordinate.html#seterr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":251,"kind":2048,"name":"getHeight","url":"classes/coordinate.html#getheight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":252,"kind":2048,"name":"setHeight","url":"classes/coordinate.html#setheight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":253,"kind":2048,"name":"getNode","url":"classes/coordinate.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":254,"kind":2048,"name":"setNode","url":"classes/coordinate.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":255,"kind":2048,"name":"getVec","url":"classes/coordinate.html#getvec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":256,"kind":2048,"name":"setVec","url":"classes/coordinate.html#setvec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Coordinate"},{"id":257,"kind":128,"name":"CoordinateList","url":"classes/coordinatelist.html","classes":"tsd-kind-class"},{"id":258,"kind":512,"name":"constructor","url":"classes/coordinatelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CoordinateList"},{"id":259,"kind":2048,"name":"getIndex","url":"classes/coordinatelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":260,"kind":2048,"name":"setIndex","url":"classes/coordinatelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":261,"kind":2048,"name":"getList","url":"classes/coordinatelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":262,"kind":2048,"name":"setList","url":"classes/coordinatelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CoordinateList"},{"id":263,"kind":128,"name":"DcCoordinates","url":"classes/dccoordinates.html","classes":"tsd-kind-class"},{"id":264,"kind":512,"name":"constructor","url":"classes/dccoordinates.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DcCoordinates"},{"id":265,"kind":2048,"name":"getDatacenter","url":"classes/dccoordinates.html#getdatacenter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":266,"kind":2048,"name":"setDatacenter","url":"classes/dccoordinates.html#setdatacenter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":267,"kind":2048,"name":"getServers","url":"classes/dccoordinates.html#getservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":268,"kind":2048,"name":"setServers","url":"classes/dccoordinates.html#setservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DcCoordinates"},{"id":269,"kind":128,"name":"Event","url":"classes/event.html","classes":"tsd-kind-class"},{"id":270,"kind":512,"name":"constructor","url":"classes/event.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Event"},{"id":271,"kind":2048,"name":"getId","url":"classes/event.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":272,"kind":2048,"name":"setId","url":"classes/event.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":273,"kind":2048,"name":"getLTime","url":"classes/event.html#getltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":274,"kind":2048,"name":"setLTime","url":"classes/event.html#setltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":275,"kind":2048,"name":"getName","url":"classes/event.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":276,"kind":2048,"name":"setName","url":"classes/event.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":277,"kind":2048,"name":"getNode","url":"classes/event.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":278,"kind":2048,"name":"setNode","url":"classes/event.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":279,"kind":2048,"name":"getPayload","url":"classes/event.html#getpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":280,"kind":2048,"name":"setPayload","url":"classes/event.html#setpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":281,"kind":2048,"name":"getService","url":"classes/event.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":282,"kind":2048,"name":"setService","url":"classes/event.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":283,"kind":2048,"name":"getTag","url":"classes/event.html#gettag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":284,"kind":2048,"name":"setTag","url":"classes/event.html#settag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":285,"kind":2048,"name":"getVersion","url":"classes/event.html#getversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":286,"kind":2048,"name":"setVersion","url":"classes/event.html#setversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Event"},{"id":287,"kind":128,"name":"EventList","url":"classes/eventlist.html","classes":"tsd-kind-class"},{"id":288,"kind":512,"name":"constructor","url":"classes/eventlist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventList"},{"id":289,"kind":2048,"name":"getIndex","url":"classes/eventlist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":290,"kind":2048,"name":"setIndex","url":"classes/eventlist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":291,"kind":2048,"name":"getList","url":"classes/eventlist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":292,"kind":2048,"name":"setList","url":"classes/eventlist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventList"},{"id":293,"kind":128,"name":"EventListOptions","url":"classes/eventlistoptions.html","classes":"tsd-kind-class"},{"id":294,"kind":512,"name":"constructor","url":"classes/eventlistoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventListOptions"},{"id":295,"kind":2048,"name":"getBlockingOptions","url":"classes/eventlistoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":296,"kind":2048,"name":"setBlockingOptions","url":"classes/eventlistoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":297,"kind":2048,"name":"getName","url":"classes/eventlistoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":298,"kind":2048,"name":"setName","url":"classes/eventlistoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventListOptions"},{"id":299,"kind":128,"name":"EventOptions","url":"classes/eventoptions.html","classes":"tsd-kind-class"},{"id":300,"kind":512,"name":"constructor","url":"classes/eventoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventOptions"},{"id":301,"kind":2048,"name":"getNode","url":"classes/eventoptions.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":302,"kind":2048,"name":"setNode","url":"classes/eventoptions.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":303,"kind":2048,"name":"getPayload","url":"classes/eventoptions.html#getpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":304,"kind":2048,"name":"setPayload","url":"classes/eventoptions.html#setpayload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":305,"kind":2048,"name":"getService","url":"classes/eventoptions.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":306,"kind":2048,"name":"setService","url":"classes/eventoptions.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":307,"kind":2048,"name":"getTag","url":"classes/eventoptions.html#gettag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":308,"kind":2048,"name":"setTag","url":"classes/eventoptions.html#settag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventOptions"},{"id":309,"kind":128,"name":"KeyValue","url":"classes/keyvalue.html","classes":"tsd-kind-class"},{"id":310,"kind":512,"name":"constructor","url":"classes/keyvalue.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyValue"},{"id":311,"kind":2048,"name":"getCreateIndex","url":"classes/keyvalue.html#getcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":312,"kind":2048,"name":"setCreateIndex","url":"classes/keyvalue.html#setcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":313,"kind":2048,"name":"getFlags","url":"classes/keyvalue.html#getflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":314,"kind":2048,"name":"setFlags","url":"classes/keyvalue.html#setflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":315,"kind":2048,"name":"getKey","url":"classes/keyvalue.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":316,"kind":2048,"name":"setKey","url":"classes/keyvalue.html#setkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":317,"kind":2048,"name":"getLockIndex","url":"classes/keyvalue.html#getlockindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":318,"kind":2048,"name":"setLockIndex","url":"classes/keyvalue.html#setlockindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":319,"kind":2048,"name":"getModifyIndex","url":"classes/keyvalue.html#getmodifyindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":320,"kind":2048,"name":"setModifyIndex","url":"classes/keyvalue.html#setmodifyindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":321,"kind":2048,"name":"getSession","url":"classes/keyvalue.html#getsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":322,"kind":2048,"name":"setSession","url":"classes/keyvalue.html#setsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":323,"kind":2048,"name":"getValue","url":"classes/keyvalue.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":324,"kind":2048,"name":"setValue","url":"classes/keyvalue.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValue"},{"id":325,"kind":128,"name":"KeyValueList","url":"classes/keyvaluelist.html","classes":"tsd-kind-class"},{"id":326,"kind":512,"name":"constructor","url":"classes/keyvaluelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyValueList"},{"id":327,"kind":2048,"name":"getIndex","url":"classes/keyvaluelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":328,"kind":2048,"name":"setIndex","url":"classes/keyvaluelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":329,"kind":2048,"name":"getList","url":"classes/keyvaluelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":330,"kind":2048,"name":"setList","url":"classes/keyvaluelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueList"},{"id":331,"kind":128,"name":"KeyValueOptions","url":"classes/keyvalueoptions.html","classes":"tsd-kind-class"},{"id":332,"kind":512,"name":"constructor","url":"classes/keyvalueoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":333,"kind":2048,"name":"getAcquireSession","url":"classes/keyvalueoptions.html#getacquiresession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":334,"kind":2048,"name":"setAcquireSession","url":"classes/keyvalueoptions.html#setacquiresession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":335,"kind":2048,"name":"getCasIndex","url":"classes/keyvalueoptions.html#getcasindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":336,"kind":2048,"name":"setCasIndex","url":"classes/keyvalueoptions.html#setcasindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":337,"kind":2048,"name":"getFlags","url":"classes/keyvalueoptions.html#getflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":338,"kind":2048,"name":"setFlags","url":"classes/keyvalueoptions.html#setflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":339,"kind":2048,"name":"getReleaseSession","url":"classes/keyvalueoptions.html#getreleasesession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":340,"kind":2048,"name":"setReleaseSession","url":"classes/keyvalueoptions.html#setreleasesession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyValueOptions"},{"id":341,"kind":128,"name":"MaintenanceOptions","url":"classes/maintenanceoptions.html","classes":"tsd-kind-class"},{"id":342,"kind":512,"name":"constructor","url":"classes/maintenanceoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":343,"kind":2048,"name":"isEnable","url":"classes/maintenanceoptions.html#isenable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":344,"kind":2048,"name":"setEnable","url":"classes/maintenanceoptions.html#setenable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":345,"kind":2048,"name":"getId","url":"classes/maintenanceoptions.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":346,"kind":2048,"name":"setId","url":"classes/maintenanceoptions.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":347,"kind":2048,"name":"getReason","url":"classes/maintenanceoptions.html#getreason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":348,"kind":2048,"name":"setReason","url":"classes/maintenanceoptions.html#setreason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MaintenanceOptions"},{"id":349,"kind":128,"name":"Node","url":"classes/node.html","classes":"tsd-kind-class"},{"id":350,"kind":512,"name":"constructor","url":"classes/node.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Node"},{"id":351,"kind":2048,"name":"getAddress","url":"classes/node.html#getaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":352,"kind":2048,"name":"setAddress","url":"classes/node.html#setaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":353,"kind":2048,"name":"getLanAddress","url":"classes/node.html#getlanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":354,"kind":2048,"name":"setLanAddress","url":"classes/node.html#setlanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":355,"kind":2048,"name":"getName","url":"classes/node.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":356,"kind":2048,"name":"setName","url":"classes/node.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":357,"kind":2048,"name":"getWanAddress","url":"classes/node.html#getwanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":358,"kind":2048,"name":"setWanAddress","url":"classes/node.html#setwanaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":359,"kind":128,"name":"NodeList","url":"classes/nodelist.html","classes":"tsd-kind-class"},{"id":360,"kind":512,"name":"constructor","url":"classes/nodelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NodeList"},{"id":361,"kind":2048,"name":"getIndex","url":"classes/nodelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":362,"kind":2048,"name":"setIndex","url":"classes/nodelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":363,"kind":2048,"name":"getList","url":"classes/nodelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":364,"kind":2048,"name":"setList","url":"classes/nodelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeList"},{"id":365,"kind":128,"name":"NodeQueryOptions","url":"classes/nodequeryoptions.html","classes":"tsd-kind-class"},{"id":366,"kind":512,"name":"constructor","url":"classes/nodequeryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":367,"kind":2048,"name":"getBlockingOptions","url":"classes/nodequeryoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":368,"kind":2048,"name":"setBlockingOptions","url":"classes/nodequeryoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":369,"kind":2048,"name":"getNear","url":"classes/nodequeryoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":370,"kind":2048,"name":"setNear","url":"classes/nodequeryoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NodeQueryOptions"},{"id":371,"kind":128,"name":"PreparedQueryDefinition","url":"classes/preparedquerydefinition.html","classes":"tsd-kind-class"},{"id":372,"kind":512,"name":"constructor","url":"classes/preparedquerydefinition.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":373,"kind":2048,"name":"getDcs","url":"classes/preparedquerydefinition.html#getdcs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":374,"kind":2048,"name":"setDcs","url":"classes/preparedquerydefinition.html#setdcs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":375,"kind":2048,"name":"getDnsTtl","url":"classes/preparedquerydefinition.html#getdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":376,"kind":2048,"name":"setDnsTtl","url":"classes/preparedquerydefinition.html#setdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":377,"kind":2048,"name":"getId","url":"classes/preparedquerydefinition.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":378,"kind":2048,"name":"setId","url":"classes/preparedquerydefinition.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":379,"kind":2048,"name":"getMeta","url":"classes/preparedquerydefinition.html#getmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":380,"kind":2048,"name":"setMeta","url":"classes/preparedquerydefinition.html#setmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":381,"kind":2048,"name":"getName","url":"classes/preparedquerydefinition.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":382,"kind":2048,"name":"setName","url":"classes/preparedquerydefinition.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":383,"kind":2048,"name":"getNearestN","url":"classes/preparedquerydefinition.html#getnearestn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":384,"kind":2048,"name":"setNearestN","url":"classes/preparedquerydefinition.html#setnearestn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":385,"kind":2048,"name":"getPassing","url":"classes/preparedquerydefinition.html#getpassing","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":386,"kind":2048,"name":"setPassing","url":"classes/preparedquerydefinition.html#setpassing","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":387,"kind":2048,"name":"getService","url":"classes/preparedquerydefinition.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":388,"kind":2048,"name":"setService","url":"classes/preparedquerydefinition.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":389,"kind":2048,"name":"getSession","url":"classes/preparedquerydefinition.html#getsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":390,"kind":2048,"name":"setSession","url":"classes/preparedquerydefinition.html#setsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":391,"kind":2048,"name":"getTags","url":"classes/preparedquerydefinition.html#gettags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":392,"kind":2048,"name":"setTags","url":"classes/preparedquerydefinition.html#settags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":393,"kind":2048,"name":"getTemplateRegexp","url":"classes/preparedquerydefinition.html#gettemplateregexp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":394,"kind":2048,"name":"setTemplateRegexp","url":"classes/preparedquerydefinition.html#settemplateregexp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":395,"kind":2048,"name":"getTemplateType","url":"classes/preparedquerydefinition.html#gettemplatetype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":396,"kind":2048,"name":"setTemplateType","url":"classes/preparedquerydefinition.html#settemplatetype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":397,"kind":2048,"name":"getToken","url":"classes/preparedquerydefinition.html#gettoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":398,"kind":2048,"name":"setToken","url":"classes/preparedquerydefinition.html#settoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryDefinition"},{"id":399,"kind":128,"name":"PreparedQueryExecuteOptions","url":"classes/preparedqueryexecuteoptions.html","classes":"tsd-kind-class"},{"id":400,"kind":512,"name":"constructor","url":"classes/preparedqueryexecuteoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":401,"kind":2048,"name":"getLimit","url":"classes/preparedqueryexecuteoptions.html#getlimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":402,"kind":2048,"name":"setLimit","url":"classes/preparedqueryexecuteoptions.html#setlimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":403,"kind":2048,"name":"getNear","url":"classes/preparedqueryexecuteoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":404,"kind":2048,"name":"setNear","url":"classes/preparedqueryexecuteoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteOptions"},{"id":405,"kind":128,"name":"PreparedQueryExecuteResponse","url":"classes/preparedqueryexecuteresponse.html","classes":"tsd-kind-class"},{"id":406,"kind":512,"name":"constructor","url":"classes/preparedqueryexecuteresponse.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":407,"kind":2048,"name":"getDc","url":"classes/preparedqueryexecuteresponse.html#getdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":408,"kind":2048,"name":"setDc","url":"classes/preparedqueryexecuteresponse.html#setdc","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":409,"kind":2048,"name":"getDnsTtl","url":"classes/preparedqueryexecuteresponse.html#getdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":410,"kind":2048,"name":"setDnsTtl","url":"classes/preparedqueryexecuteresponse.html#setdnsttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":411,"kind":2048,"name":"getFailovers","url":"classes/preparedqueryexecuteresponse.html#getfailovers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":412,"kind":2048,"name":"setFailovers","url":"classes/preparedqueryexecuteresponse.html#setfailovers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":413,"kind":2048,"name":"getNodes","url":"classes/preparedqueryexecuteresponse.html#getnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":414,"kind":2048,"name":"setNodes","url":"classes/preparedqueryexecuteresponse.html#setnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":415,"kind":2048,"name":"getService","url":"classes/preparedqueryexecuteresponse.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":416,"kind":2048,"name":"setService","url":"classes/preparedqueryexecuteresponse.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQueryExecuteResponse"},{"id":417,"kind":128,"name":"Service","url":"classes/service.html","classes":"tsd-kind-class"},{"id":418,"kind":512,"name":"constructor","url":"classes/service.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Service"},{"id":419,"kind":2048,"name":"getAddress","url":"classes/service.html#getaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":420,"kind":2048,"name":"setAddress","url":"classes/service.html#setaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":421,"kind":2048,"name":"getId","url":"classes/service.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":422,"kind":2048,"name":"setId","url":"classes/service.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":423,"kind":2048,"name":"getMeta","url":"classes/service.html#getmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":424,"kind":2048,"name":"setMeta","url":"classes/service.html#setmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":425,"kind":2048,"name":"getName","url":"classes/service.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":426,"kind":2048,"name":"setName","url":"classes/service.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":427,"kind":2048,"name":"getNode","url":"classes/service.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":428,"kind":2048,"name":"setNode","url":"classes/service.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":429,"kind":2048,"name":"getNodeAddress","url":"classes/service.html#getnodeaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":430,"kind":2048,"name":"setNodeAddress","url":"classes/service.html#setnodeaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":431,"kind":2048,"name":"getPort","url":"classes/service.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":432,"kind":2048,"name":"setPort","url":"classes/service.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":433,"kind":2048,"name":"getTags","url":"classes/service.html#gettags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":434,"kind":2048,"name":"setTags","url":"classes/service.html#settags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Service"},{"id":435,"kind":128,"name":"ServiceEntry","url":"classes/serviceentry.html","classes":"tsd-kind-class"},{"id":436,"kind":512,"name":"constructor","url":"classes/serviceentry.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceEntry"},{"id":437,"kind":2048,"name":"getChecks","url":"classes/serviceentry.html#getchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":438,"kind":2048,"name":"setChecks","url":"classes/serviceentry.html#setchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":439,"kind":2048,"name":"getNode","url":"classes/serviceentry.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":440,"kind":2048,"name":"setNode","url":"classes/serviceentry.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":441,"kind":2048,"name":"getService","url":"classes/serviceentry.html#getservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":442,"kind":2048,"name":"setService","url":"classes/serviceentry.html#setservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntry"},{"id":443,"kind":128,"name":"ServiceEntryList","url":"classes/serviceentrylist.html","classes":"tsd-kind-class"},{"id":444,"kind":512,"name":"constructor","url":"classes/serviceentrylist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":445,"kind":2048,"name":"getIndex","url":"classes/serviceentrylist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":446,"kind":2048,"name":"setIndex","url":"classes/serviceentrylist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":447,"kind":2048,"name":"getList","url":"classes/serviceentrylist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":448,"kind":2048,"name":"setList","url":"classes/serviceentrylist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceEntryList"},{"id":449,"kind":128,"name":"ServiceList","url":"classes/servicelist.html","classes":"tsd-kind-class"},{"id":450,"kind":512,"name":"constructor","url":"classes/servicelist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceList"},{"id":451,"kind":2048,"name":"getIndex","url":"classes/servicelist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":452,"kind":2048,"name":"setIndex","url":"classes/servicelist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":453,"kind":2048,"name":"getList","url":"classes/servicelist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":454,"kind":2048,"name":"setList","url":"classes/servicelist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceList"},{"id":455,"kind":128,"name":"ServiceOptions","url":"classes/serviceoptions.html","classes":"tsd-kind-class"},{"id":456,"kind":512,"name":"constructor","url":"classes/serviceoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceOptions"},{"id":457,"kind":2048,"name":"getAddress","url":"classes/serviceoptions.html#getaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":458,"kind":2048,"name":"setAddress","url":"classes/serviceoptions.html#setaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":459,"kind":2048,"name":"getCheckListOptions","url":"classes/serviceoptions.html#getchecklistoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":460,"kind":2048,"name":"setCheckListOptions","url":"classes/serviceoptions.html#setchecklistoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":461,"kind":2048,"name":"getCheckOptions","url":"classes/serviceoptions.html#getcheckoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":462,"kind":2048,"name":"setCheckOptions","url":"classes/serviceoptions.html#setcheckoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":463,"kind":2048,"name":"getId","url":"classes/serviceoptions.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":464,"kind":2048,"name":"setId","url":"classes/serviceoptions.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":465,"kind":2048,"name":"getMeta","url":"classes/serviceoptions.html#getmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":466,"kind":2048,"name":"setMeta","url":"classes/serviceoptions.html#setmeta","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":467,"kind":2048,"name":"getName","url":"classes/serviceoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":468,"kind":2048,"name":"setName","url":"classes/serviceoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":469,"kind":2048,"name":"getPort","url":"classes/serviceoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":470,"kind":2048,"name":"setPort","url":"classes/serviceoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":471,"kind":2048,"name":"getTags","url":"classes/serviceoptions.html#gettags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":472,"kind":2048,"name":"setTags","url":"classes/serviceoptions.html#settags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceOptions"},{"id":473,"kind":128,"name":"ServiceQueryOptions","url":"classes/servicequeryoptions.html","classes":"tsd-kind-class"},{"id":474,"kind":512,"name":"constructor","url":"classes/servicequeryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":475,"kind":2048,"name":"getBlockingOptions","url":"classes/servicequeryoptions.html#getblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":476,"kind":2048,"name":"setBlockingOptions","url":"classes/servicequeryoptions.html#setblockingoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":477,"kind":2048,"name":"getNear","url":"classes/servicequeryoptions.html#getnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":478,"kind":2048,"name":"setNear","url":"classes/servicequeryoptions.html#setnear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":479,"kind":2048,"name":"getTag","url":"classes/servicequeryoptions.html#gettag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":480,"kind":2048,"name":"setTag","url":"classes/servicequeryoptions.html#settag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServiceQueryOptions"},{"id":481,"kind":128,"name":"Session","url":"classes/session.html","classes":"tsd-kind-class"},{"id":482,"kind":512,"name":"constructor","url":"classes/session.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Session"},{"id":483,"kind":2048,"name":"getChecks","url":"classes/session.html#getchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":484,"kind":2048,"name":"setChecks","url":"classes/session.html#setchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":485,"kind":2048,"name":"getCreateIndex","url":"classes/session.html#getcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":486,"kind":2048,"name":"setCreateIndex","url":"classes/session.html#setcreateindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":487,"kind":2048,"name":"getId","url":"classes/session.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":488,"kind":2048,"name":"setId","url":"classes/session.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":489,"kind":2048,"name":"getIndex","url":"classes/session.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":490,"kind":2048,"name":"setIndex","url":"classes/session.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":491,"kind":2048,"name":"getLockDelay","url":"classes/session.html#getlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":492,"kind":2048,"name":"setLockDelay","url":"classes/session.html#setlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":493,"kind":2048,"name":"getNode","url":"classes/session.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":494,"kind":2048,"name":"setNode","url":"classes/session.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Session"},{"id":495,"kind":128,"name":"SessionList","url":"classes/sessionlist.html","classes":"tsd-kind-class"},{"id":496,"kind":512,"name":"constructor","url":"classes/sessionlist.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SessionList"},{"id":497,"kind":2048,"name":"getIndex","url":"classes/sessionlist.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":498,"kind":2048,"name":"setIndex","url":"classes/sessionlist.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":499,"kind":2048,"name":"getList","url":"classes/sessionlist.html#getlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":500,"kind":2048,"name":"setList","url":"classes/sessionlist.html#setlist","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionList"},{"id":501,"kind":128,"name":"SessionOptions","url":"classes/sessionoptions.html","classes":"tsd-kind-class"},{"id":502,"kind":512,"name":"constructor","url":"classes/sessionoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SessionOptions"},{"id":503,"kind":2048,"name":"getBehavior","url":"classes/sessionoptions.html#getbehavior","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":504,"kind":2048,"name":"setBehavior","url":"classes/sessionoptions.html#setbehavior","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":505,"kind":2048,"name":"getChecks","url":"classes/sessionoptions.html#getchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":506,"kind":2048,"name":"setChecks","url":"classes/sessionoptions.html#setchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":507,"kind":2048,"name":"getLockDelay","url":"classes/sessionoptions.html#getlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":508,"kind":2048,"name":"setLockDelay","url":"classes/sessionoptions.html#setlockdelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":509,"kind":2048,"name":"getName","url":"classes/sessionoptions.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":510,"kind":2048,"name":"setName","url":"classes/sessionoptions.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":511,"kind":2048,"name":"getNode","url":"classes/sessionoptions.html#getnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":512,"kind":2048,"name":"setNode","url":"classes/sessionoptions.html#setnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":513,"kind":2048,"name":"getTtl","url":"classes/sessionoptions.html#getttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":514,"kind":2048,"name":"setTtl","url":"classes/sessionoptions.html#setttl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SessionOptions"},{"id":515,"kind":128,"name":"TxnError","url":"classes/txnerror.html","classes":"tsd-kind-class"},{"id":516,"kind":512,"name":"constructor","url":"classes/txnerror.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnError"},{"id":517,"kind":2048,"name":"getOpIndex","url":"classes/txnerror.html#getopindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":518,"kind":2048,"name":"setOpIndex","url":"classes/txnerror.html#setopindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":519,"kind":2048,"name":"getWhat","url":"classes/txnerror.html#getwhat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":520,"kind":2048,"name":"setWhat","url":"classes/txnerror.html#setwhat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnError"},{"id":521,"kind":128,"name":"TxnKVOperation","url":"classes/txnkvoperation.html","classes":"tsd-kind-class"},{"id":522,"kind":512,"name":"constructor","url":"classes/txnkvoperation.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":523,"kind":2048,"name":"getFlags","url":"classes/txnkvoperation.html#getflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":524,"kind":2048,"name":"setFlags","url":"classes/txnkvoperation.html#setflags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":525,"kind":2048,"name":"getIndex","url":"classes/txnkvoperation.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":526,"kind":2048,"name":"setIndex","url":"classes/txnkvoperation.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":527,"kind":2048,"name":"getKey","url":"classes/txnkvoperation.html#getkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":528,"kind":2048,"name":"setKey","url":"classes/txnkvoperation.html#setkey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":529,"kind":2048,"name":"getSession","url":"classes/txnkvoperation.html#getsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":530,"kind":2048,"name":"setSession","url":"classes/txnkvoperation.html#setsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":531,"kind":2048,"name":"getType","url":"classes/txnkvoperation.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":532,"kind":2048,"name":"setType","url":"classes/txnkvoperation.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":533,"kind":2048,"name":"getValue","url":"classes/txnkvoperation.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":534,"kind":2048,"name":"setValue","url":"classes/txnkvoperation.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnKVOperation"},{"id":535,"kind":128,"name":"TxnRequest","url":"classes/txnrequest.html","classes":"tsd-kind-class"},{"id":536,"kind":512,"name":"constructor","url":"classes/txnrequest.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnRequest"},{"id":537,"kind":2048,"name":"getOperationsSize","url":"classes/txnrequest.html#getoperationssize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnRequest"},{"id":538,"kind":128,"name":"TxnResponse","url":"classes/txnresponse.html","classes":"tsd-kind-class"},{"id":539,"kind":512,"name":"constructor","url":"classes/txnresponse.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TxnResponse"},{"id":540,"kind":2048,"name":"getErrors","url":"classes/txnresponse.html#geterrors","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":541,"kind":2048,"name":"addError","url":"classes/txnresponse.html#adderror","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":542,"kind":2048,"name":"getErrorsSize","url":"classes/txnresponse.html#geterrorssize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":543,"kind":2048,"name":"getResultsSize","url":"classes/txnresponse.html#getresultssize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TxnResponse"},{"id":544,"kind":128,"name":"ConsulClient","url":"classes/consulclient.html","classes":"tsd-kind-class"},{"id":545,"kind":2048,"name":"create","url":"classes/consulclient.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ConsulClient"},{"id":546,"kind":2048,"name":"agentInfo","url":"classes/consulclient.html#agentinfo","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":547,"kind":2048,"name":"coordinateNodes","url":"classes/consulclient.html#coordinatenodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":548,"kind":2048,"name":"coordinateNodesWithOptions","url":"classes/consulclient.html#coordinatenodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":549,"kind":2048,"name":"coordinateDatacenters","url":"classes/consulclient.html#coordinatedatacenters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":550,"kind":2048,"name":"getKeys","url":"classes/consulclient.html#getkeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":551,"kind":2048,"name":"getKeysWithOptions","url":"classes/consulclient.html#getkeyswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":552,"kind":2048,"name":"getValue","url":"classes/consulclient.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":553,"kind":2048,"name":"getValueWithOptions","url":"classes/consulclient.html#getvaluewithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":554,"kind":2048,"name":"deleteValue","url":"classes/consulclient.html#deletevalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":555,"kind":2048,"name":"getValues","url":"classes/consulclient.html#getvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":556,"kind":2048,"name":"getValuesWithOptions","url":"classes/consulclient.html#getvalueswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":557,"kind":2048,"name":"deleteValues","url":"classes/consulclient.html#deletevalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":558,"kind":2048,"name":"putValue","url":"classes/consulclient.html#putvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":559,"kind":2048,"name":"putValueWithOptions","url":"classes/consulclient.html#putvaluewithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":560,"kind":2048,"name":"transaction","url":"classes/consulclient.html#transaction","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":561,"kind":2048,"name":"createAclToken","url":"classes/consulclient.html#createacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":562,"kind":2048,"name":"updateAclToken","url":"classes/consulclient.html#updateacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":563,"kind":2048,"name":"cloneAclToken","url":"classes/consulclient.html#cloneacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":564,"kind":2048,"name":"listAclTokens","url":"classes/consulclient.html#listacltokens","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":565,"kind":2048,"name":"infoAclToken","url":"classes/consulclient.html#infoacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":566,"kind":2048,"name":"destroyAclToken","url":"classes/consulclient.html#destroyacltoken","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":567,"kind":2048,"name":"fireEvent","url":"classes/consulclient.html#fireevent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":568,"kind":2048,"name":"fireEventWithOptions","url":"classes/consulclient.html#fireeventwithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":569,"kind":2048,"name":"listEvents","url":"classes/consulclient.html#listevents","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":570,"kind":2048,"name":"listEventsWithOptions","url":"classes/consulclient.html#listeventswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":571,"kind":2048,"name":"registerService","url":"classes/consulclient.html#registerservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":572,"kind":2048,"name":"maintenanceService","url":"classes/consulclient.html#maintenanceservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":573,"kind":2048,"name":"deregisterService","url":"classes/consulclient.html#deregisterservice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":574,"kind":2048,"name":"catalogServiceNodes","url":"classes/consulclient.html#catalogservicenodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":575,"kind":2048,"name":"catalogServiceNodesWithOptions","url":"classes/consulclient.html#catalogservicenodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":576,"kind":2048,"name":"catalogDatacenters","url":"classes/consulclient.html#catalogdatacenters","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":577,"kind":2048,"name":"catalogNodes","url":"classes/consulclient.html#catalognodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":578,"kind":2048,"name":"catalogNodesWithOptions","url":"classes/consulclient.html#catalognodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":579,"kind":2048,"name":"healthChecks","url":"classes/consulclient.html#healthchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":580,"kind":2048,"name":"healthChecksWithOptions","url":"classes/consulclient.html#healthcheckswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":581,"kind":2048,"name":"healthState","url":"classes/consulclient.html#healthstate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":582,"kind":2048,"name":"healthStateWithOptions","url":"classes/consulclient.html#healthstatewithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":583,"kind":2048,"name":"healthServiceNodes","url":"classes/consulclient.html#healthservicenodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":584,"kind":2048,"name":"healthServiceNodesWithOptions","url":"classes/consulclient.html#healthservicenodeswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":585,"kind":2048,"name":"catalogServices","url":"classes/consulclient.html#catalogservices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":586,"kind":2048,"name":"catalogServicesWithOptions","url":"classes/consulclient.html#catalogserviceswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":587,"kind":2048,"name":"catalogNodeServices","url":"classes/consulclient.html#catalognodeservices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":588,"kind":2048,"name":"catalogNodeServicesWithOptions","url":"classes/consulclient.html#catalognodeserviceswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":589,"kind":2048,"name":"localServices","url":"classes/consulclient.html#localservices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":590,"kind":2048,"name":"localChecks","url":"classes/consulclient.html#localchecks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":591,"kind":2048,"name":"registerCheck","url":"classes/consulclient.html#registercheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":592,"kind":2048,"name":"deregisterCheck","url":"classes/consulclient.html#deregistercheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":593,"kind":2048,"name":"passCheck","url":"classes/consulclient.html#passcheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":594,"kind":2048,"name":"passCheckWithNote","url":"classes/consulclient.html#passcheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":595,"kind":2048,"name":"warnCheck","url":"classes/consulclient.html#warncheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":596,"kind":2048,"name":"warnCheckWithNote","url":"classes/consulclient.html#warncheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":597,"kind":2048,"name":"failCheck","url":"classes/consulclient.html#failcheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":598,"kind":2048,"name":"failCheckWithNote","url":"classes/consulclient.html#failcheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":599,"kind":2048,"name":"updateCheck","url":"classes/consulclient.html#updatecheck","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":600,"kind":2048,"name":"updateCheckWithNote","url":"classes/consulclient.html#updatecheckwithnote","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":601,"kind":2048,"name":"leaderStatus","url":"classes/consulclient.html#leaderstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":602,"kind":2048,"name":"peersStatus","url":"classes/consulclient.html#peersstatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":603,"kind":2048,"name":"createSession","url":"classes/consulclient.html#createsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":604,"kind":2048,"name":"createSessionWithOptions","url":"classes/consulclient.html#createsessionwithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":605,"kind":2048,"name":"infoSession","url":"classes/consulclient.html#infosession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":606,"kind":2048,"name":"infoSessionWithOptions","url":"classes/consulclient.html#infosessionwithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":607,"kind":2048,"name":"renewSession","url":"classes/consulclient.html#renewsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":608,"kind":2048,"name":"listSessions","url":"classes/consulclient.html#listsessions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":609,"kind":2048,"name":"listSessionsWithOptions","url":"classes/consulclient.html#listsessionswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":610,"kind":2048,"name":"listNodeSessions","url":"classes/consulclient.html#listnodesessions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":611,"kind":2048,"name":"listNodeSessionsWithOptions","url":"classes/consulclient.html#listnodesessionswithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":612,"kind":2048,"name":"destroySession","url":"classes/consulclient.html#destroysession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":613,"kind":2048,"name":"createPreparedQuery","url":"classes/consulclient.html#createpreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":614,"kind":2048,"name":"getPreparedQuery","url":"classes/consulclient.html#getpreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":615,"kind":2048,"name":"getAllPreparedQueries","url":"classes/consulclient.html#getallpreparedqueries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":616,"kind":2048,"name":"updatePreparedQuery","url":"classes/consulclient.html#updatepreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":617,"kind":2048,"name":"deletePreparedQuery","url":"classes/consulclient.html#deletepreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":618,"kind":2048,"name":"executePreparedQuery","url":"classes/consulclient.html#executepreparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":619,"kind":2048,"name":"executePreparedQueryWithOptions","url":"classes/consulclient.html#executepreparedquerywithoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":620,"kind":2048,"name":"close","url":"classes/consulclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsulClient"},{"id":621,"kind":128,"name":"Watch","url":"classes/watch.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":622,"kind":2048,"name":"key","url":"classes/watch.html#key","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":623,"kind":2048,"name":"keyPrefix","url":"classes/watch.html#keyprefix","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":624,"kind":2048,"name":"services","url":"classes/watch.html#services","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":625,"kind":2048,"name":"service","url":"classes/watch.html#service","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":626,"kind":2048,"name":"events","url":"classes/watch.html#events","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":627,"kind":2048,"name":"nodes","url":"classes/watch.html#nodes","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Watch"},{"id":628,"kind":2048,"name":"setHandler","url":"classes/watch.html#sethandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Watch"},{"id":629,"kind":2048,"name":"start","url":"classes/watch.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Watch"},{"id":630,"kind":2048,"name":"stop","url":"classes/watch.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Watch"},{"id":631,"kind":128,"name":"WatchResult","url":"classes/watchresult.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":632,"kind":2048,"name":"prevResult","url":"classes/watchresult.html#prevresult","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":633,"kind":2048,"name":"nextResult","url":"classes/watchresult.html#nextresult","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":634,"kind":2048,"name":"cause","url":"classes/watchresult.html#cause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":635,"kind":2048,"name":"succeeded","url":"classes/watchresult.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"},{"id":636,"kind":2048,"name":"failed","url":"classes/watchresult.html#failed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WatchResult"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,41.07]],["parent/0",[]],["name/1",[1,28.34]],["parent/1",[0,3.997]],["name/2",[2,42.07]],["parent/2",[0,3.997]],["name/3",[3,42.07]],["parent/3",[0,3.997]],["name/4",[4,41.07]],["parent/4",[0,3.997]],["name/5",[5,41.07]],["parent/5",[0,3.997]],["name/6",[6,60.529]],["parent/6",[0,3.997]],["name/7",[7,60.529]],["parent/7",[0,3.997]],["name/8",[8,55.42]],["parent/8",[0,3.997]],["name/9",[9,55.42]],["parent/9",[0,3.997]],["name/10",[10,45.865]],["parent/10",[]],["name/11",[1,28.34]],["parent/11",[10,4.464]],["name/12",[11,40.16]],["parent/12",[10,4.464]],["name/13",[12,40.16]],["parent/13",[10,4.464]],["name/14",[13,60.529]],["parent/14",[10,4.464]],["name/15",[14,60.529]],["parent/15",[10,4.464]],["name/16",[15,35.406]],["parent/16",[]],["name/17",[1,28.34]],["parent/17",[15,3.446]],["name/18",[2,42.07]],["parent/18",[15,3.446]],["name/19",[3,42.07]],["parent/19",[15,3.446]],["name/20",[4,41.07]],["parent/20",[15,3.446]],["name/21",[5,41.07]],["parent/21",[15,3.446]],["name/22",[16,60.529]],["parent/22",[15,3.446]],["name/23",[17,60.529]],["parent/23",[15,3.446]],["name/24",[18,55.42]],["parent/24",[15,3.446]],["name/25",[19,55.42]],["parent/25",[15,3.446]],["name/26",[20,60.529]],["parent/26",[15,3.446]],["name/27",[21,60.529]],["parent/27",[15,3.446]],["name/28",[22,55.42]],["parent/28",[15,3.446]],["name/29",[23,55.42]],["parent/29",[15,3.446]],["name/30",[24,60.529]],["parent/30",[15,3.446]],["name/31",[25,60.529]],["parent/31",[15,3.446]],["name/32",[26,55.42]],["parent/32",[15,3.446]],["name/33",[27,55.42]],["parent/33",[15,3.446]],["name/34",[28,45.865]],["parent/34",[]],["name/35",[1,28.34]],["parent/35",[28,4.464]],["name/36",[11,40.16]],["parent/36",[28,4.464]],["name/37",[12,40.16]],["parent/37",[28,4.464]],["name/38",[29,43.183]],["parent/38",[28,4.464]],["name/39",[30,43.183]],["parent/39",[28,4.464]],["name/40",[31,30.406]],["parent/40",[]],["name/41",[1,28.34]],["parent/41",[31,2.959]],["name/42",[32,60.529]],["parent/42",[31,2.959]],["name/43",[33,60.529]],["parent/43",[31,2.959]],["name/44",[34,60.529]],["parent/44",[31,2.959]],["name/45",[35,60.529]],["parent/45",[31,2.959]],["name/46",[36,60.529]],["parent/46",[31,2.959]],["name/47",[37,60.529]],["parent/47",[31,2.959]],["name/48",[38,60.529]],["parent/48",[31,2.959]],["name/49",[39,60.529]],["parent/49",[31,2.959]],["name/50",[2,42.07]],["parent/50",[31,2.959]],["name/51",[3,42.07]],["parent/51",[31,2.959]],["name/52",[40,60.529]],["parent/52",[31,2.959]],["name/53",[41,60.529]],["parent/53",[31,2.959]],["name/54",[4,41.07]],["parent/54",[31,2.959]],["name/55",[5,41.07]],["parent/55",[31,2.959]],["name/56",[18,55.42]],["parent/56",[31,2.959]],["name/57",[19,55.42]],["parent/57",[31,2.959]],["name/58",[42,60.529]],["parent/58",[31,2.959]],["name/59",[43,60.529]],["parent/59",[31,2.959]],["name/60",[22,55.42]],["parent/60",[31,2.959]],["name/61",[23,55.42]],["parent/61",[31,2.959]],["name/62",[26,55.42]],["parent/62",[31,2.959]],["name/63",[27,55.42]],["parent/63",[31,2.959]],["name/64",[44,60.529]],["parent/64",[31,2.959]],["name/65",[45,60.529]],["parent/65",[31,2.959]],["name/66",[46,60.529]],["parent/66",[31,2.959]],["name/67",[47,60.529]],["parent/67",[31,2.959]],["name/68",[48,55.42]],["parent/68",[31,2.959]],["name/69",[49,55.42]],["parent/69",[31,2.959]],["name/70",[50,45.865]],["parent/70",[]],["name/71",[1,28.34]],["parent/71",[50,4.464]],["name/72",[51,49.543]],["parent/72",[50,4.464]],["name/73",[52,49.543]],["parent/73",[50,4.464]],["name/74",[53,49.543]],["parent/74",[50,4.464]],["name/75",[54,49.543]],["parent/75",[50,4.464]],["name/76",[55,13.255]],["parent/76",[]],["name/77",[1,28.34]],["parent/77",[55,1.29]],["name/78",[56,60.529]],["parent/78",[55,1.29]],["name/79",[57,60.529]],["parent/79",[55,1.29]],["name/80",[58,60.529]],["parent/80",[55,1.29]],["name/81",[59,60.529]],["parent/81",[55,1.29]],["name/82",[60,60.529]],["parent/82",[55,1.29]],["name/83",[61,60.529]],["parent/83",[55,1.29]],["name/84",[62,60.529]],["parent/84",[55,1.29]],["name/85",[63,60.529]],["parent/85",[55,1.29]],["name/86",[64,60.529]],["parent/86",[55,1.29]],["name/87",[65,60.529]],["parent/87",[55,1.29]],["name/88",[66,55.42]],["parent/88",[55,1.29]],["name/89",[67,55.42]],["parent/89",[55,1.29]],["name/90",[68,60.529]],["parent/90",[55,1.29]],["name/91",[69,60.529]],["parent/91",[55,1.29]],["name/92",[70,60.529]],["parent/92",[55,1.29]],["name/93",[71,60.529]],["parent/93",[55,1.29]],["name/94",[72,60.529]],["parent/94",[55,1.29]],["name/95",[73,60.529]],["parent/95",[55,1.29]],["name/96",[74,60.529]],["parent/96",[55,1.29]],["name/97",[75,60.529]],["parent/97",[55,1.29]],["name/98",[76,60.529]],["parent/98",[55,1.29]],["name/99",[77,60.529]],["parent/99",[55,1.29]],["name/100",[78,60.529]],["parent/100",[55,1.29]],["name/101",[79,60.529]],["parent/101",[55,1.29]],["name/102",[80,60.529]],["parent/102",[55,1.29]],["name/103",[81,60.529]],["parent/103",[55,1.29]],["name/104",[82,60.529]],["parent/104",[55,1.29]],["name/105",[83,60.529]],["parent/105",[55,1.29]],["name/106",[84,60.529]],["parent/106",[55,1.29]],["name/107",[85,60.529]],["parent/107",[55,1.29]],["name/108",[86,60.529]],["parent/108",[55,1.29]],["name/109",[87,60.529]],["parent/109",[55,1.29]],["name/110",[88,60.529]],["parent/110",[55,1.29]],["name/111",[89,60.529]],["parent/111",[55,1.29]],["name/112",[90,60.529]],["parent/112",[55,1.29]],["name/113",[91,60.529]],["parent/113",[55,1.29]],["name/114",[92,60.529]],["parent/114",[55,1.29]],["name/115",[93,60.529]],["parent/115",[55,1.29]],["name/116",[94,60.529]],["parent/116",[55,1.29]],["name/117",[95,60.529]],["parent/117",[55,1.29]],["name/118",[96,60.529]],["parent/118",[55,1.29]],["name/119",[97,60.529]],["parent/119",[55,1.29]],["name/120",[98,60.529]],["parent/120",[55,1.29]],["name/121",[99,60.529]],["parent/121",[55,1.29]],["name/122",[100,60.529]],["parent/122",[55,1.29]],["name/123",[101,60.529]],["parent/123",[55,1.29]],["name/124",[102,60.529]],["parent/124",[55,1.29]],["name/125",[103,60.529]],["parent/125",[55,1.29]],["name/126",[104,60.529]],["parent/126",[55,1.29]],["name/127",[105,60.529]],["parent/127",[55,1.29]],["name/128",[106,60.529]],["parent/128",[55,1.29]],["name/129",[107,60.529]],["parent/129",[55,1.29]],["name/130",[108,60.529]],["parent/130",[55,1.29]],["name/131",[109,60.529]],["parent/131",[55,1.29]],["name/132",[110,60.529]],["parent/132",[55,1.29]],["name/133",[111,60.529]],["parent/133",[55,1.29]],["name/134",[112,60.529]],["parent/134",[55,1.29]],["name/135",[113,60.529]],["parent/135",[55,1.29]],["name/136",[114,60.529]],["parent/136",[55,1.29]],["name/137",[115,60.529]],["parent/137",[55,1.29]],["name/138",[116,60.529]],["parent/138",[55,1.29]],["name/139",[117,60.529]],["parent/139",[55,1.29]],["name/140",[118,60.529]],["parent/140",[55,1.29]],["name/141",[119,60.529]],["parent/141",[55,1.29]],["name/142",[120,60.529]],["parent/142",[55,1.29]],["name/143",[121,60.529]],["parent/143",[55,1.29]],["name/144",[122,60.529]],["parent/144",[55,1.29]],["name/145",[123,55.42]],["parent/145",[55,1.29]],["name/146",[124,55.42]],["parent/146",[55,1.29]],["name/147",[125,55.42]],["parent/147",[55,1.29]],["name/148",[126,55.42]],["parent/148",[55,1.29]],["name/149",[123,55.42]],["parent/149",[55,1.29]],["name/150",[124,55.42]],["parent/150",[55,1.29]],["name/151",[125,55.42]],["parent/151",[55,1.29]],["name/152",[126,55.42]],["parent/152",[55,1.29]],["name/153",[127,60.529]],["parent/153",[55,1.29]],["name/154",[128,60.529]],["parent/154",[55,1.29]],["name/155",[129,60.529]],["parent/155",[55,1.29]],["name/156",[130,60.529]],["parent/156",[55,1.29]],["name/157",[131,60.529]],["parent/157",[55,1.29]],["name/158",[132,60.529]],["parent/158",[55,1.29]],["name/159",[133,60.529]],["parent/159",[55,1.29]],["name/160",[134,60.529]],["parent/160",[55,1.29]],["name/161",[135,60.529]],["parent/161",[55,1.29]],["name/162",[136,60.529]],["parent/162",[55,1.29]],["name/163",[137,60.529]],["parent/163",[55,1.29]],["name/164",[138,60.529]],["parent/164",[55,1.29]],["name/165",[139,60.529]],["parent/165",[55,1.29]],["name/166",[140,60.529]],["parent/166",[55,1.29]],["name/167",[141,60.529]],["parent/167",[55,1.29]],["name/168",[142,60.529]],["parent/168",[55,1.29]],["name/169",[143,60.529]],["parent/169",[55,1.29]],["name/170",[144,60.529]],["parent/170",[55,1.29]],["name/171",[145,60.529]],["parent/171",[55,1.29]],["name/172",[146,60.529]],["parent/172",[55,1.29]],["name/173",[147,60.529]],["parent/173",[55,1.29]],["name/174",[148,60.529]],["parent/174",[55,1.29]],["name/175",[149,60.529]],["parent/175",[55,1.29]],["name/176",[150,60.529]],["parent/176",[55,1.29]],["name/177",[151,60.529]],["parent/177",[55,1.29]],["name/178",[152,60.529]],["parent/178",[55,1.29]],["name/179",[153,60.529]],["parent/179",[55,1.29]],["name/180",[154,60.529]],["parent/180",[55,1.29]],["name/181",[155,60.529]],["parent/181",[55,1.29]],["name/182",[156,60.529]],["parent/182",[55,1.29]],["name/183",[157,60.529]],["parent/183",[55,1.29]],["name/184",[158,60.529]],["parent/184",[55,1.29]],["name/185",[159,60.529]],["parent/185",[55,1.29]],["name/186",[160,60.529]],["parent/186",[55,1.29]],["name/187",[161,60.529]],["parent/187",[55,1.29]],["name/188",[162,60.529]],["parent/188",[55,1.29]],["name/189",[163,60.529]],["parent/189",[55,1.29]],["name/190",[164,60.529]],["parent/190",[55,1.29]],["name/191",[165,60.529]],["parent/191",[55,1.29]],["name/192",[166,60.529]],["parent/192",[55,1.29]],["name/193",[167,60.529]],["parent/193",[55,1.29]],["name/194",[168,60.529]],["parent/194",[55,1.29]],["name/195",[169,60.529]],["parent/195",[55,1.29]],["name/196",[170,60.529]],["parent/196",[55,1.29]],["name/197",[171,60.529]],["parent/197",[55,1.29]],["name/198",[172,60.529]],["parent/198",[55,1.29]],["name/199",[173,60.529]],["parent/199",[55,1.29]],["name/200",[174,60.529]],["parent/200",[55,1.29]],["name/201",[175,60.529]],["parent/201",[55,1.29]],["name/202",[176,60.529]],["parent/202",[55,1.29]],["name/203",[177,60.529]],["parent/203",[55,1.29]],["name/204",[178,60.529]],["parent/204",[55,1.29]],["name/205",[179,60.529]],["parent/205",[55,1.29]],["name/206",[180,60.529]],["parent/206",[55,1.29]],["name/207",[181,60.529]],["parent/207",[55,1.29]],["name/208",[182,60.529]],["parent/208",[55,1.29]],["name/209",[183,60.529]],["parent/209",[55,1.29]],["name/210",[184,60.529]],["parent/210",[55,1.29]],["name/211",[185,60.529]],["parent/211",[55,1.29]],["name/212",[186,60.529]],["parent/212",[55,1.29]],["name/213",[187,55.42]],["parent/213",[55,1.29]],["name/214",[187,55.42]],["parent/214",[55,1.29]],["name/215",[188,55.42]],["parent/215",[55,1.29]],["name/216",[189,55.42]],["parent/216",[55,1.29]],["name/217",[188,55.42]],["parent/217",[55,1.29]],["name/218",[189,55.42]],["parent/218",[55,1.29]],["name/219",[190,55.42]],["parent/219",[55,1.29]],["name/220",[190,55.42]],["parent/220",[55,1.29]],["name/221",[191,60.529]],["parent/221",[55,1.29]],["name/222",[192,60.529]],["parent/222",[55,1.29]],["name/223",[193,60.529]],["parent/223",[55,1.29]],["name/224",[194,60.529]],["parent/224",[55,1.29]],["name/225",[195,60.529]],["parent/225",[55,1.29]],["name/226",[196,60.529]],["parent/226",[55,1.29]],["name/227",[197,60.529]],["parent/227",[55,1.29]],["name/228",[198,60.529]],["parent/228",[55,1.29]],["name/229",[199,60.529]],["parent/229",[55,1.29]],["name/230",[200,60.529]],["parent/230",[55,1.29]],["name/231",[201,60.529]],["parent/231",[55,1.29]],["name/232",[202,60.529]],["parent/232",[55,1.29]],["name/233",[203,55.42]],["parent/233",[55,1.29]],["name/234",[204,55.42]],["parent/234",[55,1.29]],["name/235",[205,55.42]],["parent/235",[55,1.29]],["name/236",[206,55.42]],["parent/236",[55,1.29]],["name/237",[207,55.42]],["parent/237",[55,1.29]],["name/238",[208,55.42]],["parent/238",[55,1.29]],["name/239",[203,55.42]],["parent/239",[55,1.29]],["name/240",[204,55.42]],["parent/240",[55,1.29]],["name/241",[205,55.42]],["parent/241",[55,1.29]],["name/242",[206,55.42]],["parent/242",[55,1.29]],["name/243",[207,55.42]],["parent/243",[55,1.29]],["name/244",[208,55.42]],["parent/244",[55,1.29]],["name/245",[209,39.326]],["parent/245",[]],["name/246",[1,28.34]],["parent/246",[209,3.828]],["name/247",[210,60.529]],["parent/247",[209,3.828]],["name/248",[211,60.529]],["parent/248",[209,3.828]],["name/249",[212,60.529]],["parent/249",[209,3.828]],["name/250",[213,60.529]],["parent/250",[209,3.828]],["name/251",[214,60.529]],["parent/251",[209,3.828]],["name/252",[215,60.529]],["parent/252",[209,3.828]],["name/253",[216,44.434]],["parent/253",[209,3.828]],["name/254",[217,44.434]],["parent/254",[209,3.828]],["name/255",[218,60.529]],["parent/255",[209,3.828]],["name/256",[219,60.529]],["parent/256",[209,3.828]],["name/257",[220,45.865]],["parent/257",[]],["name/258",[1,28.34]],["parent/258",[220,4.464]],["name/259",[11,40.16]],["parent/259",[220,4.464]],["name/260",[12,40.16]],["parent/260",[220,4.464]],["name/261",[29,43.183]],["parent/261",[220,4.464]],["name/262",[30,43.183]],["parent/262",[220,4.464]],["name/263",[221,45.865]],["parent/263",[]],["name/264",[1,28.34]],["parent/264",[221,4.464]],["name/265",[222,60.529]],["parent/265",[221,4.464]],["name/266",[223,60.529]],["parent/266",[221,4.464]],["name/267",[224,60.529]],["parent/267",[221,4.464]],["name/268",[225,60.529]],["parent/268",[221,4.464]],["name/269",[226,35.406]],["parent/269",[]],["name/270",[1,28.34]],["parent/270",[226,3.446]],["name/271",[2,42.07]],["parent/271",[226,3.446]],["name/272",[3,42.07]],["parent/272",[226,3.446]],["name/273",[227,60.529]],["parent/273",[226,3.446]],["name/274",[228,60.529]],["parent/274",[226,3.446]],["name/275",[4,41.07]],["parent/275",[226,3.446]],["name/276",[5,41.07]],["parent/276",[226,3.446]],["name/277",[216,44.434]],["parent/277",[226,3.446]],["name/278",[217,44.434]],["parent/278",[226,3.446]],["name/279",[229,55.42]],["parent/279",[226,3.446]],["name/280",[230,55.42]],["parent/280",[226,3.446]],["name/281",[231,47.536]],["parent/281",[226,3.446]],["name/282",[232,47.536]],["parent/282",[226,3.446]],["name/283",[233,52.056]],["parent/283",[226,3.446]],["name/284",[234,52.056]],["parent/284",[226,3.446]],["name/285",[235,60.529]],["parent/285",[226,3.446]],["name/286",[236,60.529]],["parent/286",[226,3.446]],["name/287",[237,45.865]],["parent/287",[]],["name/288",[1,28.34]],["parent/288",[237,4.464]],["name/289",[11,40.16]],["parent/289",[237,4.464]],["name/290",[12,40.16]],["parent/290",[237,4.464]],["name/291",[29,43.183]],["parent/291",[237,4.464]],["name/292",[30,43.183]],["parent/292",[237,4.464]],["name/293",[238,45.865]],["parent/293",[]],["name/294",[1,28.34]],["parent/294",[238,4.464]],["name/295",[51,49.543]],["parent/295",[238,4.464]],["name/296",[52,49.543]],["parent/296",[238,4.464]],["name/297",[4,41.07]],["parent/297",[238,4.464]],["name/298",[5,41.07]],["parent/298",[238,4.464]],["name/299",[239,41.07]],["parent/299",[]],["name/300",[1,28.34]],["parent/300",[239,3.997]],["name/301",[216,44.434]],["parent/301",[239,3.997]],["name/302",[217,44.434]],["parent/302",[239,3.997]],["name/303",[229,55.42]],["parent/303",[239,3.997]],["name/304",[230,55.42]],["parent/304",[239,3.997]],["name/305",[231,47.536]],["parent/305",[239,3.997]],["name/306",[232,47.536]],["parent/306",[239,3.997]],["name/307",[233,52.056]],["parent/307",[239,3.997]],["name/308",[234,52.056]],["parent/308",[239,3.997]],["name/309",[240,36.55]],["parent/309",[]],["name/310",[1,28.34]],["parent/310",[240,3.557]],["name/311",[241,55.42]],["parent/311",[240,3.557]],["name/312",[242,55.42]],["parent/312",[240,3.557]],["name/313",[243,52.056]],["parent/313",[240,3.557]],["name/314",[244,52.056]],["parent/314",[240,3.557]],["name/315",[245,55.42]],["parent/315",[240,3.557]],["name/316",[246,55.42]],["parent/316",[240,3.557]],["name/317",[247,60.529]],["parent/317",[240,3.557]],["name/318",[248,60.529]],["parent/318",[240,3.557]],["name/319",[249,60.529]],["parent/319",[240,3.557]],["name/320",[250,60.529]],["parent/320",[240,3.557]],["name/321",[251,52.056]],["parent/321",[240,3.557]],["name/322",[252,52.056]],["parent/322",[240,3.557]],["name/323",[253,52.056]],["parent/323",[240,3.557]],["name/324",[254,55.42]],["parent/324",[240,3.557]],["name/325",[255,45.865]],["parent/325",[]],["name/326",[1,28.34]],["parent/326",[255,4.464]],["name/327",[11,40.16]],["parent/327",[255,4.464]],["name/328",[12,40.16]],["parent/328",[255,4.464]],["name/329",[29,43.183]],["parent/329",[255,4.464]],["name/330",[30,43.183]],["parent/330",[255,4.464]],["name/331",[256,41.07]],["parent/331",[]],["name/332",[1,28.34]],["parent/332",[256,3.997]],["name/333",[257,60.529]],["parent/333",[256,3.997]],["name/334",[258,60.529]],["parent/334",[256,3.997]],["name/335",[259,60.529]],["parent/335",[256,3.997]],["name/336",[260,60.529]],["parent/336",[256,3.997]],["name/337",[243,52.056]],["parent/337",[256,3.997]],["name/338",[244,52.056]],["parent/338",[256,3.997]],["name/339",[261,60.529]],["parent/339",[256,3.997]],["name/340",[262,60.529]],["parent/340",[256,3.997]],["name/341",[263,43.183]],["parent/341",[]],["name/342",[1,28.34]],["parent/342",[263,4.203]],["name/343",[264,60.529]],["parent/343",[263,4.203]],["name/344",[265,60.529]],["parent/344",[263,4.203]],["name/345",[2,42.07]],["parent/345",[263,4.203]],["name/346",[3,42.07]],["parent/346",[263,4.203]],["name/347",[266,60.529]],["parent/347",[263,4.203]],["name/348",[267,60.529]],["parent/348",[263,4.203]],["name/349",[268,41.07]],["parent/349",[]],["name/350",[1,28.34]],["parent/350",[268,3.997]],["name/351",[269,52.056]],["parent/351",[268,3.997]],["name/352",[270,52.056]],["parent/352",[268,3.997]],["name/353",[271,60.529]],["parent/353",[268,3.997]],["name/354",[272,60.529]],["parent/354",[268,3.997]],["name/355",[4,41.07]],["parent/355",[268,3.997]],["name/356",[5,41.07]],["parent/356",[268,3.997]],["name/357",[273,60.529]],["parent/357",[268,3.997]],["name/358",[274,60.529]],["parent/358",[268,3.997]],["name/359",[275,45.865]],["parent/359",[]],["name/360",[1,28.34]],["parent/360",[275,4.464]],["name/361",[11,40.16]],["parent/361",[275,4.464]],["name/362",[12,40.16]],["parent/362",[275,4.464]],["name/363",[29,43.183]],["parent/363",[275,4.464]],["name/364",[30,43.183]],["parent/364",[275,4.464]],["name/365",[276,45.865]],["parent/365",[]],["name/366",[1,28.34]],["parent/366",[276,4.464]],["name/367",[51,49.543]],["parent/367",[276,4.464]],["name/368",[52,49.543]],["parent/368",[276,4.464]],["name/369",[53,49.543]],["parent/369",[276,4.464]],["name/370",[54,49.543]],["parent/370",[276,4.464]],["name/371",[277,31.084]],["parent/371",[]],["name/372",[1,28.34]],["parent/372",[277,3.026]],["name/373",[278,60.529]],["parent/373",[277,3.026]],["name/374",[279,60.529]],["parent/374",[277,3.026]],["name/375",[280,55.42]],["parent/375",[277,3.026]],["name/376",[281,55.42]],["parent/376",[277,3.026]],["name/377",[2,42.07]],["parent/377",[277,3.026]],["name/378",[3,42.07]],["parent/378",[277,3.026]],["name/379",[282,52.056]],["parent/379",[277,3.026]],["name/380",[283,52.056]],["parent/380",[277,3.026]],["name/381",[4,41.07]],["parent/381",[277,3.026]],["name/382",[5,41.07]],["parent/382",[277,3.026]],["name/383",[284,60.529]],["parent/383",[277,3.026]],["name/384",[285,60.529]],["parent/384",[277,3.026]],["name/385",[286,60.529]],["parent/385",[277,3.026]],["name/386",[287,60.529]],["parent/386",[277,3.026]],["name/387",[231,47.536]],["parent/387",[277,3.026]],["name/388",[232,47.536]],["parent/388",[277,3.026]],["name/389",[251,52.056]],["parent/389",[277,3.026]],["name/390",[252,52.056]],["parent/390",[277,3.026]],["name/391",[288,52.056]],["parent/391",[277,3.026]],["name/392",[289,52.056]],["parent/392",[277,3.026]],["name/393",[290,60.529]],["parent/393",[277,3.026]],["name/394",[291,60.529]],["parent/394",[277,3.026]],["name/395",[292,60.529]],["parent/395",[277,3.026]],["name/396",[293,60.529]],["parent/396",[277,3.026]],["name/397",[294,60.529]],["parent/397",[277,3.026]],["name/398",[295,60.529]],["parent/398",[277,3.026]],["name/399",[296,45.865]],["parent/399",[]],["name/400",[1,28.34]],["parent/400",[296,4.464]],["name/401",[297,60.529]],["parent/401",[296,4.464]],["name/402",[298,60.529]],["parent/402",[296,4.464]],["name/403",[53,49.543]],["parent/403",[296,4.464]],["name/404",[54,49.543]],["parent/404",[296,4.464]],["name/405",[299,39.326]],["parent/405",[]],["name/406",[1,28.34]],["parent/406",[299,3.828]],["name/407",[66,55.42]],["parent/407",[299,3.828]],["name/408",[67,55.42]],["parent/408",[299,3.828]],["name/409",[280,55.42]],["parent/409",[299,3.828]],["name/410",[281,55.42]],["parent/410",[299,3.828]],["name/411",[300,60.529]],["parent/411",[299,3.828]],["name/412",[301,60.529]],["parent/412",[299,3.828]],["name/413",[302,60.529]],["parent/413",[299,3.828]],["name/414",[303,60.529]],["parent/414",[299,3.828]],["name/415",[231,47.536]],["parent/415",[299,3.828]],["name/416",[232,47.536]],["parent/416",[299,3.828]],["name/417",[304,34.879]],["parent/417",[]],["name/418",[1,28.34]],["parent/418",[304,3.395]],["name/419",[269,52.056]],["parent/419",[304,3.395]],["name/420",[270,52.056]],["parent/420",[304,3.395]],["name/421",[2,42.07]],["parent/421",[304,3.395]],["name/422",[3,42.07]],["parent/422",[304,3.395]],["name/423",[282,52.056]],["parent/423",[304,3.395]],["name/424",[283,52.056]],["parent/424",[304,3.395]],["name/425",[4,41.07]],["parent/425",[304,3.395]],["name/426",[5,41.07]],["parent/426",[304,3.395]],["name/427",[216,44.434]],["parent/427",[304,3.395]],["name/428",[217,44.434]],["parent/428",[304,3.395]],["name/429",[305,60.529]],["parent/429",[304,3.395]],["name/430",[306,60.529]],["parent/430",[304,3.395]],["name/431",[307,55.42]],["parent/431",[304,3.395]],["name/432",[308,55.42]],["parent/432",[304,3.395]],["name/433",[288,52.056]],["parent/433",[304,3.395]],["name/434",[289,52.056]],["parent/434",[304,3.395]],["name/435",[309,43.183]],["parent/435",[]],["name/436",[1,28.34]],["parent/436",[309,4.203]],["name/437",[310,52.056]],["parent/437",[309,4.203]],["name/438",[311,52.056]],["parent/438",[309,4.203]],["name/439",[216,44.434]],["parent/439",[309,4.203]],["name/440",[217,44.434]],["parent/440",[309,4.203]],["name/441",[231,47.536]],["parent/441",[309,4.203]],["name/442",[232,47.536]],["parent/442",[309,4.203]],["name/443",[312,45.865]],["parent/443",[]],["name/444",[1,28.34]],["parent/444",[312,4.464]],["name/445",[11,40.16]],["parent/445",[312,4.464]],["name/446",[12,40.16]],["parent/446",[312,4.464]],["name/447",[29,43.183]],["parent/447",[312,4.464]],["name/448",[30,43.183]],["parent/448",[312,4.464]],["name/449",[313,45.865]],["parent/449",[]],["name/450",[1,28.34]],["parent/450",[313,4.464]],["name/451",[11,40.16]],["parent/451",[313,4.464]],["name/452",[12,40.16]],["parent/452",[313,4.464]],["name/453",[29,43.183]],["parent/453",[313,4.464]],["name/454",[30,43.183]],["parent/454",[313,4.464]],["name/455",[314,35.406]],["parent/455",[]],["name/456",[1,28.34]],["parent/456",[314,3.446]],["name/457",[269,52.056]],["parent/457",[314,3.446]],["name/458",[270,52.056]],["parent/458",[314,3.446]],["name/459",[315,60.529]],["parent/459",[314,3.446]],["name/460",[316,60.529]],["parent/460",[314,3.446]],["name/461",[317,60.529]],["parent/461",[314,3.446]],["name/462",[318,60.529]],["parent/462",[314,3.446]],["name/463",[2,42.07]],["parent/463",[314,3.446]],["name/464",[3,42.07]],["parent/464",[314,3.446]],["name/465",[282,52.056]],["parent/465",[314,3.446]],["name/466",[283,52.056]],["parent/466",[314,3.446]],["name/467",[4,41.07]],["parent/467",[314,3.446]],["name/468",[5,41.07]],["parent/468",[314,3.446]],["name/469",[307,55.42]],["parent/469",[314,3.446]],["name/470",[308,55.42]],["parent/470",[314,3.446]],["name/471",[288,52.056]],["parent/471",[314,3.446]],["name/472",[289,52.056]],["parent/472",[314,3.446]],["name/473",[319,43.183]],["parent/473",[]],["name/474",[1,28.34]],["parent/474",[319,4.203]],["name/475",[51,49.543]],["parent/475",[319,4.203]],["name/476",[52,49.543]],["parent/476",[319,4.203]],["name/477",[53,49.543]],["parent/477",[319,4.203]],["name/478",[54,49.543]],["parent/478",[319,4.203]],["name/479",[233,52.056]],["parent/479",[319,4.203]],["name/480",[234,52.056]],["parent/480",[319,4.203]],["name/481",[320,37.842]],["parent/481",[]],["name/482",[1,28.34]],["parent/482",[320,3.683]],["name/483",[310,52.056]],["parent/483",[320,3.683]],["name/484",[311,52.056]],["parent/484",[320,3.683]],["name/485",[241,55.42]],["parent/485",[320,3.683]],["name/486",[242,55.42]],["parent/486",[320,3.683]],["name/487",[2,42.07]],["parent/487",[320,3.683]],["name/488",[3,42.07]],["parent/488",[320,3.683]],["name/489",[11,40.16]],["parent/489",[320,3.683]],["name/490",[12,40.16]],["parent/490",[320,3.683]],["name/491",[321,55.42]],["parent/491",[320,3.683]],["name/492",[322,55.42]],["parent/492",[320,3.683]],["name/493",[216,44.434]],["parent/493",[320,3.683]],["name/494",[217,44.434]],["parent/494",[320,3.683]],["name/495",[323,45.865]],["parent/495",[]],["name/496",[1,28.34]],["parent/496",[323,4.464]],["name/497",[11,40.16]],["parent/497",[323,4.464]],["name/498",[12,40.16]],["parent/498",[323,4.464]],["name/499",[29,43.183]],["parent/499",[323,4.464]],["name/500",[30,43.183]],["parent/500",[323,4.464]],["name/501",[324,37.842]],["parent/501",[]],["name/502",[1,28.34]],["parent/502",[324,3.683]],["name/503",[325,60.529]],["parent/503",[324,3.683]],["name/504",[326,60.529]],["parent/504",[324,3.683]],["name/505",[310,52.056]],["parent/505",[324,3.683]],["name/506",[311,52.056]],["parent/506",[324,3.683]],["name/507",[321,55.42]],["parent/507",[324,3.683]],["name/508",[322,55.42]],["parent/508",[324,3.683]],["name/509",[4,41.07]],["parent/509",[324,3.683]],["name/510",[5,41.07]],["parent/510",[324,3.683]],["name/511",[216,44.434]],["parent/511",[324,3.683]],["name/512",[217,44.434]],["parent/512",[324,3.683]],["name/513",[48,55.42]],["parent/513",[324,3.683]],["name/514",[49,55.42]],["parent/514",[324,3.683]],["name/515",[327,45.865]],["parent/515",[]],["name/516",[1,28.34]],["parent/516",[327,4.464]],["name/517",[328,60.529]],["parent/517",[327,4.464]],["name/518",[329,60.529]],["parent/518",[327,4.464]],["name/519",[330,60.529]],["parent/519",[327,4.464]],["name/520",[331,60.529]],["parent/520",[327,4.464]],["name/521",[332,37.842]],["parent/521",[]],["name/522",[1,28.34]],["parent/522",[332,3.683]],["name/523",[243,52.056]],["parent/523",[332,3.683]],["name/524",[244,52.056]],["parent/524",[332,3.683]],["name/525",[11,40.16]],["parent/525",[332,3.683]],["name/526",[12,40.16]],["parent/526",[332,3.683]],["name/527",[245,55.42]],["parent/527",[332,3.683]],["name/528",[246,55.42]],["parent/528",[332,3.683]],["name/529",[251,52.056]],["parent/529",[332,3.683]],["name/530",[252,52.056]],["parent/530",[332,3.683]],["name/531",[8,55.42]],["parent/531",[332,3.683]],["name/532",[9,55.42]],["parent/532",[332,3.683]],["name/533",[253,52.056]],["parent/533",[332,3.683]],["name/534",[254,55.42]],["parent/534",[332,3.683]],["name/535",[333,52.056]],["parent/535",[]],["name/536",[1,28.34]],["parent/536",[333,5.067]],["name/537",[334,60.529]],["parent/537",[333,5.067]],["name/538",[335,45.865]],["parent/538",[]],["name/539",[1,28.34]],["parent/539",[335,4.464]],["name/540",[336,60.529]],["parent/540",[335,4.464]],["name/541",[337,60.529]],["parent/541",[335,4.464]],["name/542",[338,60.529]],["parent/542",[335,4.464]],["name/543",[339,60.529]],["parent/543",[335,4.464]],["name/544",[340,21.081]],["parent/544",[]],["name/545",[341,60.529]],["parent/545",[340,2.052]],["name/546",[342,60.529]],["parent/546",[340,2.052]],["name/547",[343,60.529]],["parent/547",[340,2.052]],["name/548",[344,60.529]],["parent/548",[340,2.052]],["name/549",[345,60.529]],["parent/549",[340,2.052]],["name/550",[346,60.529]],["parent/550",[340,2.052]],["name/551",[347,60.529]],["parent/551",[340,2.052]],["name/552",[253,52.056]],["parent/552",[340,2.052]],["name/553",[348,60.529]],["parent/553",[340,2.052]],["name/554",[349,60.529]],["parent/554",[340,2.052]],["name/555",[350,60.529]],["parent/555",[340,2.052]],["name/556",[351,60.529]],["parent/556",[340,2.052]],["name/557",[352,60.529]],["parent/557",[340,2.052]],["name/558",[353,60.529]],["parent/558",[340,2.052]],["name/559",[354,60.529]],["parent/559",[340,2.052]],["name/560",[355,60.529]],["parent/560",[340,2.052]],["name/561",[356,60.529]],["parent/561",[340,2.052]],["name/562",[357,60.529]],["parent/562",[340,2.052]],["name/563",[358,60.529]],["parent/563",[340,2.052]],["name/564",[359,60.529]],["parent/564",[340,2.052]],["name/565",[360,60.529]],["parent/565",[340,2.052]],["name/566",[361,60.529]],["parent/566",[340,2.052]],["name/567",[362,60.529]],["parent/567",[340,2.052]],["name/568",[363,60.529]],["parent/568",[340,2.052]],["name/569",[364,60.529]],["parent/569",[340,2.052]],["name/570",[365,60.529]],["parent/570",[340,2.052]],["name/571",[366,60.529]],["parent/571",[340,2.052]],["name/572",[367,60.529]],["parent/572",[340,2.052]],["name/573",[368,60.529]],["parent/573",[340,2.052]],["name/574",[369,60.529]],["parent/574",[340,2.052]],["name/575",[370,60.529]],["parent/575",[340,2.052]],["name/576",[371,60.529]],["parent/576",[340,2.052]],["name/577",[372,60.529]],["parent/577",[340,2.052]],["name/578",[373,60.529]],["parent/578",[340,2.052]],["name/579",[374,60.529]],["parent/579",[340,2.052]],["name/580",[375,60.529]],["parent/580",[340,2.052]],["name/581",[376,60.529]],["parent/581",[340,2.052]],["name/582",[377,60.529]],["parent/582",[340,2.052]],["name/583",[378,60.529]],["parent/583",[340,2.052]],["name/584",[379,60.529]],["parent/584",[340,2.052]],["name/585",[380,60.529]],["parent/585",[340,2.052]],["name/586",[381,60.529]],["parent/586",[340,2.052]],["name/587",[382,60.529]],["parent/587",[340,2.052]],["name/588",[383,60.529]],["parent/588",[340,2.052]],["name/589",[384,60.529]],["parent/589",[340,2.052]],["name/590",[385,60.529]],["parent/590",[340,2.052]],["name/591",[386,60.529]],["parent/591",[340,2.052]],["name/592",[387,60.529]],["parent/592",[340,2.052]],["name/593",[388,60.529]],["parent/593",[340,2.052]],["name/594",[389,60.529]],["parent/594",[340,2.052]],["name/595",[390,60.529]],["parent/595",[340,2.052]],["name/596",[391,60.529]],["parent/596",[340,2.052]],["name/597",[392,60.529]],["parent/597",[340,2.052]],["name/598",[393,60.529]],["parent/598",[340,2.052]],["name/599",[394,60.529]],["parent/599",[340,2.052]],["name/600",[395,60.529]],["parent/600",[340,2.052]],["name/601",[396,60.529]],["parent/601",[340,2.052]],["name/602",[397,60.529]],["parent/602",[340,2.052]],["name/603",[398,60.529]],["parent/603",[340,2.052]],["name/604",[399,60.529]],["parent/604",[340,2.052]],["name/605",[400,60.529]],["parent/605",[340,2.052]],["name/606",[401,60.529]],["parent/606",[340,2.052]],["name/607",[402,60.529]],["parent/607",[340,2.052]],["name/608",[403,60.529]],["parent/608",[340,2.052]],["name/609",[404,60.529]],["parent/609",[340,2.052]],["name/610",[405,60.529]],["parent/610",[340,2.052]],["name/611",[406,60.529]],["parent/611",[340,2.052]],["name/612",[407,60.529]],["parent/612",[340,2.052]],["name/613",[408,60.529]],["parent/613",[340,2.052]],["name/614",[409,60.529]],["parent/614",[340,2.052]],["name/615",[410,60.529]],["parent/615",[340,2.052]],["name/616",[411,60.529]],["parent/616",[340,2.052]],["name/617",[412,60.529]],["parent/617",[340,2.052]],["name/618",[413,60.529]],["parent/618",[340,2.052]],["name/619",[414,60.529]],["parent/619",[340,2.052]],["name/620",[415,60.529]],["parent/620",[340,2.052]],["name/621",[416,41.07]],["parent/621",[]],["name/622",[417,60.529]],["parent/622",[416,3.997]],["name/623",[418,60.529]],["parent/623",[416,3.997]],["name/624",[419,60.529]],["parent/624",[416,3.997]],["name/625",[304,34.879]],["parent/625",[416,3.997]],["name/626",[420,60.529]],["parent/626",[416,3.997]],["name/627",[421,60.529]],["parent/627",[416,3.997]],["name/628",[422,60.529]],["parent/628",[416,3.997]],["name/629",[423,60.529]],["parent/629",[416,3.997]],["name/630",[424,60.529]],["parent/630",[416,3.997]],["name/631",[425,45.865]],["parent/631",[]],["name/632",[426,60.529]],["parent/632",[425,4.464]],["name/633",[427,60.529]],["parent/633",[425,4.464]],["name/634",[428,60.529]],["parent/634",[425,4.464]],["name/635",[429,60.529]],["parent/635",[425,4.464]],["name/636",[430,60.529]],["parent/636",[425,4.464]]],"invertedIndex":[["acltoken",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{}}}],["addcrlpath",{"_index":63,"name":{"85":{}},"parent":{}}],["addcrlvalue",{"_index":65,"name":{"87":{}},"parent":{}}],["addenabledciphersuite",{"_index":75,"name":{"97":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":78,"name":{"100":{}},"parent":{}}],["adderror",{"_index":337,"name":{"541":{}},"parent":{}}],["agentinfo",{"_index":342,"name":{"546":{}},"parent":{}}],["blockingqueryoptions",{"_index":10,"name":{"10":{}},"parent":{"11":{},"12":{},"13":{},"14":{},"15":{}}}],["catalogdatacenters",{"_index":371,"name":{"576":{}},"parent":{}}],["catalognodes",{"_index":372,"name":{"577":{}},"parent":{}}],["catalognodeservices",{"_index":382,"name":{"587":{}},"parent":{}}],["catalognodeserviceswithoptions",{"_index":383,"name":{"588":{}},"parent":{}}],["catalognodeswithoptions",{"_index":373,"name":{"578":{}},"parent":{}}],["catalogservicenodes",{"_index":369,"name":{"574":{}},"parent":{}}],["catalogservicenodeswithoptions",{"_index":370,"name":{"575":{}},"parent":{}}],["catalogservices",{"_index":380,"name":{"585":{}},"parent":{}}],["catalogserviceswithoptions",{"_index":381,"name":{"586":{}},"parent":{}}],["cause",{"_index":428,"name":{"634":{}},"parent":{}}],["check",{"_index":15,"name":{"16":{}},"parent":{"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{}}}],["checklist",{"_index":28,"name":{"34":{}},"parent":{"35":{},"36":{},"37":{},"38":{},"39":{}}}],["checkoptions",{"_index":31,"name":{"40":{}},"parent":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{}}}],["checkqueryoptions",{"_index":50,"name":{"70":{}},"parent":{"71":{},"72":{},"73":{},"74":{},"75":{}}}],["cloneacltoken",{"_index":358,"name":{"563":{}},"parent":{}}],["close",{"_index":415,"name":{"620":{}},"parent":{}}],["constructor",{"_index":1,"name":{"1":{},"11":{},"17":{},"35":{},"41":{},"71":{},"77":{},"246":{},"258":{},"264":{},"270":{},"288":{},"294":{},"300":{},"310":{},"326":{},"332":{},"342":{},"350":{},"360":{},"366":{},"372":{},"400":{},"406":{},"418":{},"436":{},"444":{},"450":{},"456":{},"474":{},"482":{},"496":{},"502":{},"516":{},"522":{},"536":{},"539":{}},"parent":{}}],["consulclient",{"_index":340,"name":{"544":{}},"parent":{"545":{},"546":{},"547":{},"548":{},"549":{},"550":{},"551":{},"552":{},"553":{},"554":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"566":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"601":{},"602":{},"603":{},"604":{},"605":{},"606":{},"607":{},"608":{},"609":{},"610":{},"611":{},"612":{},"613":{},"614":{},"615":{},"616":{},"617":{},"618":{},"619":{},"620":{}}}],["consulclientoptions",{"_index":55,"name":{"76":{}},"parent":{"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{}}}],["coordinate",{"_index":209,"name":{"245":{}},"parent":{"246":{},"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"256":{}}}],["coordinatedatacenters",{"_index":345,"name":{"549":{}},"parent":{}}],["coordinatelist",{"_index":220,"name":{"257":{}},"parent":{"258":{},"259":{},"260":{},"261":{},"262":{}}}],["coordinatenodes",{"_index":343,"name":{"547":{}},"parent":{}}],["coordinatenodeswithoptions",{"_index":344,"name":{"548":{}},"parent":{}}],["create",{"_index":341,"name":{"545":{}},"parent":{}}],["createacltoken",{"_index":356,"name":{"561":{}},"parent":{}}],["createpreparedquery",{"_index":408,"name":{"613":{}},"parent":{}}],["createsession",{"_index":398,"name":{"603":{}},"parent":{}}],["createsessionwithoptions",{"_index":399,"name":{"604":{}},"parent":{}}],["dccoordinates",{"_index":221,"name":{"263":{}},"parent":{"264":{},"265":{},"266":{},"267":{},"268":{}}}],["deletepreparedquery",{"_index":412,"name":{"617":{}},"parent":{}}],["deletevalue",{"_index":349,"name":{"554":{}},"parent":{}}],["deletevalues",{"_index":352,"name":{"557":{}},"parent":{}}],["deregistercheck",{"_index":387,"name":{"592":{}},"parent":{}}],["deregisterservice",{"_index":368,"name":{"573":{}},"parent":{}}],["destroyacltoken",{"_index":361,"name":{"566":{}},"parent":{}}],["destroysession",{"_index":407,"name":{"612":{}},"parent":{}}],["event",{"_index":226,"name":{"269":{}},"parent":{"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{},"285":{},"286":{}}}],["eventlist",{"_index":237,"name":{"287":{}},"parent":{"288":{},"289":{},"290":{},"291":{},"292":{}}}],["eventlistoptions",{"_index":238,"name":{"293":{}},"parent":{"294":{},"295":{},"296":{},"297":{},"298":{}}}],["eventoptions",{"_index":239,"name":{"299":{}},"parent":{"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{},"308":{}}}],["events",{"_index":420,"name":{"626":{}},"parent":{}}],["executepreparedquery",{"_index":413,"name":{"618":{}},"parent":{}}],["executepreparedquerywithoptions",{"_index":414,"name":{"619":{}},"parent":{}}],["failcheck",{"_index":392,"name":{"597":{}},"parent":{}}],["failcheckwithnote",{"_index":393,"name":{"598":{}},"parent":{}}],["failed",{"_index":430,"name":{"636":{}},"parent":{}}],["fireevent",{"_index":362,"name":{"567":{}},"parent":{}}],["fireeventwithoptions",{"_index":363,"name":{"568":{}},"parent":{}}],["getacltoken",{"_index":56,"name":{"78":{}},"parent":{}}],["getacquiresession",{"_index":257,"name":{"333":{}},"parent":{}}],["getaddress",{"_index":269,"name":{"351":{},"419":{},"457":{}},"parent":{}}],["getadj",{"_index":210,"name":{"247":{}},"parent":{}}],["getallpreparedqueries",{"_index":410,"name":{"615":{}},"parent":{}}],["getalpnversions",{"_index":58,"name":{"80":{}},"parent":{}}],["getbehavior",{"_index":325,"name":{"503":{}},"parent":{}}],["getblockingoptions",{"_index":51,"name":{"72":{},"295":{},"367":{},"475":{}},"parent":{}}],["getcasindex",{"_index":259,"name":{"335":{}},"parent":{}}],["getchecklistoptions",{"_index":315,"name":{"459":{}},"parent":{}}],["getcheckoptions",{"_index":317,"name":{"461":{}},"parent":{}}],["getchecks",{"_index":310,"name":{"437":{},"483":{},"505":{}},"parent":{}}],["getconnecttimeout",{"_index":60,"name":{"82":{}},"parent":{}}],["getcreateindex",{"_index":241,"name":{"311":{},"485":{}},"parent":{}}],["getcrlpaths",{"_index":62,"name":{"84":{}},"parent":{}}],["getcrlvalues",{"_index":64,"name":{"86":{}},"parent":{}}],["getdatacenter",{"_index":222,"name":{"265":{}},"parent":{}}],["getdc",{"_index":66,"name":{"88":{},"407":{}},"parent":{}}],["getdcs",{"_index":278,"name":{"373":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":68,"name":{"90":{}},"parent":{}}],["getdefaulthost",{"_index":70,"name":{"92":{}},"parent":{}}],["getdefaultport",{"_index":72,"name":{"94":{}},"parent":{}}],["getderegisterafter",{"_index":32,"name":{"42":{}},"parent":{}}],["getdnsttl",{"_index":280,"name":{"375":{},"409":{}},"parent":{}}],["getenabledciphersuites",{"_index":74,"name":{"96":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":76,"name":{"98":{}},"parent":{}}],["geterr",{"_index":212,"name":{"249":{}},"parent":{}}],["geterrors",{"_index":336,"name":{"540":{}},"parent":{}}],["geterrorssize",{"_index":338,"name":{"542":{}},"parent":{}}],["getfailovers",{"_index":300,"name":{"411":{}},"parent":{}}],["getflags",{"_index":243,"name":{"313":{},"337":{},"523":{}},"parent":{}}],["getgrpc",{"_index":34,"name":{"44":{}},"parent":{}}],["getheight",{"_index":214,"name":{"251":{}},"parent":{}}],["gethttp",{"_index":38,"name":{"48":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":85,"name":{"107":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":87,"name":{"109":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":89,"name":{"111":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":91,"name":{"113":{}},"parent":{}}],["getid",{"_index":2,"name":{"2":{},"18":{},"50":{},"271":{},"345":{},"377":{},"421":{},"463":{},"487":{}},"parent":{}}],["getidletimeout",{"_index":93,"name":{"115":{}},"parent":{}}],["getidletimeoutunit",{"_index":95,"name":{"117":{}},"parent":{}}],["getindex",{"_index":11,"name":{"12":{},"36":{},"259":{},"289":{},"327":{},"361":{},"445":{},"451":{},"489":{},"497":{},"525":{}},"parent":{}}],["getinitialsettings",{"_index":97,"name":{"119":{}},"parent":{}}],["getinterval",{"_index":40,"name":{"52":{}},"parent":{}}],["getjdksslengineoptions",{"_index":99,"name":{"121":{}},"parent":{}}],["getkeepalivetimeout",{"_index":103,"name":{"125":{}},"parent":{}}],["getkey",{"_index":245,"name":{"315":{},"527":{}},"parent":{}}],["getkeys",{"_index":346,"name":{"550":{}},"parent":{}}],["getkeystoreoptions",{"_index":105,"name":{"127":{}},"parent":{}}],["getkeyswithoptions",{"_index":347,"name":{"551":{}},"parent":{}}],["getlanaddress",{"_index":271,"name":{"353":{}},"parent":{}}],["getlimit",{"_index":297,"name":{"401":{}},"parent":{}}],["getlist",{"_index":29,"name":{"38":{},"261":{},"291":{},"329":{},"363":{},"447":{},"453":{},"499":{}},"parent":{}}],["getlocaladdress",{"_index":107,"name":{"129":{}},"parent":{}}],["getlockdelay",{"_index":321,"name":{"491":{},"507":{}},"parent":{}}],["getlockindex",{"_index":247,"name":{"317":{}},"parent":{}}],["getlogactivity",{"_index":109,"name":{"131":{}},"parent":{}}],["getltime",{"_index":227,"name":{"273":{}},"parent":{}}],["getmaxchunksize",{"_index":111,"name":{"133":{}},"parent":{}}],["getmaxheadersize",{"_index":113,"name":{"135":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":115,"name":{"137":{}},"parent":{}}],["getmaxpoolsize",{"_index":117,"name":{"139":{}},"parent":{}}],["getmaxredirects",{"_index":119,"name":{"141":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":121,"name":{"143":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":123,"name":{"145":{},"149":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":125,"name":{"147":{},"151":{}},"parent":{}}],["getmeta",{"_index":282,"name":{"379":{},"423":{},"465":{}},"parent":{}}],["getmetricsname",{"_index":127,"name":{"153":{}},"parent":{}}],["getmodifyindex",{"_index":249,"name":{"319":{}},"parent":{}}],["getname",{"_index":4,"name":{"4":{},"20":{},"54":{},"275":{},"297":{},"355":{},"381":{},"425":{},"467":{},"509":{}},"parent":{}}],["getnear",{"_index":53,"name":{"74":{},"369":{},"403":{},"477":{}},"parent":{}}],["getnearestn",{"_index":284,"name":{"383":{}},"parent":{}}],["getnode",{"_index":216,"name":{"253":{},"277":{},"301":{},"427":{},"439":{},"493":{},"511":{}},"parent":{}}],["getnodeaddress",{"_index":305,"name":{"429":{}},"parent":{}}],["getnodename",{"_index":16,"name":{"22":{}},"parent":{}}],["getnodes",{"_index":302,"name":{"413":{}},"parent":{}}],["getnotes",{"_index":18,"name":{"24":{},"56":{}},"parent":{}}],["getopensslengineoptions",{"_index":129,"name":{"155":{}},"parent":{}}],["getoperationssize",{"_index":334,"name":{"537":{}},"parent":{}}],["getopindex",{"_index":328,"name":{"517":{}},"parent":{}}],["getoutput",{"_index":20,"name":{"26":{}},"parent":{}}],["getpassing",{"_index":286,"name":{"385":{}},"parent":{}}],["getpayload",{"_index":229,"name":{"279":{},"303":{}},"parent":{}}],["getpemkeycertoptions",{"_index":131,"name":{"157":{}},"parent":{}}],["getpemtrustoptions",{"_index":133,"name":{"159":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":135,"name":{"161":{}},"parent":{}}],["getpfxtrustoptions",{"_index":137,"name":{"163":{}},"parent":{}}],["getpipelininglimit",{"_index":141,"name":{"167":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":143,"name":{"169":{}},"parent":{}}],["getport",{"_index":307,"name":{"431":{},"469":{}},"parent":{}}],["getpreparedquery",{"_index":409,"name":{"614":{}},"parent":{}}],["getprotocolversion",{"_index":145,"name":{"171":{}},"parent":{}}],["getproxyoptions",{"_index":147,"name":{"173":{}},"parent":{}}],["getreason",{"_index":266,"name":{"347":{}},"parent":{}}],["getreceivebuffersize",{"_index":149,"name":{"175":{}},"parent":{}}],["getreleasesession",{"_index":261,"name":{"339":{}},"parent":{}}],["getresultssize",{"_index":339,"name":{"543":{}},"parent":{}}],["getrules",{"_index":6,"name":{"6":{}},"parent":{}}],["getscriptargs",{"_index":42,"name":{"58":{}},"parent":{}}],["getsendbuffersize",{"_index":155,"name":{"181":{}},"parent":{}}],["getservers",{"_index":224,"name":{"267":{}},"parent":{}}],["getservice",{"_index":231,"name":{"281":{},"305":{},"387":{},"415":{},"441":{}},"parent":{}}],["getserviceid",{"_index":22,"name":{"28":{},"60":{}},"parent":{}}],["getservicename",{"_index":24,"name":{"30":{}},"parent":{}}],["getsession",{"_index":251,"name":{"321":{},"389":{},"529":{}},"parent":{}}],["getsolinger",{"_index":159,"name":{"185":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":163,"name":{"189":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":165,"name":{"191":{}},"parent":{}}],["getstatus",{"_index":26,"name":{"32":{},"62":{}},"parent":{}}],["gettag",{"_index":233,"name":{"283":{},"307":{},"479":{}},"parent":{}}],["gettags",{"_index":288,"name":{"391":{},"433":{},"471":{}},"parent":{}}],["gettcp",{"_index":44,"name":{"64":{}},"parent":{}}],["gettemplateregexp",{"_index":290,"name":{"393":{}},"parent":{}}],["gettemplatetype",{"_index":292,"name":{"395":{}},"parent":{}}],["gettimeout",{"_index":177,"name":{"203":{}},"parent":{}}],["gettoken",{"_index":294,"name":{"397":{}},"parent":{}}],["gettrafficclass",{"_index":179,"name":{"205":{}},"parent":{}}],["gettruststoreoptions",{"_index":183,"name":{"209":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":188,"name":{"215":{},"217":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":190,"name":{"219":{},"220":{}},"parent":{}}],["getttl",{"_index":48,"name":{"68":{},"513":{}},"parent":{}}],["gettype",{"_index":8,"name":{"8":{},"531":{}},"parent":{}}],["getuseragent",{"_index":195,"name":{"225":{}},"parent":{}}],["getvalue",{"_index":253,"name":{"323":{},"533":{},"552":{}},"parent":{}}],["getvalues",{"_index":350,"name":{"555":{}},"parent":{}}],["getvalueswithoptions",{"_index":351,"name":{"556":{}},"parent":{}}],["getvaluewithoptions",{"_index":348,"name":{"553":{}},"parent":{}}],["getvec",{"_index":218,"name":{"255":{}},"parent":{}}],["getversion",{"_index":235,"name":{"285":{}},"parent":{}}],["getwait",{"_index":13,"name":{"14":{}},"parent":{}}],["getwanaddress",{"_index":273,"name":{"357":{}},"parent":{}}],["getwebsocketclosingtimeout",{"_index":201,"name":{"231":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":203,"name":{"233":{},"239":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":205,"name":{"235":{},"241":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":207,"name":{"237":{},"243":{}},"parent":{}}],["getwhat",{"_index":330,"name":{"519":{}},"parent":{}}],["healthchecks",{"_index":374,"name":{"579":{}},"parent":{}}],["healthcheckswithoptions",{"_index":375,"name":{"580":{}},"parent":{}}],["healthservicenodes",{"_index":378,"name":{"583":{}},"parent":{}}],["healthservicenodeswithoptions",{"_index":379,"name":{"584":{}},"parent":{}}],["healthstate",{"_index":376,"name":{"581":{}},"parent":{}}],["healthstatewithoptions",{"_index":377,"name":{"582":{}},"parent":{}}],["infoacltoken",{"_index":360,"name":{"565":{}},"parent":{}}],["infosession",{"_index":400,"name":{"605":{}},"parent":{}}],["infosessionwithoptions",{"_index":401,"name":{"606":{}},"parent":{}}],["isenable",{"_index":264,"name":{"343":{}},"parent":{}}],["isfollowredirects",{"_index":79,"name":{"101":{}},"parent":{}}],["isforcesni",{"_index":81,"name":{"103":{}},"parent":{}}],["isgrpctls",{"_index":36,"name":{"46":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":83,"name":{"105":{}},"parent":{}}],["iskeepalive",{"_index":101,"name":{"123":{}},"parent":{}}],["ispipelining",{"_index":139,"name":{"165":{}},"parent":{}}],["isreuseaddress",{"_index":151,"name":{"177":{}},"parent":{}}],["isreuseport",{"_index":153,"name":{"179":{}},"parent":{}}],["issendunmaskedframes",{"_index":157,"name":{"183":{}},"parent":{}}],["isssl",{"_index":161,"name":{"187":{}},"parent":{}}],["istcpcork",{"_index":167,"name":{"193":{}},"parent":{}}],["istcpfastopen",{"_index":169,"name":{"195":{}},"parent":{}}],["istcpkeepalive",{"_index":171,"name":{"197":{}},"parent":{}}],["istcpnodelay",{"_index":173,"name":{"199":{}},"parent":{}}],["istcpquickack",{"_index":175,"name":{"201":{}},"parent":{}}],["istlsskipverify",{"_index":46,"name":{"66":{}},"parent":{}}],["istrustall",{"_index":181,"name":{"207":{}},"parent":{}}],["istryusecompression",{"_index":185,"name":{"211":{}},"parent":{}}],["isusealpn",{"_index":191,"name":{"221":{}},"parent":{}}],["isusepooledbuffers",{"_index":193,"name":{"223":{}},"parent":{}}],["isuseragentenabled",{"_index":197,"name":{"227":{}},"parent":{}}],["isverifyhost",{"_index":199,"name":{"229":{}},"parent":{}}],["key",{"_index":417,"name":{"622":{}},"parent":{}}],["keyprefix",{"_index":418,"name":{"623":{}},"parent":{}}],["keyvalue",{"_index":240,"name":{"309":{}},"parent":{"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"322":{},"323":{},"324":{}}}],["keyvaluelist",{"_index":255,"name":{"325":{}},"parent":{"326":{},"327":{},"328":{},"329":{},"330":{}}}],["keyvalueoptions",{"_index":256,"name":{"331":{}},"parent":{"332":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{},"340":{}}}],["leaderstatus",{"_index":396,"name":{"601":{}},"parent":{}}],["listacltokens",{"_index":359,"name":{"564":{}},"parent":{}}],["listevents",{"_index":364,"name":{"569":{}},"parent":{}}],["listeventswithoptions",{"_index":365,"name":{"570":{}},"parent":{}}],["listnodesessions",{"_index":405,"name":{"610":{}},"parent":{}}],["listnodesessionswithoptions",{"_index":406,"name":{"611":{}},"parent":{}}],["listsessions",{"_index":403,"name":{"608":{}},"parent":{}}],["listsessionswithoptions",{"_index":404,"name":{"609":{}},"parent":{}}],["localchecks",{"_index":385,"name":{"590":{}},"parent":{}}],["localservices",{"_index":384,"name":{"589":{}},"parent":{}}],["maintenanceoptions",{"_index":263,"name":{"341":{}},"parent":{"342":{},"343":{},"344":{},"345":{},"346":{},"347":{},"348":{}}}],["maintenanceservice",{"_index":367,"name":{"572":{}},"parent":{}}],["nextresult",{"_index":427,"name":{"633":{}},"parent":{}}],["node",{"_index":268,"name":{"349":{}},"parent":{"350":{},"351":{},"352":{},"353":{},"354":{},"355":{},"356":{},"357":{},"358":{}}}],["nodelist",{"_index":275,"name":{"359":{}},"parent":{"360":{},"361":{},"362":{},"363":{},"364":{}}}],["nodequeryoptions",{"_index":276,"name":{"365":{}},"parent":{"366":{},"367":{},"368":{},"369":{},"370":{}}}],["nodes",{"_index":421,"name":{"627":{}},"parent":{}}],["passcheck",{"_index":388,"name":{"593":{}},"parent":{}}],["passcheckwithnote",{"_index":389,"name":{"594":{}},"parent":{}}],["peersstatus",{"_index":397,"name":{"602":{}},"parent":{}}],["preparedquerydefinition",{"_index":277,"name":{"371":{}},"parent":{"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{},"381":{},"382":{},"383":{},"384":{},"385":{},"386":{},"387":{},"388":{},"389":{},"390":{},"391":{},"392":{},"393":{},"394":{},"395":{},"396":{},"397":{},"398":{}}}],["preparedqueryexecuteoptions",{"_index":296,"name":{"399":{}},"parent":{"400":{},"401":{},"402":{},"403":{},"404":{}}}],["preparedqueryexecuteresponse",{"_index":299,"name":{"405":{}},"parent":{"406":{},"407":{},"408":{},"409":{},"410":{},"411":{},"412":{},"413":{},"414":{},"415":{},"416":{}}}],["prevresult",{"_index":426,"name":{"632":{}},"parent":{}}],["putvalue",{"_index":353,"name":{"558":{}},"parent":{}}],["putvaluewithoptions",{"_index":354,"name":{"559":{}},"parent":{}}],["registercheck",{"_index":386,"name":{"591":{}},"parent":{}}],["registerservice",{"_index":366,"name":{"571":{}},"parent":{}}],["renewsession",{"_index":402,"name":{"607":{}},"parent":{}}],["service",{"_index":304,"name":{"417":{},"625":{}},"parent":{"418":{},"419":{},"420":{},"421":{},"422":{},"423":{},"424":{},"425":{},"426":{},"427":{},"428":{},"429":{},"430":{},"431":{},"432":{},"433":{},"434":{}}}],["serviceentry",{"_index":309,"name":{"435":{}},"parent":{"436":{},"437":{},"438":{},"439":{},"440":{},"441":{},"442":{}}}],["serviceentrylist",{"_index":312,"name":{"443":{}},"parent":{"444":{},"445":{},"446":{},"447":{},"448":{}}}],["servicelist",{"_index":313,"name":{"449":{}},"parent":{"450":{},"451":{},"452":{},"453":{},"454":{}}}],["serviceoptions",{"_index":314,"name":{"455":{}},"parent":{"456":{},"457":{},"458":{},"459":{},"460":{},"461":{},"462":{},"463":{},"464":{},"465":{},"466":{},"467":{},"468":{},"469":{},"470":{},"471":{},"472":{}}}],["servicequeryoptions",{"_index":319,"name":{"473":{}},"parent":{"474":{},"475":{},"476":{},"477":{},"478":{},"479":{},"480":{}}}],["services",{"_index":419,"name":{"624":{}},"parent":{}}],["session",{"_index":320,"name":{"481":{}},"parent":{"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{}}}],["sessionlist",{"_index":323,"name":{"495":{}},"parent":{"496":{},"497":{},"498":{},"499":{},"500":{}}}],["sessionoptions",{"_index":324,"name":{"501":{}},"parent":{"502":{},"503":{},"504":{},"505":{},"506":{},"507":{},"508":{},"509":{},"510":{},"511":{},"512":{},"513":{},"514":{}}}],["setacltoken",{"_index":57,"name":{"79":{}},"parent":{}}],["setacquiresession",{"_index":258,"name":{"334":{}},"parent":{}}],["setaddress",{"_index":270,"name":{"352":{},"420":{},"458":{}},"parent":{}}],["setadj",{"_index":211,"name":{"248":{}},"parent":{}}],["setalpnversions",{"_index":59,"name":{"81":{}},"parent":{}}],["setbehavior",{"_index":326,"name":{"504":{}},"parent":{}}],["setblockingoptions",{"_index":52,"name":{"73":{},"296":{},"368":{},"476":{}},"parent":{}}],["setcasindex",{"_index":260,"name":{"336":{}},"parent":{}}],["setchecklistoptions",{"_index":316,"name":{"460":{}},"parent":{}}],["setcheckoptions",{"_index":318,"name":{"462":{}},"parent":{}}],["setchecks",{"_index":311,"name":{"438":{},"484":{},"506":{}},"parent":{}}],["setconnecttimeout",{"_index":61,"name":{"83":{}},"parent":{}}],["setcreateindex",{"_index":242,"name":{"312":{},"486":{}},"parent":{}}],["setdatacenter",{"_index":223,"name":{"266":{}},"parent":{}}],["setdc",{"_index":67,"name":{"89":{},"408":{}},"parent":{}}],["setdcs",{"_index":279,"name":{"374":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":69,"name":{"91":{}},"parent":{}}],["setdefaulthost",{"_index":71,"name":{"93":{}},"parent":{}}],["setdefaultport",{"_index":73,"name":{"95":{}},"parent":{}}],["setderegisterafter",{"_index":33,"name":{"43":{}},"parent":{}}],["setdnsttl",{"_index":281,"name":{"376":{},"410":{}},"parent":{}}],["setenable",{"_index":265,"name":{"344":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":77,"name":{"99":{}},"parent":{}}],["seterr",{"_index":213,"name":{"250":{}},"parent":{}}],["setfailovers",{"_index":301,"name":{"412":{}},"parent":{}}],["setflags",{"_index":244,"name":{"314":{},"338":{},"524":{}},"parent":{}}],["setfollowredirects",{"_index":80,"name":{"102":{}},"parent":{}}],["setforcesni",{"_index":82,"name":{"104":{}},"parent":{}}],["setgrpc",{"_index":35,"name":{"45":{}},"parent":{}}],["setgrpctls",{"_index":37,"name":{"47":{}},"parent":{}}],["sethandler",{"_index":422,"name":{"628":{}},"parent":{}}],["setheight",{"_index":215,"name":{"252":{}},"parent":{}}],["sethttp",{"_index":39,"name":{"49":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":84,"name":{"106":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":86,"name":{"108":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":88,"name":{"110":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":90,"name":{"112":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":92,"name":{"114":{}},"parent":{}}],["setid",{"_index":3,"name":{"3":{},"19":{},"51":{},"272":{},"346":{},"378":{},"422":{},"464":{},"488":{}},"parent":{}}],["setidletimeout",{"_index":94,"name":{"116":{}},"parent":{}}],["setidletimeoutunit",{"_index":96,"name":{"118":{}},"parent":{}}],["setindex",{"_index":12,"name":{"13":{},"37":{},"260":{},"290":{},"328":{},"362":{},"446":{},"452":{},"490":{},"498":{},"526":{}},"parent":{}}],["setinitialsettings",{"_index":98,"name":{"120":{}},"parent":{}}],["setinterval",{"_index":41,"name":{"53":{}},"parent":{}}],["setjdksslengineoptions",{"_index":100,"name":{"122":{}},"parent":{}}],["setkeepalive",{"_index":102,"name":{"124":{}},"parent":{}}],["setkeepalivetimeout",{"_index":104,"name":{"126":{}},"parent":{}}],["setkey",{"_index":246,"name":{"316":{},"528":{}},"parent":{}}],["setkeystoreoptions",{"_index":106,"name":{"128":{}},"parent":{}}],["setlanaddress",{"_index":272,"name":{"354":{}},"parent":{}}],["setlimit",{"_index":298,"name":{"402":{}},"parent":{}}],["setlist",{"_index":30,"name":{"39":{},"262":{},"292":{},"330":{},"364":{},"448":{},"454":{},"500":{}},"parent":{}}],["setlocaladdress",{"_index":108,"name":{"130":{}},"parent":{}}],["setlockdelay",{"_index":322,"name":{"492":{},"508":{}},"parent":{}}],["setlockindex",{"_index":248,"name":{"318":{}},"parent":{}}],["setlogactivity",{"_index":110,"name":{"132":{}},"parent":{}}],["setltime",{"_index":228,"name":{"274":{}},"parent":{}}],["setmaxchunksize",{"_index":112,"name":{"134":{}},"parent":{}}],["setmaxheadersize",{"_index":114,"name":{"136":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":116,"name":{"138":{}},"parent":{}}],["setmaxpoolsize",{"_index":118,"name":{"140":{}},"parent":{}}],["setmaxredirects",{"_index":120,"name":{"142":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":122,"name":{"144":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":124,"name":{"146":{},"150":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":126,"name":{"148":{},"152":{}},"parent":{}}],["setmeta",{"_index":283,"name":{"380":{},"424":{},"466":{}},"parent":{}}],["setmetricsname",{"_index":128,"name":{"154":{}},"parent":{}}],["setmodifyindex",{"_index":250,"name":{"320":{}},"parent":{}}],["setname",{"_index":5,"name":{"5":{},"21":{},"55":{},"276":{},"298":{},"356":{},"382":{},"426":{},"468":{},"510":{}},"parent":{}}],["setnear",{"_index":54,"name":{"75":{},"370":{},"404":{},"478":{}},"parent":{}}],["setnearestn",{"_index":285,"name":{"384":{}},"parent":{}}],["setnode",{"_index":217,"name":{"254":{},"278":{},"302":{},"428":{},"440":{},"494":{},"512":{}},"parent":{}}],["setnodeaddress",{"_index":306,"name":{"430":{}},"parent":{}}],["setnodename",{"_index":17,"name":{"23":{}},"parent":{}}],["setnodes",{"_index":303,"name":{"414":{}},"parent":{}}],["setnotes",{"_index":19,"name":{"25":{},"57":{}},"parent":{}}],["setopensslengineoptions",{"_index":130,"name":{"156":{}},"parent":{}}],["setopindex",{"_index":329,"name":{"518":{}},"parent":{}}],["setoutput",{"_index":21,"name":{"27":{}},"parent":{}}],["setpassing",{"_index":287,"name":{"386":{}},"parent":{}}],["setpayload",{"_index":230,"name":{"280":{},"304":{}},"parent":{}}],["setpemkeycertoptions",{"_index":132,"name":{"158":{}},"parent":{}}],["setpemtrustoptions",{"_index":134,"name":{"160":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":136,"name":{"162":{}},"parent":{}}],["setpfxtrustoptions",{"_index":138,"name":{"164":{}},"parent":{}}],["setpipelining",{"_index":140,"name":{"166":{}},"parent":{}}],["setpipelininglimit",{"_index":142,"name":{"168":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":144,"name":{"170":{}},"parent":{}}],["setport",{"_index":308,"name":{"432":{},"470":{}},"parent":{}}],["setprotocolversion",{"_index":146,"name":{"172":{}},"parent":{}}],["setproxyoptions",{"_index":148,"name":{"174":{}},"parent":{}}],["setreason",{"_index":267,"name":{"348":{}},"parent":{}}],["setreceivebuffersize",{"_index":150,"name":{"176":{}},"parent":{}}],["setreleasesession",{"_index":262,"name":{"340":{}},"parent":{}}],["setreuseaddress",{"_index":152,"name":{"178":{}},"parent":{}}],["setreuseport",{"_index":154,"name":{"180":{}},"parent":{}}],["setrules",{"_index":7,"name":{"7":{}},"parent":{}}],["setscriptargs",{"_index":43,"name":{"59":{}},"parent":{}}],["setsendbuffersize",{"_index":156,"name":{"182":{}},"parent":{}}],["setsendunmaskedframes",{"_index":158,"name":{"184":{}},"parent":{}}],["setservers",{"_index":225,"name":{"268":{}},"parent":{}}],["setservice",{"_index":232,"name":{"282":{},"306":{},"388":{},"416":{},"442":{}},"parent":{}}],["setserviceid",{"_index":23,"name":{"29":{},"61":{}},"parent":{}}],["setservicename",{"_index":25,"name":{"31":{}},"parent":{}}],["setsession",{"_index":252,"name":{"322":{},"390":{},"530":{}},"parent":{}}],["setsolinger",{"_index":160,"name":{"186":{}},"parent":{}}],["setssl",{"_index":162,"name":{"188":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":164,"name":{"190":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":166,"name":{"192":{}},"parent":{}}],["setstatus",{"_index":27,"name":{"33":{},"63":{}},"parent":{}}],["settag",{"_index":234,"name":{"284":{},"308":{},"480":{}},"parent":{}}],["settags",{"_index":289,"name":{"392":{},"434":{},"472":{}},"parent":{}}],["settcp",{"_index":45,"name":{"65":{}},"parent":{}}],["settcpcork",{"_index":168,"name":{"194":{}},"parent":{}}],["settcpfastopen",{"_index":170,"name":{"196":{}},"parent":{}}],["settcpkeepalive",{"_index":172,"name":{"198":{}},"parent":{}}],["settcpnodelay",{"_index":174,"name":{"200":{}},"parent":{}}],["settcpquickack",{"_index":176,"name":{"202":{}},"parent":{}}],["settemplateregexp",{"_index":291,"name":{"394":{}},"parent":{}}],["settemplatetype",{"_index":293,"name":{"396":{}},"parent":{}}],["settimeout",{"_index":178,"name":{"204":{}},"parent":{}}],["settlsskipverify",{"_index":47,"name":{"67":{}},"parent":{}}],["settoken",{"_index":295,"name":{"398":{}},"parent":{}}],["settrafficclass",{"_index":180,"name":{"206":{}},"parent":{}}],["settrustall",{"_index":182,"name":{"208":{}},"parent":{}}],["settruststoreoptions",{"_index":184,"name":{"210":{}},"parent":{}}],["settryusecompression",{"_index":186,"name":{"212":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":187,"name":{"213":{},"214":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":189,"name":{"216":{},"218":{}},"parent":{}}],["setttl",{"_index":49,"name":{"69":{},"514":{}},"parent":{}}],["settype",{"_index":9,"name":{"9":{},"532":{}},"parent":{}}],["setusealpn",{"_index":192,"name":{"222":{}},"parent":{}}],["setusepooledbuffers",{"_index":194,"name":{"224":{}},"parent":{}}],["setuseragent",{"_index":196,"name":{"226":{}},"parent":{}}],["setuseragentenabled",{"_index":198,"name":{"228":{}},"parent":{}}],["setvalue",{"_index":254,"name":{"324":{},"534":{}},"parent":{}}],["setvec",{"_index":219,"name":{"256":{}},"parent":{}}],["setverifyhost",{"_index":200,"name":{"230":{}},"parent":{}}],["setversion",{"_index":236,"name":{"286":{}},"parent":{}}],["setwait",{"_index":14,"name":{"15":{}},"parent":{}}],["setwanaddress",{"_index":274,"name":{"358":{}},"parent":{}}],["setwebsocketclosingtimeout",{"_index":202,"name":{"232":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":204,"name":{"234":{},"240":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":206,"name":{"236":{},"242":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":208,"name":{"238":{},"244":{}},"parent":{}}],["setwhat",{"_index":331,"name":{"520":{}},"parent":{}}],["start",{"_index":423,"name":{"629":{}},"parent":{}}],["stop",{"_index":424,"name":{"630":{}},"parent":{}}],["succeeded",{"_index":429,"name":{"635":{}},"parent":{}}],["transaction",{"_index":355,"name":{"560":{}},"parent":{}}],["txnerror",{"_index":327,"name":{"515":{}},"parent":{"516":{},"517":{},"518":{},"519":{},"520":{}}}],["txnkvoperation",{"_index":332,"name":{"521":{}},"parent":{"522":{},"523":{},"524":{},"525":{},"526":{},"527":{},"528":{},"529":{},"530":{},"531":{},"532":{},"533":{},"534":{}}}],["txnrequest",{"_index":333,"name":{"535":{}},"parent":{"536":{},"537":{}}}],["txnresponse",{"_index":335,"name":{"538":{}},"parent":{"539":{},"540":{},"541":{},"542":{},"543":{}}}],["updateacltoken",{"_index":357,"name":{"562":{}},"parent":{}}],["updatecheck",{"_index":394,"name":{"599":{}},"parent":{}}],["updatecheckwithnote",{"_index":395,"name":{"600":{}},"parent":{}}],["updatepreparedquery",{"_index":411,"name":{"616":{}},"parent":{}}],["warncheck",{"_index":390,"name":{"595":{}},"parent":{}}],["warncheckwithnote",{"_index":391,"name":{"596":{}},"parent":{}}],["watch",{"_index":416,"name":{"621":{}},"parent":{"622":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{}}}],["watchresult",{"_index":425,"name":{"631":{}},"parent":{"632":{},"633":{},"634":{},"635":{},"636":{}}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/consulclientoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/consulclientoptions.html index 9ccc51c1d..0fb0d5974 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/consulclientoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/consulclientoptions.html @@ -152,6 +152,7 @@

    Methods

  • getTryWebSocketDeflateFrameCompression
  • getTryWebsocketDeflateFrameCompression
  • getUserAgent
  • +
  • getWebSocketClosingTimeout
  • getWebSocketCompressionAllowClientNoContext
  • getWebSocketCompressionLevel
  • getWebSocketCompressionRequestServerNoContext
  • @@ -251,6 +252,7 @@

    Methods

  • setUserAgent
  • setUserAgentEnabled
  • setVerifyHost
  • +
  • setWebSocketClosingTimeout
  • setWebSocketCompressionAllowClientNoContext
  • setWebSocketCompressionLevel
  • setWebSocketCompressionRequestServerNoContext
  • @@ -1600,6 +1602,23 @@

    Returns string

    +
    + +

    getWebSocketClosingTimeout

    +
      +
    • getWebSocketClosingTimeout(): number
    • +
    +
      +
    • + +

      Returns number

      +
    • +
    +

    getWebSocketCompressionAllowClientNoContext

    @@ -1610,7 +1629,7 @@

    getWebSocketCompressionAllowClientNoContext

    Returns boolean

    @@ -1627,7 +1646,7 @@

    getWebSocketCompressionLevel

  • Returns number

    @@ -1644,7 +1663,7 @@

    getWebSocketCompressionRequestServerNoContext<
  • Returns boolean

    @@ -1661,7 +1680,7 @@

    getWebsocketCompressionAllowClientNoContext

  • Returns boolean

    @@ -1678,7 +1697,7 @@

    getWebsocketCompressionLevel

  • Returns number

    @@ -1695,7 +1714,7 @@

    getWebsocketCompressionRequestServerNoContext

  • Returns boolean

    @@ -4155,6 +4174,29 @@

    Returns + +

    setWebSocketClosingTimeout

    + +
      +
    • + +

      Parameters

      +
        +
      • +
        webSocketClosingTimeout: number
        +
      • +
      +

      Returns ConsulClientOptions

      +
    • +
    +
  • setWebSocketCompressionAllowClientNoContext

    @@ -4165,7 +4207,7 @@

    setWebSocketCompressionAllowClientNoContext

    Parameters

    @@ -4188,7 +4230,7 @@

    setWebSocketCompressionLevel

  • Parameters

    @@ -4211,7 +4253,7 @@

    setWebSocketCompressionRequestServerNoContext<
  • Parameters

    @@ -4234,7 +4276,7 @@

    setWebsocketCompressionAllowClientNoContext

  • Parameters

    @@ -4257,7 +4299,7 @@

    setWebsocketCompressionLevel

  • Parameters

    @@ -4280,7 +4322,7 @@

    setWebsocketCompressionRequestServerNoContext

  • Parameters

    @@ -4514,6 +4556,9 @@

    Returns getUserAgent

  • +
  • + getWebSocketClosingTimeout +
  • getWebSocketCompressionAllowClientNoContext
  • @@ -4811,6 +4856,9 @@

    Returns setVerifyHost

  • +
  • + setWebSocketClosingTimeout +
  • setWebSocketCompressionAllowClientNoContext
  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/coordinate.html b/docs/.vuepress/public/@vertx/consul-client/classes/coordinate.html index 021f2bbb8..0ac54d187 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/coordinate.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/coordinate.html @@ -120,7 +120,7 @@

    constructor

  • Returns Coordinate

    @@ -128,7 +128,7 @@

    Returns

    Parameters

    @@ -154,7 +154,7 @@

    getAdj

  • @@ -176,7 +176,7 @@

    getErr

  • @@ -198,7 +198,7 @@

    getHeight

  • @@ -220,7 +220,7 @@

    getNode

  • @@ -242,7 +242,7 @@

    getVec

  • @@ -264,7 +264,7 @@

    setAdj

  • @@ -292,7 +292,7 @@

    setErr

  • @@ -320,7 +320,7 @@

    setHeight

  • @@ -348,7 +348,7 @@

    setNode

  • @@ -376,7 +376,7 @@

    setVec

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/coordinatelist.html b/docs/.vuepress/public/@vertx/consul-client/classes/coordinatelist.html index 77583f822..cb68b4481 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/coordinatelist.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/coordinatelist.html @@ -114,7 +114,7 @@

    constructor

  • Returns CoordinateList

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getIndex

  • @@ -170,7 +170,7 @@

    getList

  • @@ -192,7 +192,7 @@

    setIndex

  • @@ -220,7 +220,7 @@

    setList

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/dccoordinates.html b/docs/.vuepress/public/@vertx/consul-client/classes/dccoordinates.html index 3762a9308..625a4a6c1 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/dccoordinates.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/dccoordinates.html @@ -114,7 +114,7 @@

    constructor

  • Returns DcCoordinates

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getDatacenter

  • @@ -170,7 +170,7 @@

    getServers

  • @@ -192,7 +192,7 @@

    setDatacenter

  • @@ -220,7 +220,7 @@

    setServers

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/event.html b/docs/.vuepress/public/@vertx/consul-client/classes/event.html index d95c8707a..8df033f20 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/event.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/event.html @@ -126,7 +126,7 @@

    constructor

  • Returns Event

    @@ -134,7 +134,7 @@

    Returns

    Parameters

    @@ -160,7 +160,7 @@

    getId

  • @@ -182,7 +182,7 @@

    getLTime

  • @@ -204,7 +204,7 @@

    getName

  • @@ -226,7 +226,7 @@

    getNode

  • @@ -248,7 +248,7 @@

    getPayload

  • @@ -270,7 +270,7 @@

    getService

  • @@ -292,7 +292,7 @@

    getTag

  • @@ -314,7 +314,7 @@

    getVersion

  • @@ -336,7 +336,7 @@

    setId

  • @@ -364,7 +364,7 @@

    setLTime

  • @@ -392,7 +392,7 @@

    setName

  • @@ -420,7 +420,7 @@

    setNode

  • @@ -448,7 +448,7 @@

    setPayload

  • @@ -476,7 +476,7 @@

    setService

  • @@ -504,7 +504,7 @@

    setTag

  • @@ -532,7 +532,7 @@

    setVersion

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/eventlist.html b/docs/.vuepress/public/@vertx/consul-client/classes/eventlist.html index f66521708..fa7c4039d 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/eventlist.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/eventlist.html @@ -114,7 +114,7 @@

    constructor

  • Returns EventList

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getIndex

  • @@ -170,7 +170,7 @@

    getList

  • @@ -192,7 +192,7 @@

    setIndex

  • @@ -220,7 +220,7 @@

    setList

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/eventlistoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/eventlistoptions.html index 4b9d497e0..3f46b1491 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/eventlistoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/eventlistoptions.html @@ -114,7 +114,7 @@

    constructor

  • Returns EventListOptions

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getBlockingOptions

  • @@ -170,7 +170,7 @@

    getName

  • @@ -192,7 +192,7 @@

    setBlockingOptions

  • @@ -220,7 +220,7 @@

    setName

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/eventoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/eventoptions.html index 664f4ce12..41e1996ea 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/eventoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/eventoptions.html @@ -118,7 +118,7 @@

    constructor

  • Returns EventOptions

    @@ -126,7 +126,7 @@

    Returns

    Parameters

    @@ -152,7 +152,7 @@

    getNode

  • @@ -174,7 +174,7 @@

    getPayload

  • @@ -196,7 +196,7 @@

    getService

  • @@ -218,7 +218,7 @@

    getTag

  • @@ -240,7 +240,7 @@

    setNode

  • @@ -268,7 +268,7 @@

    setPayload

  • @@ -296,7 +296,7 @@

    setService

  • @@ -324,7 +324,7 @@

    setTag

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/keyvalue.html b/docs/.vuepress/public/@vertx/consul-client/classes/keyvalue.html index 4d3d0a97c..384739dec 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/keyvalue.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/keyvalue.html @@ -124,7 +124,7 @@

    constructor

  • Returns KeyValue

    @@ -132,7 +132,7 @@

    Returns

    Parameters

    @@ -158,7 +158,7 @@

    getCreateIndex

  • @@ -180,7 +180,7 @@

    getFlags

  • @@ -202,7 +202,7 @@

    getKey

  • @@ -224,7 +224,7 @@

    getLockIndex

  • @@ -246,7 +246,7 @@

    getModifyIndex

  • @@ -268,7 +268,7 @@

    getSession

  • @@ -290,7 +290,7 @@

    getValue

  • @@ -312,7 +312,7 @@

    setCreateIndex

  • @@ -340,7 +340,7 @@

    setFlags

  • @@ -368,7 +368,7 @@

    setKey

  • @@ -396,7 +396,7 @@

    setLockIndex

  • @@ -424,7 +424,7 @@

    setModifyIndex

  • @@ -452,7 +452,7 @@

    setSession

  • @@ -480,7 +480,7 @@

    setValue

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/keyvaluelist.html b/docs/.vuepress/public/@vertx/consul-client/classes/keyvaluelist.html index 64cca6d33..f3ca3fb15 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/keyvaluelist.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/keyvaluelist.html @@ -114,7 +114,7 @@

    constructor

  • Returns KeyValueList

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getIndex

  • @@ -170,7 +170,7 @@

    getList

  • @@ -192,7 +192,7 @@

    setIndex

  • @@ -220,7 +220,7 @@

    setList

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/keyvalueoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/keyvalueoptions.html index e38dfc295..7aaa8feed 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/keyvalueoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/keyvalueoptions.html @@ -118,7 +118,7 @@

    constructor

  • Returns KeyValueOptions

    @@ -126,7 +126,7 @@

    Returns

    Parameters

    @@ -152,7 +152,7 @@

    getAcquireSession

  • @@ -174,7 +174,7 @@

    getCasIndex

  • @@ -197,7 +197,7 @@

    getFlags

  • @@ -220,7 +220,7 @@

    getReleaseSession

  • @@ -242,7 +242,7 @@

    setAcquireSession

  • @@ -270,7 +270,7 @@

    setCasIndex

  • @@ -299,7 +299,7 @@

    setFlags

  • @@ -328,7 +328,7 @@

    setReleaseSession

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/maintenanceoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/maintenanceoptions.html index b190b9e7d..3b65dfae6 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/maintenanceoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/maintenanceoptions.html @@ -119,7 +119,7 @@

    constructor

  • Returns MaintenanceOptions

    @@ -127,7 +127,7 @@

    Returns

    Parameters

    @@ -153,7 +153,7 @@

    getId

  • @@ -175,7 +175,7 @@

    getReason

  • @@ -198,7 +198,7 @@

    isEnable

  • @@ -221,7 +221,7 @@

    setEnable

  • @@ -250,7 +250,7 @@

    setId

  • @@ -278,7 +278,7 @@

    setReason

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/node.html b/docs/.vuepress/public/@vertx/consul-client/classes/node.html index ff894fef0..232f493e7 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/node.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/node.html @@ -111,7 +111,7 @@

    constructor

  • Returns Node

    @@ -119,7 +119,7 @@

    Returns

    Parameters

    @@ -145,7 +145,7 @@

    getAddress

  • @@ -167,7 +167,7 @@

    getLanAddress

  • @@ -189,7 +189,7 @@

    getName

  • @@ -211,7 +211,7 @@

    getWanAddress

  • @@ -233,7 +233,7 @@

    setAddress

  • @@ -261,7 +261,7 @@

    setLanAddress

  • @@ -289,7 +289,7 @@

    setName

  • @@ -317,7 +317,7 @@

    setWanAddress

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/nodelist.html b/docs/.vuepress/public/@vertx/consul-client/classes/nodelist.html index 9ebc7538b..64c9582b5 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/nodelist.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/nodelist.html @@ -114,7 +114,7 @@

    constructor

  • Returns NodeList

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getIndex

  • @@ -170,7 +170,7 @@

    getList

  • @@ -192,7 +192,7 @@

    setIndex

  • @@ -220,7 +220,7 @@

    setList

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/nodequeryoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/nodequeryoptions.html index 3647aa351..a5a34dd37 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/nodequeryoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/nodequeryoptions.html @@ -114,7 +114,7 @@

    constructor

  • Returns NodeQueryOptions

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getBlockingOptions

  • @@ -170,7 +170,7 @@

    getNear

  • @@ -192,7 +192,7 @@

    setBlockingOptions

  • @@ -220,7 +220,7 @@

    setNear

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/preparedquerydefinition.html b/docs/.vuepress/public/@vertx/consul-client/classes/preparedquerydefinition.html index 661850ed8..5dc57554a 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/preparedquerydefinition.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/preparedquerydefinition.html @@ -136,7 +136,7 @@

    constructor

  • Returns PreparedQueryDefinition

    @@ -144,7 +144,7 @@

    Returns

    Parameters

    @@ -170,7 +170,7 @@

    getDcs

  • @@ -196,7 +196,7 @@

    getDnsTtl

  • @@ -219,7 +219,7 @@

    getId

  • @@ -241,7 +241,7 @@

    getMeta

  • @@ -264,7 +264,7 @@

    getName

  • @@ -286,7 +286,7 @@

    getNearestN

  • @@ -310,7 +310,7 @@

    getPassing

  • @@ -334,7 +334,7 @@

    getService

  • @@ -356,7 +356,7 @@

    getSession

  • @@ -379,7 +379,7 @@

    getTags

  • @@ -402,7 +402,7 @@

    getTemplateRegexp

  • @@ -424,7 +424,7 @@

    getTemplateType

  • @@ -447,7 +447,7 @@

    getToken

  • @@ -470,7 +470,7 @@

    setDcs

  • @@ -502,7 +502,7 @@

    setDnsTtl

  • @@ -531,7 +531,7 @@

    setId

  • @@ -559,7 +559,7 @@

    setMeta

  • @@ -588,7 +588,7 @@

    setName

  • @@ -616,7 +616,7 @@

    setNearestN

  • @@ -646,7 +646,7 @@

    setPassing

  • @@ -676,7 +676,7 @@

    setService

  • @@ -704,7 +704,7 @@

    setSession

  • @@ -733,7 +733,7 @@

    setTags

  • @@ -762,7 +762,7 @@

    setTemplateRegexp

  • @@ -790,7 +790,7 @@

    setTemplateType

  • @@ -819,7 +819,7 @@

    setToken

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteoptions.html index c2cadb4fa..107fce196 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteoptions.html @@ -114,7 +114,7 @@

    constructor

  • Returns PreparedQueryExecuteOptions

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getLimit

  • @@ -170,7 +170,7 @@

    getNear

  • @@ -194,7 +194,7 @@

    setLimit

  • @@ -222,7 +222,7 @@

    setNear

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteresponse.html b/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteresponse.html index 801316dad..350089d5c 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteresponse.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/preparedqueryexecuteresponse.html @@ -120,7 +120,7 @@

    constructor

  • Returns PreparedQueryExecuteResponse

    @@ -128,7 +128,7 @@

    Returns

    Parameters

    @@ -154,7 +154,7 @@

    getDc

  • @@ -176,7 +176,7 @@

    getDnsTtl

  • @@ -198,7 +198,7 @@

    getFailovers

  • @@ -220,7 +220,7 @@

    getNodes

  • @@ -242,7 +242,7 @@

    getService

  • @@ -265,7 +265,7 @@

    setDc

  • @@ -293,7 +293,7 @@

    setDnsTtl

  • @@ -321,7 +321,7 @@

    setFailovers

  • @@ -349,7 +349,7 @@

    setNodes

  • @@ -377,7 +377,7 @@

    setService

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/service.html b/docs/.vuepress/public/@vertx/consul-client/classes/service.html index f82fb21f0..eb50b8a0b 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/service.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/service.html @@ -126,7 +126,7 @@

    constructor

  • Returns Service

    @@ -134,7 +134,7 @@

    Returns

    Parameters

    @@ -160,7 +160,7 @@

    getAddress

  • @@ -182,7 +182,7 @@

    getId

  • @@ -204,7 +204,7 @@

    getMeta

  • @@ -226,7 +226,7 @@

    getName

  • @@ -248,7 +248,7 @@

    getNode

  • @@ -270,7 +270,7 @@

    getNodeAddress

  • @@ -292,7 +292,7 @@

    getPort

  • @@ -314,7 +314,7 @@

    getTags

  • @@ -336,7 +336,7 @@

    setAddress

  • @@ -364,7 +364,7 @@

    setId

  • @@ -392,7 +392,7 @@

    setMeta

  • @@ -420,7 +420,7 @@

    setName

  • @@ -448,7 +448,7 @@

    setNode

  • @@ -476,7 +476,7 @@

    setNodeAddress

  • @@ -504,7 +504,7 @@

    setPort

  • @@ -532,7 +532,7 @@

    setTags

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/serviceentry.html b/docs/.vuepress/public/@vertx/consul-client/classes/serviceentry.html index 3f526b729..3e942c743 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/serviceentry.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/serviceentry.html @@ -116,7 +116,7 @@

    constructor

  • Returns ServiceEntry

    @@ -124,7 +124,7 @@

    Returns

    Parameters

    @@ -150,7 +150,7 @@

    getChecks

  • @@ -172,7 +172,7 @@

    getNode

  • @@ -194,7 +194,7 @@

    getService

  • @@ -216,7 +216,7 @@

    setChecks

  • @@ -244,7 +244,7 @@

    setNode

  • @@ -272,7 +272,7 @@

    setService

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/serviceentrylist.html b/docs/.vuepress/public/@vertx/consul-client/classes/serviceentrylist.html index 63bf4fdb9..e25ff0fcf 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/serviceentrylist.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/serviceentrylist.html @@ -114,7 +114,7 @@

    constructor

  • Returns ServiceEntryList

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getIndex

  • @@ -170,7 +170,7 @@

    getList

  • @@ -192,7 +192,7 @@

    setIndex

  • @@ -220,7 +220,7 @@

    setList

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/servicelist.html b/docs/.vuepress/public/@vertx/consul-client/classes/servicelist.html index 0c3eaefb1..2fc1a1c82 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/servicelist.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/servicelist.html @@ -114,7 +114,7 @@

    constructor

  • Returns ServiceList

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getIndex

  • @@ -170,7 +170,7 @@

    getList

  • @@ -192,7 +192,7 @@

    setIndex

  • @@ -220,7 +220,7 @@

    setList

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/serviceoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/serviceoptions.html index 031dd4832..4b0734baf 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/serviceoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/serviceoptions.html @@ -126,7 +126,7 @@

    constructor

  • Returns ServiceOptions

    @@ -134,7 +134,7 @@

    Returns

    Parameters

    @@ -160,7 +160,7 @@

    getAddress

  • @@ -182,7 +182,7 @@

    getCheckListOptions

  • @@ -204,7 +204,7 @@

    getCheckOptions

  • @@ -226,7 +226,7 @@

    getId

  • @@ -248,7 +248,7 @@

    getMeta

  • @@ -270,7 +270,7 @@

    getName

  • @@ -292,7 +292,7 @@

    getPort

  • @@ -314,7 +314,7 @@

    getTags

  • @@ -336,7 +336,7 @@

    setAddress

  • @@ -364,7 +364,7 @@

    setCheckListOptions

  • @@ -392,7 +392,7 @@

    setCheckOptions

  • @@ -420,7 +420,7 @@

    setId

  • @@ -448,7 +448,7 @@

    setMeta

  • @@ -476,7 +476,7 @@

    setName

  • @@ -504,7 +504,7 @@

    setPort

  • @@ -532,7 +532,7 @@

    setTags

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/servicequeryoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/servicequeryoptions.html index 1d36ed078..caea92cb4 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/servicequeryoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/servicequeryoptions.html @@ -116,7 +116,7 @@

    constructor

  • Returns ServiceQueryOptions

    @@ -124,7 +124,7 @@

    Returns

    Parameters

    @@ -150,7 +150,7 @@

    getBlockingOptions

  • @@ -172,7 +172,7 @@

    getNear

  • @@ -194,7 +194,7 @@

    getTag

  • @@ -216,7 +216,7 @@

    setBlockingOptions

  • @@ -244,7 +244,7 @@

    setNear

  • @@ -272,7 +272,7 @@

    setTag

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/session.html b/docs/.vuepress/public/@vertx/consul-client/classes/session.html index f706a7bab..f2561b482 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/session.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/session.html @@ -122,7 +122,7 @@

    constructor

  • Returns Session

    @@ -130,7 +130,7 @@

    Returns

    Parameters

    @@ -156,7 +156,7 @@

    getChecks

  • @@ -178,7 +178,7 @@

    getCreateIndex

  • @@ -200,7 +200,7 @@

    getId

  • @@ -222,7 +222,7 @@

    getIndex

  • @@ -244,7 +244,7 @@

    getLockDelay

  • @@ -266,7 +266,7 @@

    getNode

  • @@ -288,7 +288,7 @@

    setChecks

  • @@ -316,7 +316,7 @@

    setCreateIndex

  • @@ -344,7 +344,7 @@

    setId

  • @@ -372,7 +372,7 @@

    setIndex

  • @@ -400,7 +400,7 @@

    setLockDelay

  • @@ -428,7 +428,7 @@

    setNode

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/sessionlist.html b/docs/.vuepress/public/@vertx/consul-client/classes/sessionlist.html index 7b94b84b3..dfe767c9b 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/sessionlist.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/sessionlist.html @@ -114,7 +114,7 @@

    constructor

  • Returns SessionList

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getIndex

  • @@ -170,7 +170,7 @@

    getList

  • @@ -192,7 +192,7 @@

    setIndex

  • @@ -220,7 +220,7 @@

    setList

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/sessionoptions.html b/docs/.vuepress/public/@vertx/consul-client/classes/sessionoptions.html index aefc88fd7..4fba5cd4f 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/sessionoptions.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/sessionoptions.html @@ -122,7 +122,7 @@

    constructor

  • Returns SessionOptions

    @@ -130,7 +130,7 @@

    Returns

    Parameters

    @@ -156,7 +156,7 @@

    getBehavior

  • @@ -178,7 +178,7 @@

    getChecks

  • @@ -201,7 +201,7 @@

    getLockDelay

  • @@ -223,7 +223,7 @@

    getName

  • @@ -245,7 +245,7 @@

    getNode

  • @@ -267,7 +267,7 @@

    getTtl

  • @@ -296,7 +296,7 @@

    setBehavior

  • @@ -324,7 +324,7 @@

    setChecks

  • @@ -353,7 +353,7 @@

    setLockDelay

  • @@ -381,7 +381,7 @@

    setName

  • @@ -409,7 +409,7 @@

    setNode

  • @@ -437,7 +437,7 @@

    setTtl

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/txnerror.html b/docs/.vuepress/public/@vertx/consul-client/classes/txnerror.html index 6b8f18074..2fe64afcd 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/txnerror.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/txnerror.html @@ -114,7 +114,7 @@

    constructor

  • Returns TxnError

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    getOpIndex

  • @@ -170,7 +170,7 @@

    getWhat

  • @@ -192,7 +192,7 @@

    setOpIndex

  • @@ -220,7 +220,7 @@

    setWhat

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/txnkvoperation.html b/docs/.vuepress/public/@vertx/consul-client/classes/txnkvoperation.html index b476aacb2..6c84d2905 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/txnkvoperation.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/txnkvoperation.html @@ -122,7 +122,7 @@

    constructor

  • Returns TxnKVOperation

    @@ -130,7 +130,7 @@

    Returns

    Parameters

    @@ -156,7 +156,7 @@

    getFlags

  • @@ -178,7 +178,7 @@

    getIndex

  • @@ -200,7 +200,7 @@

    getKey

  • @@ -222,7 +222,7 @@

    getSession

  • @@ -244,7 +244,7 @@

    getType

  • @@ -266,7 +266,7 @@

    getValue

  • @@ -288,7 +288,7 @@

    setFlags

  • @@ -316,7 +316,7 @@

    setIndex

  • @@ -344,7 +344,7 @@

    setKey

  • @@ -372,7 +372,7 @@

    setSession

  • @@ -400,7 +400,7 @@

    setType

  • @@ -428,7 +428,7 @@

    setValue

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/txnrequest.html b/docs/.vuepress/public/@vertx/consul-client/classes/txnrequest.html index 845770bf6..73253906e 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/txnrequest.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/txnrequest.html @@ -111,7 +111,7 @@

    constructor

  • Returns TxnRequest

    @@ -119,7 +119,7 @@

    Returns

    Parameters

    @@ -145,7 +145,7 @@

    getOperationsSize

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/classes/txnresponse.html b/docs/.vuepress/public/@vertx/consul-client/classes/txnresponse.html index dee91e29e..139437770 100644 --- a/docs/.vuepress/public/@vertx/consul-client/classes/txnresponse.html +++ b/docs/.vuepress/public/@vertx/consul-client/classes/txnresponse.html @@ -114,7 +114,7 @@

    constructor

  • Returns TxnResponse

    @@ -122,7 +122,7 @@

    Returns

    Parameters

    @@ -148,7 +148,7 @@

    addError

  • @@ -176,7 +176,7 @@

    getErrors

  • @@ -198,7 +198,7 @@

    getErrorsSize

  • @@ -220,7 +220,7 @@

    getResultsSize

  • diff --git a/docs/.vuepress/public/@vertx/consul-client/index.html b/docs/.vuepress/public/@vertx/consul-client/index.html index 44228f392..dcc762be5 100644 --- a/docs/.vuepress/public/@vertx/consul-client/index.html +++ b/docs/.vuepress/public/@vertx/consul-client/index.html @@ -63,7 +63,8 @@

    @vertx/consul-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/core/assets/js/search.json b/docs/.vuepress/public/@vertx/core/assets/js/search.json index 807149092..47c89d695 100644 --- a/docs/.vuepress/public/@vertx/core/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/core/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"4":"Enumeration","16":"Enumeration member","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":4,"name":"ClientAuth","url":"enums/clientauth.html","classes":"tsd-kind-enum"},{"id":1,"kind":16,"name":"NONE","url":"enums/clientauth.html#none","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ClientAuth"},{"id":2,"kind":16,"name":"REQUEST","url":"enums/clientauth.html#request","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ClientAuth"},{"id":3,"kind":16,"name":"REQUIRED","url":"enums/clientauth.html#required","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ClientAuth"},{"id":4,"kind":4,"name":"CookieSameSite","url":"enums/cookiesamesite.html","classes":"tsd-kind-enum"},{"id":5,"kind":16,"name":"NONE","url":"enums/cookiesamesite.html#none","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"CookieSameSite"},{"id":6,"kind":16,"name":"STRICT","url":"enums/cookiesamesite.html#strict","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"CookieSameSite"},{"id":7,"kind":16,"name":"LAX","url":"enums/cookiesamesite.html#lax","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"CookieSameSite"},{"id":8,"kind":4,"name":"DnsResponseCode","url":"enums/dnsresponsecode.html","classes":"tsd-kind-enum"},{"id":9,"kind":16,"name":"NOERROR","url":"enums/dnsresponsecode.html#noerror","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":10,"kind":16,"name":"FORMERROR","url":"enums/dnsresponsecode.html#formerror","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":11,"kind":16,"name":"SERVFAIL","url":"enums/dnsresponsecode.html#servfail","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":12,"kind":16,"name":"NXDOMAIN","url":"enums/dnsresponsecode.html#nxdomain","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":13,"kind":16,"name":"NOTIMPL","url":"enums/dnsresponsecode.html#notimpl","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":14,"kind":16,"name":"REFUSED","url":"enums/dnsresponsecode.html#refused","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":15,"kind":16,"name":"YXDOMAIN","url":"enums/dnsresponsecode.html#yxdomain","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":16,"kind":16,"name":"YXRRSET","url":"enums/dnsresponsecode.html#yxrrset","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":17,"kind":16,"name":"NXRRSET","url":"enums/dnsresponsecode.html#nxrrset","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":18,"kind":16,"name":"NOTAUTH","url":"enums/dnsresponsecode.html#notauth","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":19,"kind":16,"name":"NOTZONE","url":"enums/dnsresponsecode.html#notzone","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":20,"kind":16,"name":"BADVERS","url":"enums/dnsresponsecode.html#badvers","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":21,"kind":16,"name":"BADSIG","url":"enums/dnsresponsecode.html#badsig","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":22,"kind":16,"name":"BADKEY","url":"enums/dnsresponsecode.html#badkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":23,"kind":16,"name":"BADTIME","url":"enums/dnsresponsecode.html#badtime","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":24,"kind":4,"name":"HttpMethod","url":"enums/httpmethod.html","classes":"tsd-kind-enum"},{"id":25,"kind":16,"name":"OPTIONS","url":"enums/httpmethod.html#options","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":26,"kind":16,"name":"GET","url":"enums/httpmethod.html#get","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":27,"kind":16,"name":"HEAD","url":"enums/httpmethod.html#head","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":28,"kind":16,"name":"POST","url":"enums/httpmethod.html#post","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":29,"kind":16,"name":"PUT","url":"enums/httpmethod.html#put","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":30,"kind":16,"name":"DELETE","url":"enums/httpmethod.html#delete","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":31,"kind":16,"name":"TRACE","url":"enums/httpmethod.html#trace","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":32,"kind":16,"name":"CONNECT","url":"enums/httpmethod.html#connect","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":33,"kind":16,"name":"PATCH","url":"enums/httpmethod.html#patch","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":34,"kind":16,"name":"OTHER","url":"enums/httpmethod.html#other","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":35,"kind":4,"name":"HttpVersion","url":"enums/httpversion.html","classes":"tsd-kind-enum"},{"id":36,"kind":16,"name":"HTTP_1_0","url":"enums/httpversion.html#http_1_0","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpVersion"},{"id":37,"kind":16,"name":"HTTP_1_1","url":"enums/httpversion.html#http_1_1","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpVersion"},{"id":38,"kind":16,"name":"HTTP_2","url":"enums/httpversion.html#http_2","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpVersion"},{"id":39,"kind":4,"name":"JsonEventType","url":"enums/jsoneventtype.html","classes":"tsd-kind-enum"},{"id":40,"kind":16,"name":"START_OBJECT","url":"enums/jsoneventtype.html#start_object","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":41,"kind":16,"name":"END_OBJECT","url":"enums/jsoneventtype.html#end_object","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":42,"kind":16,"name":"START_ARRAY","url":"enums/jsoneventtype.html#start_array","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":43,"kind":16,"name":"END_ARRAY","url":"enums/jsoneventtype.html#end_array","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":44,"kind":16,"name":"VALUE","url":"enums/jsoneventtype.html#value","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":45,"kind":4,"name":"ProxyType","url":"enums/proxytype.html","classes":"tsd-kind-enum"},{"id":46,"kind":16,"name":"HTTP","url":"enums/proxytype.html#http","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ProxyType"},{"id":47,"kind":16,"name":"SOCKS4","url":"enums/proxytype.html#socks4","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ProxyType"},{"id":48,"kind":16,"name":"SOCKS5","url":"enums/proxytype.html#socks5","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ProxyType"},{"id":49,"kind":4,"name":"ReplyFailure","url":"enums/replyfailure.html","classes":"tsd-kind-enum"},{"id":50,"kind":16,"name":"TIMEOUT","url":"enums/replyfailure.html#timeout","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ReplyFailure"},{"id":51,"kind":16,"name":"NO_HANDLERS","url":"enums/replyfailure.html#no_handlers","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ReplyFailure"},{"id":52,"kind":16,"name":"RECIPIENT_FAILURE","url":"enums/replyfailure.html#recipient_failure","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ReplyFailure"},{"id":53,"kind":4,"name":"WebsocketVersion","url":"enums/websocketversion.html","classes":"tsd-kind-enum"},{"id":54,"kind":16,"name":"V00","url":"enums/websocketversion.html#v00","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":55,"kind":16,"name":"V07","url":"enums/websocketversion.html#v07","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":56,"kind":16,"name":"V08","url":"enums/websocketversion.html#v08","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":57,"kind":16,"name":"V13","url":"enums/websocketversion.html#v13","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":58,"kind":128,"name":"AddressResolverOptions","url":"classes/addressresolveroptions.html","classes":"tsd-kind-class"},{"id":59,"kind":512,"name":"constructor","url":"classes/addressresolveroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":60,"kind":2048,"name":"getCacheMaxTimeToLive","url":"classes/addressresolveroptions.html#getcachemaxtimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":61,"kind":2048,"name":"setCacheMaxTimeToLive","url":"classes/addressresolveroptions.html#setcachemaxtimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":62,"kind":2048,"name":"getCacheMinTimeToLive","url":"classes/addressresolveroptions.html#getcachemintimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":63,"kind":2048,"name":"setCacheMinTimeToLive","url":"classes/addressresolveroptions.html#setcachemintimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":64,"kind":2048,"name":"getCacheNegativeTimeToLive","url":"classes/addressresolveroptions.html#getcachenegativetimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":65,"kind":2048,"name":"setCacheNegativeTimeToLive","url":"classes/addressresolveroptions.html#setcachenegativetimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":66,"kind":2048,"name":"getHostsPath","url":"classes/addressresolveroptions.html#gethostspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":67,"kind":2048,"name":"setHostsPath","url":"classes/addressresolveroptions.html#sethostspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":68,"kind":2048,"name":"getHostsValue","url":"classes/addressresolveroptions.html#gethostsvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":69,"kind":2048,"name":"setHostsValue","url":"classes/addressresolveroptions.html#sethostsvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":70,"kind":2048,"name":"getMaxQueries","url":"classes/addressresolveroptions.html#getmaxqueries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":71,"kind":2048,"name":"setMaxQueries","url":"classes/addressresolveroptions.html#setmaxqueries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":72,"kind":2048,"name":"getNdots","url":"classes/addressresolveroptions.html#getndots","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":73,"kind":2048,"name":"setNdots","url":"classes/addressresolveroptions.html#setndots","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":74,"kind":2048,"name":"isOptResourceEnabled","url":"classes/addressresolveroptions.html#isoptresourceenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":75,"kind":2048,"name":"setOptResourceEnabled","url":"classes/addressresolveroptions.html#setoptresourceenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":76,"kind":2048,"name":"getQueryTimeout","url":"classes/addressresolveroptions.html#getquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":77,"kind":2048,"name":"setQueryTimeout","url":"classes/addressresolveroptions.html#setquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":78,"kind":2048,"name":"getRdFlag","url":"classes/addressresolveroptions.html#getrdflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":79,"kind":2048,"name":"setRdFlag","url":"classes/addressresolveroptions.html#setrdflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":80,"kind":2048,"name":"isRotateServers","url":"classes/addressresolveroptions.html#isrotateservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":81,"kind":2048,"name":"setRotateServers","url":"classes/addressresolveroptions.html#setrotateservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":82,"kind":2048,"name":"getSearchDomains","url":"classes/addressresolveroptions.html#getsearchdomains","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":83,"kind":2048,"name":"setSearchDomains","url":"classes/addressresolveroptions.html#setsearchdomains","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":84,"kind":2048,"name":"addSearchDomain","url":"classes/addressresolveroptions.html#addsearchdomain","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":85,"kind":2048,"name":"getServers","url":"classes/addressresolveroptions.html#getservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":86,"kind":2048,"name":"setServers","url":"classes/addressresolveroptions.html#setservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":87,"kind":2048,"name":"addServer","url":"classes/addressresolveroptions.html#addserver","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":88,"kind":128,"name":"Argument","url":"classes/argument.html","classes":"tsd-kind-class"},{"id":89,"kind":512,"name":"constructor","url":"classes/argument.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Argument"},{"id":90,"kind":2048,"name":"getArgName","url":"classes/argument.html#getargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":91,"kind":2048,"name":"setArgName","url":"classes/argument.html#setargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":92,"kind":2048,"name":"getDefaultValue","url":"classes/argument.html#getdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":93,"kind":2048,"name":"setDefaultValue","url":"classes/argument.html#setdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":94,"kind":2048,"name":"getDescription","url":"classes/argument.html#getdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":95,"kind":2048,"name":"setDescription","url":"classes/argument.html#setdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":96,"kind":2048,"name":"isHidden","url":"classes/argument.html#ishidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":97,"kind":2048,"name":"setHidden","url":"classes/argument.html#sethidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":98,"kind":2048,"name":"getIndex","url":"classes/argument.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":99,"kind":2048,"name":"setIndex","url":"classes/argument.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":100,"kind":2048,"name":"isMultiValued","url":"classes/argument.html#ismultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":101,"kind":2048,"name":"setMultiValued","url":"classes/argument.html#setmultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":102,"kind":2048,"name":"isRequired","url":"classes/argument.html#isrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":103,"kind":2048,"name":"setRequired","url":"classes/argument.html#setrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":104,"kind":128,"name":"ClientOptionsBase","url":"classes/clientoptionsbase.html","classes":"tsd-kind-class"},{"id":105,"kind":512,"name":"constructor","url":"classes/clientoptionsbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":106,"kind":2048,"name":"getConnectTimeout","url":"classes/clientoptionsbase.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":107,"kind":2048,"name":"setConnectTimeout","url":"classes/clientoptionsbase.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":108,"kind":2048,"name":"getCrlPaths","url":"classes/clientoptionsbase.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":109,"kind":2048,"name":"addCrlPath","url":"classes/clientoptionsbase.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":110,"kind":2048,"name":"getCrlValues","url":"classes/clientoptionsbase.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":111,"kind":2048,"name":"addCrlValue","url":"classes/clientoptionsbase.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":112,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/clientoptionsbase.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":113,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/clientoptionsbase.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":114,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/clientoptionsbase.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":115,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/clientoptionsbase.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":116,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/clientoptionsbase.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":117,"kind":2048,"name":"getIdleTimeout","url":"classes/clientoptionsbase.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":118,"kind":2048,"name":"setIdleTimeout","url":"classes/clientoptionsbase.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":119,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/clientoptionsbase.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":120,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/clientoptionsbase.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":121,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/clientoptionsbase.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":122,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/clientoptionsbase.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":123,"kind":2048,"name":"getKeyStoreOptions","url":"classes/clientoptionsbase.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":124,"kind":2048,"name":"setKeyStoreOptions","url":"classes/clientoptionsbase.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":125,"kind":2048,"name":"getLocalAddress","url":"classes/clientoptionsbase.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":126,"kind":2048,"name":"setLocalAddress","url":"classes/clientoptionsbase.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":127,"kind":2048,"name":"getLogActivity","url":"classes/clientoptionsbase.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":128,"kind":2048,"name":"setLogActivity","url":"classes/clientoptionsbase.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":129,"kind":2048,"name":"getMetricsName","url":"classes/clientoptionsbase.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":130,"kind":2048,"name":"setMetricsName","url":"classes/clientoptionsbase.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":131,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/clientoptionsbase.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":132,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/clientoptionsbase.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":133,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/clientoptionsbase.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":134,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/clientoptionsbase.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":135,"kind":2048,"name":"getPemTrustOptions","url":"classes/clientoptionsbase.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":136,"kind":2048,"name":"setPemTrustOptions","url":"classes/clientoptionsbase.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":137,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/clientoptionsbase.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":138,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/clientoptionsbase.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":139,"kind":2048,"name":"getPfxTrustOptions","url":"classes/clientoptionsbase.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":140,"kind":2048,"name":"setPfxTrustOptions","url":"classes/clientoptionsbase.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":141,"kind":2048,"name":"getProxyOptions","url":"classes/clientoptionsbase.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":142,"kind":2048,"name":"setProxyOptions","url":"classes/clientoptionsbase.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":143,"kind":2048,"name":"getReceiveBufferSize","url":"classes/clientoptionsbase.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":144,"kind":2048,"name":"setReceiveBufferSize","url":"classes/clientoptionsbase.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":145,"kind":2048,"name":"isReuseAddress","url":"classes/clientoptionsbase.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":146,"kind":2048,"name":"setReuseAddress","url":"classes/clientoptionsbase.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":147,"kind":2048,"name":"isReusePort","url":"classes/clientoptionsbase.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":148,"kind":2048,"name":"setReusePort","url":"classes/clientoptionsbase.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":149,"kind":2048,"name":"getSendBufferSize","url":"classes/clientoptionsbase.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":150,"kind":2048,"name":"setSendBufferSize","url":"classes/clientoptionsbase.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":151,"kind":2048,"name":"getSoLinger","url":"classes/clientoptionsbase.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":152,"kind":2048,"name":"setSoLinger","url":"classes/clientoptionsbase.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":153,"kind":2048,"name":"isSsl","url":"classes/clientoptionsbase.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":154,"kind":2048,"name":"setSsl","url":"classes/clientoptionsbase.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":155,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/clientoptionsbase.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":156,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/clientoptionsbase.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":157,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/clientoptionsbase.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":158,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/clientoptionsbase.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":159,"kind":2048,"name":"isTcpCork","url":"classes/clientoptionsbase.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":160,"kind":2048,"name":"setTcpCork","url":"classes/clientoptionsbase.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":161,"kind":2048,"name":"isTcpFastOpen","url":"classes/clientoptionsbase.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":162,"kind":2048,"name":"setTcpFastOpen","url":"classes/clientoptionsbase.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":163,"kind":2048,"name":"isTcpKeepAlive","url":"classes/clientoptionsbase.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":164,"kind":2048,"name":"setTcpKeepAlive","url":"classes/clientoptionsbase.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":165,"kind":2048,"name":"isTcpNoDelay","url":"classes/clientoptionsbase.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":166,"kind":2048,"name":"setTcpNoDelay","url":"classes/clientoptionsbase.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":167,"kind":2048,"name":"isTcpQuickAck","url":"classes/clientoptionsbase.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":168,"kind":2048,"name":"setTcpQuickAck","url":"classes/clientoptionsbase.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":169,"kind":2048,"name":"getTrafficClass","url":"classes/clientoptionsbase.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":170,"kind":2048,"name":"setTrafficClass","url":"classes/clientoptionsbase.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":171,"kind":2048,"name":"isTrustAll","url":"classes/clientoptionsbase.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":172,"kind":2048,"name":"setTrustAll","url":"classes/clientoptionsbase.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":173,"kind":2048,"name":"getTrustStoreOptions","url":"classes/clientoptionsbase.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":174,"kind":2048,"name":"setTrustStoreOptions","url":"classes/clientoptionsbase.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":175,"kind":2048,"name":"isUseAlpn","url":"classes/clientoptionsbase.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":176,"kind":2048,"name":"setUseAlpn","url":"classes/clientoptionsbase.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":177,"kind":2048,"name":"isUsePooledBuffers","url":"classes/clientoptionsbase.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":178,"kind":2048,"name":"setUsePooledBuffers","url":"classes/clientoptionsbase.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":179,"kind":128,"name":"CopyOptions","url":"classes/copyoptions.html","classes":"tsd-kind-class"},{"id":180,"kind":512,"name":"constructor","url":"classes/copyoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CopyOptions"},{"id":181,"kind":2048,"name":"isAtomicMove","url":"classes/copyoptions.html#isatomicmove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":182,"kind":2048,"name":"setAtomicMove","url":"classes/copyoptions.html#setatomicmove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":183,"kind":2048,"name":"isCopyAttributes","url":"classes/copyoptions.html#iscopyattributes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":184,"kind":2048,"name":"setCopyAttributes","url":"classes/copyoptions.html#setcopyattributes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":185,"kind":2048,"name":"isNofollowLinks","url":"classes/copyoptions.html#isnofollowlinks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":186,"kind":2048,"name":"setNofollowLinks","url":"classes/copyoptions.html#setnofollowlinks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":187,"kind":2048,"name":"isReplaceExisting","url":"classes/copyoptions.html#isreplaceexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":188,"kind":2048,"name":"setReplaceExisting","url":"classes/copyoptions.html#setreplaceexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":189,"kind":128,"name":"DatagramSocketOptions","url":"classes/datagramsocketoptions.html","classes":"tsd-kind-class"},{"id":190,"kind":512,"name":"constructor","url":"classes/datagramsocketoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":191,"kind":2048,"name":"isBroadcast","url":"classes/datagramsocketoptions.html#isbroadcast","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":192,"kind":2048,"name":"setBroadcast","url":"classes/datagramsocketoptions.html#setbroadcast","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":193,"kind":2048,"name":"isIpV6","url":"classes/datagramsocketoptions.html#isipv6","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":194,"kind":2048,"name":"setIpV6","url":"classes/datagramsocketoptions.html#setipv6","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":195,"kind":2048,"name":"getLogActivity","url":"classes/datagramsocketoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":196,"kind":2048,"name":"setLogActivity","url":"classes/datagramsocketoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":197,"kind":2048,"name":"isLoopbackModeDisabled","url":"classes/datagramsocketoptions.html#isloopbackmodedisabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":198,"kind":2048,"name":"setLoopbackModeDisabled","url":"classes/datagramsocketoptions.html#setloopbackmodedisabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":199,"kind":2048,"name":"getMulticastNetworkInterface","url":"classes/datagramsocketoptions.html#getmulticastnetworkinterface","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":200,"kind":2048,"name":"setMulticastNetworkInterface","url":"classes/datagramsocketoptions.html#setmulticastnetworkinterface","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":201,"kind":2048,"name":"getMulticastTimeToLive","url":"classes/datagramsocketoptions.html#getmulticasttimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":202,"kind":2048,"name":"setMulticastTimeToLive","url":"classes/datagramsocketoptions.html#setmulticasttimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":203,"kind":2048,"name":"getReceiveBufferSize","url":"classes/datagramsocketoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":204,"kind":2048,"name":"setReceiveBufferSize","url":"classes/datagramsocketoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":205,"kind":2048,"name":"isReuseAddress","url":"classes/datagramsocketoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":206,"kind":2048,"name":"setReuseAddress","url":"classes/datagramsocketoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":207,"kind":2048,"name":"isReusePort","url":"classes/datagramsocketoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":208,"kind":2048,"name":"setReusePort","url":"classes/datagramsocketoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":209,"kind":2048,"name":"getSendBufferSize","url":"classes/datagramsocketoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":210,"kind":2048,"name":"setSendBufferSize","url":"classes/datagramsocketoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":211,"kind":2048,"name":"getTrafficClass","url":"classes/datagramsocketoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":212,"kind":2048,"name":"setTrafficClass","url":"classes/datagramsocketoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":213,"kind":128,"name":"DeliveryOptions","url":"classes/deliveryoptions.html","classes":"tsd-kind-class"},{"id":214,"kind":512,"name":"constructor","url":"classes/deliveryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":215,"kind":2048,"name":"getCodecName","url":"classes/deliveryoptions.html#getcodecname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":216,"kind":2048,"name":"setCodecName","url":"classes/deliveryoptions.html#setcodecname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":217,"kind":2048,"name":"addHeader","url":"classes/deliveryoptions.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":218,"kind":2048,"name":"isLocalOnly","url":"classes/deliveryoptions.html#islocalonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":219,"kind":2048,"name":"setLocalOnly","url":"classes/deliveryoptions.html#setlocalonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":220,"kind":2048,"name":"getSendTimeout","url":"classes/deliveryoptions.html#getsendtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":221,"kind":2048,"name":"setSendTimeout","url":"classes/deliveryoptions.html#setsendtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":222,"kind":128,"name":"DeploymentOptions","url":"classes/deploymentoptions.html","classes":"tsd-kind-class"},{"id":223,"kind":512,"name":"constructor","url":"classes/deploymentoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":224,"kind":2048,"name":"getConfig","url":"classes/deploymentoptions.html#getconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":225,"kind":2048,"name":"setConfig","url":"classes/deploymentoptions.html#setconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":226,"kind":2048,"name":"getExtraClasspath","url":"classes/deploymentoptions.html#getextraclasspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":227,"kind":2048,"name":"setExtraClasspath","url":"classes/deploymentoptions.html#setextraclasspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":228,"kind":2048,"name":"isHa","url":"classes/deploymentoptions.html#isha","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":229,"kind":2048,"name":"setHa","url":"classes/deploymentoptions.html#setha","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":230,"kind":2048,"name":"getInstances","url":"classes/deploymentoptions.html#getinstances","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":231,"kind":2048,"name":"setInstances","url":"classes/deploymentoptions.html#setinstances","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":232,"kind":2048,"name":"getIsolatedClasses","url":"classes/deploymentoptions.html#getisolatedclasses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":233,"kind":2048,"name":"setIsolatedClasses","url":"classes/deploymentoptions.html#setisolatedclasses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":234,"kind":2048,"name":"getIsolationGroup","url":"classes/deploymentoptions.html#getisolationgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":235,"kind":2048,"name":"setIsolationGroup","url":"classes/deploymentoptions.html#setisolationgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":236,"kind":2048,"name":"getMaxWorkerExecuteTime","url":"classes/deploymentoptions.html#getmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":237,"kind":2048,"name":"setMaxWorkerExecuteTime","url":"classes/deploymentoptions.html#setmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":238,"kind":2048,"name":"getMaxWorkerExecuteTimeUnit","url":"classes/deploymentoptions.html#getmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":239,"kind":2048,"name":"setMaxWorkerExecuteTimeUnit","url":"classes/deploymentoptions.html#setmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":240,"kind":2048,"name":"isMultiThreaded","url":"classes/deploymentoptions.html#ismultithreaded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":241,"kind":2048,"name":"setMultiThreaded","url":"classes/deploymentoptions.html#setmultithreaded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":242,"kind":2048,"name":"isWorker","url":"classes/deploymentoptions.html#isworker","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":243,"kind":2048,"name":"setWorker","url":"classes/deploymentoptions.html#setworker","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":244,"kind":2048,"name":"getWorkerPoolName","url":"classes/deploymentoptions.html#getworkerpoolname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":245,"kind":2048,"name":"setWorkerPoolName","url":"classes/deploymentoptions.html#setworkerpoolname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":246,"kind":2048,"name":"getWorkerPoolSize","url":"classes/deploymentoptions.html#getworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":247,"kind":2048,"name":"setWorkerPoolSize","url":"classes/deploymentoptions.html#setworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":248,"kind":128,"name":"DnsClientOptions","url":"classes/dnsclientoptions.html","classes":"tsd-kind-class"},{"id":249,"kind":512,"name":"constructor","url":"classes/dnsclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":250,"kind":2048,"name":"getHost","url":"classes/dnsclientoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":251,"kind":2048,"name":"setHost","url":"classes/dnsclientoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":252,"kind":2048,"name":"getLogActivity","url":"classes/dnsclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":253,"kind":2048,"name":"setLogActivity","url":"classes/dnsclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":254,"kind":2048,"name":"getPort","url":"classes/dnsclientoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":255,"kind":2048,"name":"setPort","url":"classes/dnsclientoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":256,"kind":2048,"name":"getQueryTimeout","url":"classes/dnsclientoptions.html#getquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":257,"kind":2048,"name":"setQueryTimeout","url":"classes/dnsclientoptions.html#setquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":258,"kind":2048,"name":"isRecursionDesired","url":"classes/dnsclientoptions.html#isrecursiondesired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":259,"kind":2048,"name":"setRecursionDesired","url":"classes/dnsclientoptions.html#setrecursiondesired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":260,"kind":128,"name":"EventBusOptions","url":"classes/eventbusoptions.html","classes":"tsd-kind-class"},{"id":261,"kind":512,"name":"constructor","url":"classes/eventbusoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventBusOptions"},{"id":262,"kind":2048,"name":"getAcceptBacklog","url":"classes/eventbusoptions.html#getacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":263,"kind":2048,"name":"setAcceptBacklog","url":"classes/eventbusoptions.html#setacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":264,"kind":2048,"name":"getClientAuth","url":"classes/eventbusoptions.html#getclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":265,"kind":2048,"name":"setClientAuth","url":"classes/eventbusoptions.html#setclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":266,"kind":2048,"name":"getClusterPingInterval","url":"classes/eventbusoptions.html#getclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":267,"kind":2048,"name":"setClusterPingInterval","url":"classes/eventbusoptions.html#setclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":268,"kind":2048,"name":"getClusterPingReplyInterval","url":"classes/eventbusoptions.html#getclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":269,"kind":2048,"name":"setClusterPingReplyInterval","url":"classes/eventbusoptions.html#setclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":270,"kind":2048,"name":"getClusterPublicHost","url":"classes/eventbusoptions.html#getclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":271,"kind":2048,"name":"setClusterPublicHost","url":"classes/eventbusoptions.html#setclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":272,"kind":2048,"name":"getClusterPublicPort","url":"classes/eventbusoptions.html#getclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":273,"kind":2048,"name":"setClusterPublicPort","url":"classes/eventbusoptions.html#setclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":274,"kind":2048,"name":"isClustered","url":"classes/eventbusoptions.html#isclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":275,"kind":2048,"name":"setClustered","url":"classes/eventbusoptions.html#setclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":276,"kind":2048,"name":"getConnectTimeout","url":"classes/eventbusoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":277,"kind":2048,"name":"setConnectTimeout","url":"classes/eventbusoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":278,"kind":2048,"name":"getCrlPaths","url":"classes/eventbusoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":279,"kind":2048,"name":"addCrlPath","url":"classes/eventbusoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":280,"kind":2048,"name":"getCrlValues","url":"classes/eventbusoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":281,"kind":2048,"name":"addCrlValue","url":"classes/eventbusoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":282,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/eventbusoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":283,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/eventbusoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":284,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/eventbusoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":285,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/eventbusoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":286,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/eventbusoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":287,"kind":2048,"name":"getHost","url":"classes/eventbusoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":288,"kind":2048,"name":"setHost","url":"classes/eventbusoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":289,"kind":2048,"name":"getIdleTimeout","url":"classes/eventbusoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":290,"kind":2048,"name":"setIdleTimeout","url":"classes/eventbusoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":291,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/eventbusoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":292,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/eventbusoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":293,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/eventbusoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":294,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/eventbusoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":295,"kind":2048,"name":"getKeyStoreOptions","url":"classes/eventbusoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":296,"kind":2048,"name":"setKeyStoreOptions","url":"classes/eventbusoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":297,"kind":2048,"name":"getLogActivity","url":"classes/eventbusoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":298,"kind":2048,"name":"setLogActivity","url":"classes/eventbusoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":299,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/eventbusoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":300,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/eventbusoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":301,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/eventbusoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":302,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/eventbusoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":303,"kind":2048,"name":"getPemTrustOptions","url":"classes/eventbusoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":304,"kind":2048,"name":"setPemTrustOptions","url":"classes/eventbusoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":305,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/eventbusoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":306,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/eventbusoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":307,"kind":2048,"name":"getPfxTrustOptions","url":"classes/eventbusoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":308,"kind":2048,"name":"setPfxTrustOptions","url":"classes/eventbusoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":309,"kind":2048,"name":"getPort","url":"classes/eventbusoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":310,"kind":2048,"name":"setPort","url":"classes/eventbusoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":311,"kind":2048,"name":"getReceiveBufferSize","url":"classes/eventbusoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":312,"kind":2048,"name":"setReceiveBufferSize","url":"classes/eventbusoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":313,"kind":2048,"name":"getReconnectAttempts","url":"classes/eventbusoptions.html#getreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":314,"kind":2048,"name":"setReconnectAttempts","url":"classes/eventbusoptions.html#setreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":315,"kind":2048,"name":"getReconnectInterval","url":"classes/eventbusoptions.html#getreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":316,"kind":2048,"name":"setReconnectInterval","url":"classes/eventbusoptions.html#setreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":317,"kind":2048,"name":"isReuseAddress","url":"classes/eventbusoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":318,"kind":2048,"name":"setReuseAddress","url":"classes/eventbusoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":319,"kind":2048,"name":"isReusePort","url":"classes/eventbusoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":320,"kind":2048,"name":"setReusePort","url":"classes/eventbusoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":321,"kind":2048,"name":"getSendBufferSize","url":"classes/eventbusoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":322,"kind":2048,"name":"setSendBufferSize","url":"classes/eventbusoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":323,"kind":2048,"name":"getSoLinger","url":"classes/eventbusoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":324,"kind":2048,"name":"setSoLinger","url":"classes/eventbusoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":325,"kind":2048,"name":"isSsl","url":"classes/eventbusoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":326,"kind":2048,"name":"setSsl","url":"classes/eventbusoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":327,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/eventbusoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":328,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/eventbusoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":329,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/eventbusoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":330,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/eventbusoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":331,"kind":2048,"name":"isTcpCork","url":"classes/eventbusoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":332,"kind":2048,"name":"setTcpCork","url":"classes/eventbusoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":333,"kind":2048,"name":"isTcpFastOpen","url":"classes/eventbusoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":334,"kind":2048,"name":"setTcpFastOpen","url":"classes/eventbusoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":335,"kind":2048,"name":"isTcpKeepAlive","url":"classes/eventbusoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":336,"kind":2048,"name":"setTcpKeepAlive","url":"classes/eventbusoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":337,"kind":2048,"name":"isTcpNoDelay","url":"classes/eventbusoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":338,"kind":2048,"name":"setTcpNoDelay","url":"classes/eventbusoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":339,"kind":2048,"name":"isTcpQuickAck","url":"classes/eventbusoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":340,"kind":2048,"name":"setTcpQuickAck","url":"classes/eventbusoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":341,"kind":2048,"name":"getTrafficClass","url":"classes/eventbusoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":342,"kind":2048,"name":"setTrafficClass","url":"classes/eventbusoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":343,"kind":2048,"name":"isTrustAll","url":"classes/eventbusoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":344,"kind":2048,"name":"setTrustAll","url":"classes/eventbusoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":345,"kind":2048,"name":"getTrustStoreOptions","url":"classes/eventbusoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":346,"kind":2048,"name":"setTrustStoreOptions","url":"classes/eventbusoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":347,"kind":2048,"name":"isUseAlpn","url":"classes/eventbusoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":348,"kind":2048,"name":"setUseAlpn","url":"classes/eventbusoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":349,"kind":2048,"name":"isUsePooledBuffers","url":"classes/eventbusoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":350,"kind":2048,"name":"setUsePooledBuffers","url":"classes/eventbusoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":351,"kind":128,"name":"FileSystemOptions","url":"classes/filesystemoptions.html","classes":"tsd-kind-class"},{"id":352,"kind":512,"name":"constructor","url":"classes/filesystemoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":353,"kind":2048,"name":"isClassPathResolvingEnabled","url":"classes/filesystemoptions.html#isclasspathresolvingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":354,"kind":2048,"name":"setClassPathResolvingEnabled","url":"classes/filesystemoptions.html#setclasspathresolvingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":355,"kind":2048,"name":"getFileCacheDir","url":"classes/filesystemoptions.html#getfilecachedir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":356,"kind":2048,"name":"setFileCacheDir","url":"classes/filesystemoptions.html#setfilecachedir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":357,"kind":2048,"name":"isFileCachingEnabled","url":"classes/filesystemoptions.html#isfilecachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":358,"kind":2048,"name":"setFileCachingEnabled","url":"classes/filesystemoptions.html#setfilecachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":359,"kind":128,"name":"GoAway","url":"classes/goaway.html","classes":"tsd-kind-class"},{"id":360,"kind":512,"name":"constructor","url":"classes/goaway.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GoAway"},{"id":361,"kind":2048,"name":"getDebugData","url":"classes/goaway.html#getdebugdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":362,"kind":2048,"name":"setDebugData","url":"classes/goaway.html#setdebugdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":363,"kind":2048,"name":"getErrorCode","url":"classes/goaway.html#geterrorcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":364,"kind":2048,"name":"setErrorCode","url":"classes/goaway.html#seterrorcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":365,"kind":2048,"name":"getLastStreamId","url":"classes/goaway.html#getlaststreamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":366,"kind":2048,"name":"setLastStreamId","url":"classes/goaway.html#setlaststreamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":367,"kind":128,"name":"Http2Settings","url":"classes/http2settings.html","classes":"tsd-kind-class"},{"id":368,"kind":512,"name":"constructor","url":"classes/http2settings.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Http2Settings"},{"id":369,"kind":2048,"name":"getHeaderTableSize","url":"classes/http2settings.html#getheadertablesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":370,"kind":2048,"name":"setHeaderTableSize","url":"classes/http2settings.html#setheadertablesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":371,"kind":2048,"name":"getInitialWindowSize","url":"classes/http2settings.html#getinitialwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":372,"kind":2048,"name":"setInitialWindowSize","url":"classes/http2settings.html#setinitialwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":373,"kind":2048,"name":"getMaxConcurrentStreams","url":"classes/http2settings.html#getmaxconcurrentstreams","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":374,"kind":2048,"name":"setMaxConcurrentStreams","url":"classes/http2settings.html#setmaxconcurrentstreams","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":375,"kind":2048,"name":"getMaxFrameSize","url":"classes/http2settings.html#getmaxframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":376,"kind":2048,"name":"setMaxFrameSize","url":"classes/http2settings.html#setmaxframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":377,"kind":2048,"name":"getMaxHeaderListSize","url":"classes/http2settings.html#getmaxheaderlistsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":378,"kind":2048,"name":"setMaxHeaderListSize","url":"classes/http2settings.html#setmaxheaderlistsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":379,"kind":2048,"name":"isPushEnabled","url":"classes/http2settings.html#ispushenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":380,"kind":2048,"name":"setPushEnabled","url":"classes/http2settings.html#setpushenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":381,"kind":128,"name":"HttpClientOptions","url":"classes/httpclientoptions.html","classes":"tsd-kind-class"},{"id":382,"kind":512,"name":"constructor","url":"classes/httpclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":383,"kind":2048,"name":"getAlpnVersions","url":"classes/httpclientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":384,"kind":2048,"name":"setAlpnVersions","url":"classes/httpclientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":385,"kind":2048,"name":"getConnectTimeout","url":"classes/httpclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":386,"kind":2048,"name":"setConnectTimeout","url":"classes/httpclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":387,"kind":2048,"name":"getCrlPaths","url":"classes/httpclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":388,"kind":2048,"name":"addCrlPath","url":"classes/httpclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":389,"kind":2048,"name":"getCrlValues","url":"classes/httpclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":390,"kind":2048,"name":"addCrlValue","url":"classes/httpclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":391,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/httpclientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":392,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/httpclientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":393,"kind":2048,"name":"getDefaultHost","url":"classes/httpclientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":394,"kind":2048,"name":"setDefaultHost","url":"classes/httpclientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":395,"kind":2048,"name":"getDefaultPort","url":"classes/httpclientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":396,"kind":2048,"name":"setDefaultPort","url":"classes/httpclientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":397,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/httpclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":398,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/httpclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":399,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/httpclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":400,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/httpclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":401,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/httpclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":402,"kind":2048,"name":"isForceSni","url":"classes/httpclientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":403,"kind":2048,"name":"setForceSni","url":"classes/httpclientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":404,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/httpclientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":405,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/httpclientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":406,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/httpclientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":407,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/httpclientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":408,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/httpclientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":409,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/httpclientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":410,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/httpclientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":411,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/httpclientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":412,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/httpclientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":413,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/httpclientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":414,"kind":2048,"name":"getIdleTimeout","url":"classes/httpclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":415,"kind":2048,"name":"setIdleTimeout","url":"classes/httpclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":416,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/httpclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":417,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/httpclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":418,"kind":2048,"name":"getInitialSettings","url":"classes/httpclientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":419,"kind":2048,"name":"setInitialSettings","url":"classes/httpclientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":420,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/httpclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":421,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/httpclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":422,"kind":2048,"name":"isKeepAlive","url":"classes/httpclientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":423,"kind":2048,"name":"setKeepAlive","url":"classes/httpclientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":424,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/httpclientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":425,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/httpclientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":426,"kind":2048,"name":"getKeyStoreOptions","url":"classes/httpclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":427,"kind":2048,"name":"setKeyStoreOptions","url":"classes/httpclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":428,"kind":2048,"name":"getLocalAddress","url":"classes/httpclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":429,"kind":2048,"name":"setLocalAddress","url":"classes/httpclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":430,"kind":2048,"name":"getLogActivity","url":"classes/httpclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":431,"kind":2048,"name":"setLogActivity","url":"classes/httpclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":432,"kind":2048,"name":"getMaxChunkSize","url":"classes/httpclientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":433,"kind":2048,"name":"setMaxChunkSize","url":"classes/httpclientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":434,"kind":2048,"name":"getMaxHeaderSize","url":"classes/httpclientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":435,"kind":2048,"name":"setMaxHeaderSize","url":"classes/httpclientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":436,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/httpclientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":437,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/httpclientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":438,"kind":2048,"name":"getMaxPoolSize","url":"classes/httpclientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":439,"kind":2048,"name":"setMaxPoolSize","url":"classes/httpclientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":440,"kind":2048,"name":"getMaxRedirects","url":"classes/httpclientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":441,"kind":2048,"name":"setMaxRedirects","url":"classes/httpclientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":442,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/httpclientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":443,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/httpclientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":444,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/httpclientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":445,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/httpclientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":446,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/httpclientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":447,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/httpclientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":448,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/httpclientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":449,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/httpclientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":450,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/httpclientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":451,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/httpclientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":452,"kind":2048,"name":"getMetricsName","url":"classes/httpclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":453,"kind":2048,"name":"setMetricsName","url":"classes/httpclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":454,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/httpclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":455,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/httpclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":456,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/httpclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":457,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/httpclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":458,"kind":2048,"name":"getPemTrustOptions","url":"classes/httpclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":459,"kind":2048,"name":"setPemTrustOptions","url":"classes/httpclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":460,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/httpclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":461,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/httpclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":462,"kind":2048,"name":"getPfxTrustOptions","url":"classes/httpclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":463,"kind":2048,"name":"setPfxTrustOptions","url":"classes/httpclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":464,"kind":2048,"name":"isPipelining","url":"classes/httpclientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":465,"kind":2048,"name":"setPipelining","url":"classes/httpclientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":466,"kind":2048,"name":"getPipeliningLimit","url":"classes/httpclientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":467,"kind":2048,"name":"setPipeliningLimit","url":"classes/httpclientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":468,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/httpclientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":469,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/httpclientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":470,"kind":2048,"name":"getProtocolVersion","url":"classes/httpclientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":471,"kind":2048,"name":"setProtocolVersion","url":"classes/httpclientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":472,"kind":2048,"name":"getProxyOptions","url":"classes/httpclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":473,"kind":2048,"name":"setProxyOptions","url":"classes/httpclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":474,"kind":2048,"name":"getReceiveBufferSize","url":"classes/httpclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":475,"kind":2048,"name":"setReceiveBufferSize","url":"classes/httpclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":476,"kind":2048,"name":"isReuseAddress","url":"classes/httpclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":477,"kind":2048,"name":"setReuseAddress","url":"classes/httpclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":478,"kind":2048,"name":"isReusePort","url":"classes/httpclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":479,"kind":2048,"name":"setReusePort","url":"classes/httpclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":480,"kind":2048,"name":"getSendBufferSize","url":"classes/httpclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":481,"kind":2048,"name":"setSendBufferSize","url":"classes/httpclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":482,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/httpclientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":483,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/httpclientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":484,"kind":2048,"name":"getSoLinger","url":"classes/httpclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":485,"kind":2048,"name":"setSoLinger","url":"classes/httpclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":486,"kind":2048,"name":"isSsl","url":"classes/httpclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":487,"kind":2048,"name":"setSsl","url":"classes/httpclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":488,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/httpclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":489,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/httpclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":490,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/httpclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":491,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/httpclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":492,"kind":2048,"name":"isTcpCork","url":"classes/httpclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":493,"kind":2048,"name":"setTcpCork","url":"classes/httpclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":494,"kind":2048,"name":"isTcpFastOpen","url":"classes/httpclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":495,"kind":2048,"name":"setTcpFastOpen","url":"classes/httpclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":496,"kind":2048,"name":"isTcpKeepAlive","url":"classes/httpclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":497,"kind":2048,"name":"setTcpKeepAlive","url":"classes/httpclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":498,"kind":2048,"name":"isTcpNoDelay","url":"classes/httpclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":499,"kind":2048,"name":"setTcpNoDelay","url":"classes/httpclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":500,"kind":2048,"name":"isTcpQuickAck","url":"classes/httpclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":501,"kind":2048,"name":"setTcpQuickAck","url":"classes/httpclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":502,"kind":2048,"name":"getTrafficClass","url":"classes/httpclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":503,"kind":2048,"name":"setTrafficClass","url":"classes/httpclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":504,"kind":2048,"name":"isTrustAll","url":"classes/httpclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":505,"kind":2048,"name":"setTrustAll","url":"classes/httpclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":506,"kind":2048,"name":"getTrustStoreOptions","url":"classes/httpclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":507,"kind":2048,"name":"setTrustStoreOptions","url":"classes/httpclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":508,"kind":2048,"name":"isTryUseCompression","url":"classes/httpclientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":509,"kind":2048,"name":"setTryUseCompression","url":"classes/httpclientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":510,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/httpclientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":511,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/httpclientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":512,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/httpclientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":513,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/httpclientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":514,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/httpclientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":515,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/httpclientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":516,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/httpclientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":517,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/httpclientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":518,"kind":2048,"name":"isUseAlpn","url":"classes/httpclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":519,"kind":2048,"name":"setUseAlpn","url":"classes/httpclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":520,"kind":2048,"name":"isUsePooledBuffers","url":"classes/httpclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":521,"kind":2048,"name":"setUsePooledBuffers","url":"classes/httpclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":522,"kind":2048,"name":"isVerifyHost","url":"classes/httpclientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":523,"kind":2048,"name":"setVerifyHost","url":"classes/httpclientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":524,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":525,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":526,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/httpclientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":527,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/httpclientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":528,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":529,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":530,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":531,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":532,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/httpclientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":533,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/httpclientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":534,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":535,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":536,"kind":128,"name":"HttpServerOptions","url":"classes/httpserveroptions.html","classes":"tsd-kind-class"},{"id":537,"kind":512,"name":"constructor","url":"classes/httpserveroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":538,"kind":2048,"name":"getAcceptBacklog","url":"classes/httpserveroptions.html#getacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":539,"kind":2048,"name":"setAcceptBacklog","url":"classes/httpserveroptions.html#setacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":540,"kind":2048,"name":"isAcceptUnmaskedFrames","url":"classes/httpserveroptions.html#isacceptunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":541,"kind":2048,"name":"setAcceptUnmaskedFrames","url":"classes/httpserveroptions.html#setacceptunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":542,"kind":2048,"name":"getAlpnVersions","url":"classes/httpserveroptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":543,"kind":2048,"name":"setAlpnVersions","url":"classes/httpserveroptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":544,"kind":2048,"name":"getClientAuth","url":"classes/httpserveroptions.html#getclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":545,"kind":2048,"name":"setClientAuth","url":"classes/httpserveroptions.html#setclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":546,"kind":2048,"name":"isClientAuthRequired","url":"classes/httpserveroptions.html#isclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":547,"kind":2048,"name":"setClientAuthRequired","url":"classes/httpserveroptions.html#setclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":548,"kind":2048,"name":"getCompressionLevel","url":"classes/httpserveroptions.html#getcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":549,"kind":2048,"name":"setCompressionLevel","url":"classes/httpserveroptions.html#setcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":550,"kind":2048,"name":"isCompressionSupported","url":"classes/httpserveroptions.html#iscompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":551,"kind":2048,"name":"setCompressionSupported","url":"classes/httpserveroptions.html#setcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":552,"kind":2048,"name":"getCrlPaths","url":"classes/httpserveroptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":553,"kind":2048,"name":"addCrlPath","url":"classes/httpserveroptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":554,"kind":2048,"name":"getCrlValues","url":"classes/httpserveroptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":555,"kind":2048,"name":"addCrlValue","url":"classes/httpserveroptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":556,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/httpserveroptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":557,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/httpserveroptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":558,"kind":2048,"name":"isDecompressionSupported","url":"classes/httpserveroptions.html#isdecompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":559,"kind":2048,"name":"setDecompressionSupported","url":"classes/httpserveroptions.html#setdecompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":560,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/httpserveroptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":561,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/httpserveroptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":562,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/httpserveroptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":563,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/httpserveroptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":564,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/httpserveroptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":565,"kind":2048,"name":"isHandle100ContinueAutomatically","url":"classes/httpserveroptions.html#ishandle100continueautomatically","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":566,"kind":2048,"name":"setHandle100ContinueAutomatically","url":"classes/httpserveroptions.html#sethandle100continueautomatically","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":567,"kind":2048,"name":"getHost","url":"classes/httpserveroptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":568,"kind":2048,"name":"setHost","url":"classes/httpserveroptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":569,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/httpserveroptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":570,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/httpserveroptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":571,"kind":2048,"name":"getIdleTimeout","url":"classes/httpserveroptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":572,"kind":2048,"name":"setIdleTimeout","url":"classes/httpserveroptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":573,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/httpserveroptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":574,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/httpserveroptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":575,"kind":2048,"name":"getInitialSettings","url":"classes/httpserveroptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":576,"kind":2048,"name":"setInitialSettings","url":"classes/httpserveroptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":577,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/httpserveroptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":578,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/httpserveroptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":579,"kind":2048,"name":"getKeyStoreOptions","url":"classes/httpserveroptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":580,"kind":2048,"name":"setKeyStoreOptions","url":"classes/httpserveroptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":581,"kind":2048,"name":"getLogActivity","url":"classes/httpserveroptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":582,"kind":2048,"name":"setLogActivity","url":"classes/httpserveroptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":583,"kind":2048,"name":"getMaxChunkSize","url":"classes/httpserveroptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":584,"kind":2048,"name":"setMaxChunkSize","url":"classes/httpserveroptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":585,"kind":2048,"name":"getMaxHeaderSize","url":"classes/httpserveroptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":586,"kind":2048,"name":"setMaxHeaderSize","url":"classes/httpserveroptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":587,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/httpserveroptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":588,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/httpserveroptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":589,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/httpserveroptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":590,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/httpserveroptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":591,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/httpserveroptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":592,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/httpserveroptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":593,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/httpserveroptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":594,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/httpserveroptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":595,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/httpserveroptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":596,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/httpserveroptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":597,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/httpserveroptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":598,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/httpserveroptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":599,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/httpserveroptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":600,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/httpserveroptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":601,"kind":2048,"name":"getPemTrustOptions","url":"classes/httpserveroptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":602,"kind":2048,"name":"setPemTrustOptions","url":"classes/httpserveroptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":603,"kind":2048,"name":"getPerFrameWebSocketCompressionSupported","url":"classes/httpserveroptions.html#getperframewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":604,"kind":2048,"name":"setPerFrameWebSocketCompressionSupported","url":"classes/httpserveroptions.html#setperframewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":605,"kind":2048,"name":"getPerFrameWebsocketCompressionSupported","url":"classes/httpserveroptions.html#getperframewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":606,"kind":2048,"name":"setPerFrameWebsocketCompressionSupported","url":"classes/httpserveroptions.html#setperframewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":607,"kind":2048,"name":"getPerMessageWebSocketCompressionSupported","url":"classes/httpserveroptions.html#getpermessagewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":608,"kind":2048,"name":"setPerMessageWebSocketCompressionSupported","url":"classes/httpserveroptions.html#setpermessagewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":609,"kind":2048,"name":"getPerMessageWebsocketCompressionSupported","url":"classes/httpserveroptions.html#getpermessagewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":610,"kind":2048,"name":"setPerMessageWebsocketCompressionSupported","url":"classes/httpserveroptions.html#setpermessagewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":611,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/httpserveroptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":612,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/httpserveroptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":613,"kind":2048,"name":"getPfxTrustOptions","url":"classes/httpserveroptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":614,"kind":2048,"name":"setPfxTrustOptions","url":"classes/httpserveroptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":615,"kind":2048,"name":"getPort","url":"classes/httpserveroptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":616,"kind":2048,"name":"setPort","url":"classes/httpserveroptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":617,"kind":2048,"name":"getReceiveBufferSize","url":"classes/httpserveroptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":618,"kind":2048,"name":"setReceiveBufferSize","url":"classes/httpserveroptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":619,"kind":2048,"name":"isReuseAddress","url":"classes/httpserveroptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":620,"kind":2048,"name":"setReuseAddress","url":"classes/httpserveroptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":621,"kind":2048,"name":"isReusePort","url":"classes/httpserveroptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":622,"kind":2048,"name":"setReusePort","url":"classes/httpserveroptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":623,"kind":2048,"name":"getSendBufferSize","url":"classes/httpserveroptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":624,"kind":2048,"name":"setSendBufferSize","url":"classes/httpserveroptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":625,"kind":2048,"name":"isSni","url":"classes/httpserveroptions.html#issni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":626,"kind":2048,"name":"setSni","url":"classes/httpserveroptions.html#setsni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":627,"kind":2048,"name":"getSoLinger","url":"classes/httpserveroptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":628,"kind":2048,"name":"setSoLinger","url":"classes/httpserveroptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":629,"kind":2048,"name":"isSsl","url":"classes/httpserveroptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":630,"kind":2048,"name":"setSsl","url":"classes/httpserveroptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":631,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/httpserveroptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":632,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/httpserveroptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":633,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/httpserveroptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":634,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/httpserveroptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":635,"kind":2048,"name":"isTcpCork","url":"classes/httpserveroptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":636,"kind":2048,"name":"setTcpCork","url":"classes/httpserveroptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":637,"kind":2048,"name":"isTcpFastOpen","url":"classes/httpserveroptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":638,"kind":2048,"name":"setTcpFastOpen","url":"classes/httpserveroptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":639,"kind":2048,"name":"isTcpKeepAlive","url":"classes/httpserveroptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":640,"kind":2048,"name":"setTcpKeepAlive","url":"classes/httpserveroptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":641,"kind":2048,"name":"isTcpNoDelay","url":"classes/httpserveroptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":642,"kind":2048,"name":"setTcpNoDelay","url":"classes/httpserveroptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":643,"kind":2048,"name":"isTcpQuickAck","url":"classes/httpserveroptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":644,"kind":2048,"name":"setTcpQuickAck","url":"classes/httpserveroptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":645,"kind":2048,"name":"getTrafficClass","url":"classes/httpserveroptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":646,"kind":2048,"name":"setTrafficClass","url":"classes/httpserveroptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":647,"kind":2048,"name":"getTrustStoreOptions","url":"classes/httpserveroptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":648,"kind":2048,"name":"setTrustStoreOptions","url":"classes/httpserveroptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":649,"kind":2048,"name":"isUseAlpn","url":"classes/httpserveroptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":650,"kind":2048,"name":"setUseAlpn","url":"classes/httpserveroptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":651,"kind":2048,"name":"isUsePooledBuffers","url":"classes/httpserveroptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":652,"kind":2048,"name":"setUsePooledBuffers","url":"classes/httpserveroptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":653,"kind":2048,"name":"getWebSocketAllowServerNoContext","url":"classes/httpserveroptions.html#getwebsocketallowservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":654,"kind":2048,"name":"setWebSocketAllowServerNoContext","url":"classes/httpserveroptions.html#setwebsocketallowservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":655,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/httpserveroptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":656,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/httpserveroptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":657,"kind":2048,"name":"getWebSocketPreferredClientNoContext","url":"classes/httpserveroptions.html#getwebsocketpreferredclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":658,"kind":2048,"name":"setWebSocketPreferredClientNoContext","url":"classes/httpserveroptions.html#setwebsocketpreferredclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":659,"kind":2048,"name":"getWebSocketSubProtocols","url":"classes/httpserveroptions.html#getwebsocketsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":660,"kind":2048,"name":"setWebSocketSubProtocols","url":"classes/httpserveroptions.html#setwebsocketsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":661,"kind":2048,"name":"addWebSocketSubProtocol","url":"classes/httpserveroptions.html#addwebsocketsubprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":662,"kind":2048,"name":"getWebsocketAllowServerNoContext","url":"classes/httpserveroptions.html#getwebsocketallowservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":663,"kind":2048,"name":"setWebsocketAllowServerNoContext","url":"classes/httpserveroptions.html#setwebsocketallowservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":664,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/httpserveroptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":665,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/httpserveroptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":666,"kind":2048,"name":"getWebsocketPreferredClientNoContext","url":"classes/httpserveroptions.html#getwebsocketpreferredclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":667,"kind":2048,"name":"setWebsocketPreferredClientNoContext","url":"classes/httpserveroptions.html#setwebsocketpreferredclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":668,"kind":2048,"name":"getWebsocketSubProtocols","url":"classes/httpserveroptions.html#getwebsocketsubprotocols-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":669,"kind":2048,"name":"setWebsocketSubProtocols","url":"classes/httpserveroptions.html#setwebsocketsubprotocols-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":670,"kind":128,"name":"JdkSSLEngineOptions","url":"classes/jdksslengineoptions.html","classes":"tsd-kind-class"},{"id":671,"kind":512,"name":"constructor","url":"classes/jdksslengineoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"JdkSSLEngineOptions"},{"id":672,"kind":128,"name":"JksOptions","url":"classes/jksoptions.html","classes":"tsd-kind-class"},{"id":673,"kind":512,"name":"constructor","url":"classes/jksoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"JksOptions"},{"id":674,"kind":2048,"name":"getPassword","url":"classes/jksoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":675,"kind":2048,"name":"setPassword","url":"classes/jksoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":676,"kind":2048,"name":"getPath","url":"classes/jksoptions.html#getpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":677,"kind":2048,"name":"setPath","url":"classes/jksoptions.html#setpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":678,"kind":2048,"name":"getValue","url":"classes/jksoptions.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":679,"kind":2048,"name":"setValue","url":"classes/jksoptions.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":680,"kind":128,"name":"MetricsOptions","url":"classes/metricsoptions.html","classes":"tsd-kind-class"},{"id":681,"kind":512,"name":"constructor","url":"classes/metricsoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MetricsOptions"},{"id":682,"kind":2048,"name":"isEnabled","url":"classes/metricsoptions.html#isenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MetricsOptions"},{"id":683,"kind":2048,"name":"setEnabled","url":"classes/metricsoptions.html#setenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MetricsOptions"},{"id":684,"kind":128,"name":"NetClientOptions","url":"classes/netclientoptions.html","classes":"tsd-kind-class"},{"id":685,"kind":512,"name":"constructor","url":"classes/netclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NetClientOptions"},{"id":686,"kind":2048,"name":"getConnectTimeout","url":"classes/netclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":687,"kind":2048,"name":"setConnectTimeout","url":"classes/netclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":688,"kind":2048,"name":"getCrlPaths","url":"classes/netclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":689,"kind":2048,"name":"addCrlPath","url":"classes/netclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":690,"kind":2048,"name":"getCrlValues","url":"classes/netclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":691,"kind":2048,"name":"addCrlValue","url":"classes/netclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":692,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/netclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":693,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/netclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":694,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/netclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":695,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/netclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":696,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/netclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":697,"kind":2048,"name":"getHostnameVerificationAlgorithm","url":"classes/netclientoptions.html#gethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":698,"kind":2048,"name":"setHostnameVerificationAlgorithm","url":"classes/netclientoptions.html#sethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":699,"kind":2048,"name":"getIdleTimeout","url":"classes/netclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":700,"kind":2048,"name":"setIdleTimeout","url":"classes/netclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":701,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/netclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":702,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/netclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":703,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/netclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":704,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/netclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":705,"kind":2048,"name":"getKeyStoreOptions","url":"classes/netclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":706,"kind":2048,"name":"setKeyStoreOptions","url":"classes/netclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":707,"kind":2048,"name":"getLocalAddress","url":"classes/netclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":708,"kind":2048,"name":"setLocalAddress","url":"classes/netclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":709,"kind":2048,"name":"getLogActivity","url":"classes/netclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":710,"kind":2048,"name":"setLogActivity","url":"classes/netclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":711,"kind":2048,"name":"getMetricsName","url":"classes/netclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":712,"kind":2048,"name":"setMetricsName","url":"classes/netclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":713,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/netclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":714,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/netclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":715,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/netclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":716,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/netclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":717,"kind":2048,"name":"getPemTrustOptions","url":"classes/netclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":718,"kind":2048,"name":"setPemTrustOptions","url":"classes/netclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":719,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/netclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":720,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/netclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":721,"kind":2048,"name":"getPfxTrustOptions","url":"classes/netclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":722,"kind":2048,"name":"setPfxTrustOptions","url":"classes/netclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":723,"kind":2048,"name":"getProxyOptions","url":"classes/netclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":724,"kind":2048,"name":"setProxyOptions","url":"classes/netclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":725,"kind":2048,"name":"getReceiveBufferSize","url":"classes/netclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":726,"kind":2048,"name":"setReceiveBufferSize","url":"classes/netclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":727,"kind":2048,"name":"getReconnectAttempts","url":"classes/netclientoptions.html#getreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":728,"kind":2048,"name":"setReconnectAttempts","url":"classes/netclientoptions.html#setreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":729,"kind":2048,"name":"getReconnectInterval","url":"classes/netclientoptions.html#getreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":730,"kind":2048,"name":"setReconnectInterval","url":"classes/netclientoptions.html#setreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":731,"kind":2048,"name":"isReuseAddress","url":"classes/netclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":732,"kind":2048,"name":"setReuseAddress","url":"classes/netclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":733,"kind":2048,"name":"isReusePort","url":"classes/netclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":734,"kind":2048,"name":"setReusePort","url":"classes/netclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":735,"kind":2048,"name":"getSendBufferSize","url":"classes/netclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":736,"kind":2048,"name":"setSendBufferSize","url":"classes/netclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":737,"kind":2048,"name":"getSoLinger","url":"classes/netclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":738,"kind":2048,"name":"setSoLinger","url":"classes/netclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":739,"kind":2048,"name":"isSsl","url":"classes/netclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":740,"kind":2048,"name":"setSsl","url":"classes/netclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":741,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/netclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":742,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/netclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":743,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/netclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":744,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/netclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":745,"kind":2048,"name":"isTcpCork","url":"classes/netclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":746,"kind":2048,"name":"setTcpCork","url":"classes/netclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":747,"kind":2048,"name":"isTcpFastOpen","url":"classes/netclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":748,"kind":2048,"name":"setTcpFastOpen","url":"classes/netclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":749,"kind":2048,"name":"isTcpKeepAlive","url":"classes/netclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":750,"kind":2048,"name":"setTcpKeepAlive","url":"classes/netclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":751,"kind":2048,"name":"isTcpNoDelay","url":"classes/netclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":752,"kind":2048,"name":"setTcpNoDelay","url":"classes/netclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":753,"kind":2048,"name":"isTcpQuickAck","url":"classes/netclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":754,"kind":2048,"name":"setTcpQuickAck","url":"classes/netclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":755,"kind":2048,"name":"getTrafficClass","url":"classes/netclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":756,"kind":2048,"name":"setTrafficClass","url":"classes/netclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":757,"kind":2048,"name":"isTrustAll","url":"classes/netclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":758,"kind":2048,"name":"setTrustAll","url":"classes/netclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":759,"kind":2048,"name":"getTrustStoreOptions","url":"classes/netclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":760,"kind":2048,"name":"setTrustStoreOptions","url":"classes/netclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":761,"kind":2048,"name":"isUseAlpn","url":"classes/netclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":762,"kind":2048,"name":"setUseAlpn","url":"classes/netclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":763,"kind":2048,"name":"isUsePooledBuffers","url":"classes/netclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":764,"kind":2048,"name":"setUsePooledBuffers","url":"classes/netclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":765,"kind":128,"name":"NetServerOptions","url":"classes/netserveroptions.html","classes":"tsd-kind-class"},{"id":766,"kind":512,"name":"constructor","url":"classes/netserveroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NetServerOptions"},{"id":767,"kind":2048,"name":"getAcceptBacklog","url":"classes/netserveroptions.html#getacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":768,"kind":2048,"name":"setAcceptBacklog","url":"classes/netserveroptions.html#setacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":769,"kind":2048,"name":"getClientAuth","url":"classes/netserveroptions.html#getclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":770,"kind":2048,"name":"setClientAuth","url":"classes/netserveroptions.html#setclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":771,"kind":2048,"name":"isClientAuthRequired","url":"classes/netserveroptions.html#isclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":772,"kind":2048,"name":"setClientAuthRequired","url":"classes/netserveroptions.html#setclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":773,"kind":2048,"name":"getCrlPaths","url":"classes/netserveroptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":774,"kind":2048,"name":"addCrlPath","url":"classes/netserveroptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":775,"kind":2048,"name":"getCrlValues","url":"classes/netserveroptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":776,"kind":2048,"name":"addCrlValue","url":"classes/netserveroptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":777,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/netserveroptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":778,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/netserveroptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":779,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/netserveroptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":780,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/netserveroptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":781,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/netserveroptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":782,"kind":2048,"name":"getHost","url":"classes/netserveroptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":783,"kind":2048,"name":"setHost","url":"classes/netserveroptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":784,"kind":2048,"name":"getIdleTimeout","url":"classes/netserveroptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":785,"kind":2048,"name":"setIdleTimeout","url":"classes/netserveroptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":786,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/netserveroptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":787,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/netserveroptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":788,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/netserveroptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":789,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/netserveroptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":790,"kind":2048,"name":"getKeyStoreOptions","url":"classes/netserveroptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":791,"kind":2048,"name":"setKeyStoreOptions","url":"classes/netserveroptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":792,"kind":2048,"name":"getLogActivity","url":"classes/netserveroptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":793,"kind":2048,"name":"setLogActivity","url":"classes/netserveroptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":794,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/netserveroptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":795,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/netserveroptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":796,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/netserveroptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":797,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/netserveroptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":798,"kind":2048,"name":"getPemTrustOptions","url":"classes/netserveroptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":799,"kind":2048,"name":"setPemTrustOptions","url":"classes/netserveroptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":800,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/netserveroptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":801,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/netserveroptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":802,"kind":2048,"name":"getPfxTrustOptions","url":"classes/netserveroptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":803,"kind":2048,"name":"setPfxTrustOptions","url":"classes/netserveroptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":804,"kind":2048,"name":"getPort","url":"classes/netserveroptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":805,"kind":2048,"name":"setPort","url":"classes/netserveroptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":806,"kind":2048,"name":"getReceiveBufferSize","url":"classes/netserveroptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":807,"kind":2048,"name":"setReceiveBufferSize","url":"classes/netserveroptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":808,"kind":2048,"name":"isReuseAddress","url":"classes/netserveroptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":809,"kind":2048,"name":"setReuseAddress","url":"classes/netserveroptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":810,"kind":2048,"name":"isReusePort","url":"classes/netserveroptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":811,"kind":2048,"name":"setReusePort","url":"classes/netserveroptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":812,"kind":2048,"name":"getSendBufferSize","url":"classes/netserveroptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":813,"kind":2048,"name":"setSendBufferSize","url":"classes/netserveroptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":814,"kind":2048,"name":"isSni","url":"classes/netserveroptions.html#issni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":815,"kind":2048,"name":"setSni","url":"classes/netserveroptions.html#setsni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":816,"kind":2048,"name":"getSoLinger","url":"classes/netserveroptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":817,"kind":2048,"name":"setSoLinger","url":"classes/netserveroptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":818,"kind":2048,"name":"isSsl","url":"classes/netserveroptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":819,"kind":2048,"name":"setSsl","url":"classes/netserveroptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":820,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/netserveroptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":821,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/netserveroptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":822,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/netserveroptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":823,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/netserveroptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":824,"kind":2048,"name":"isTcpCork","url":"classes/netserveroptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":825,"kind":2048,"name":"setTcpCork","url":"classes/netserveroptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":826,"kind":2048,"name":"isTcpFastOpen","url":"classes/netserveroptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":827,"kind":2048,"name":"setTcpFastOpen","url":"classes/netserveroptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":828,"kind":2048,"name":"isTcpKeepAlive","url":"classes/netserveroptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":829,"kind":2048,"name":"setTcpKeepAlive","url":"classes/netserveroptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":830,"kind":2048,"name":"isTcpNoDelay","url":"classes/netserveroptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":831,"kind":2048,"name":"setTcpNoDelay","url":"classes/netserveroptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":832,"kind":2048,"name":"isTcpQuickAck","url":"classes/netserveroptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":833,"kind":2048,"name":"setTcpQuickAck","url":"classes/netserveroptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":834,"kind":2048,"name":"getTrafficClass","url":"classes/netserveroptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":835,"kind":2048,"name":"setTrafficClass","url":"classes/netserveroptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":836,"kind":2048,"name":"getTrustStoreOptions","url":"classes/netserveroptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":837,"kind":2048,"name":"setTrustStoreOptions","url":"classes/netserveroptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":838,"kind":2048,"name":"isUseAlpn","url":"classes/netserveroptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":839,"kind":2048,"name":"setUseAlpn","url":"classes/netserveroptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":840,"kind":2048,"name":"isUsePooledBuffers","url":"classes/netserveroptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":841,"kind":2048,"name":"setUsePooledBuffers","url":"classes/netserveroptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":842,"kind":128,"name":"NetworkOptions","url":"classes/networkoptions.html","classes":"tsd-kind-class"},{"id":843,"kind":512,"name":"constructor","url":"classes/networkoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NetworkOptions"},{"id":844,"kind":2048,"name":"getLogActivity","url":"classes/networkoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":845,"kind":2048,"name":"setLogActivity","url":"classes/networkoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":846,"kind":2048,"name":"getReceiveBufferSize","url":"classes/networkoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":847,"kind":2048,"name":"setReceiveBufferSize","url":"classes/networkoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":848,"kind":2048,"name":"isReuseAddress","url":"classes/networkoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":849,"kind":2048,"name":"setReuseAddress","url":"classes/networkoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":850,"kind":2048,"name":"isReusePort","url":"classes/networkoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":851,"kind":2048,"name":"setReusePort","url":"classes/networkoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":852,"kind":2048,"name":"getSendBufferSize","url":"classes/networkoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":853,"kind":2048,"name":"setSendBufferSize","url":"classes/networkoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":854,"kind":2048,"name":"getTrafficClass","url":"classes/networkoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":855,"kind":2048,"name":"setTrafficClass","url":"classes/networkoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":856,"kind":128,"name":"OpenOptions","url":"classes/openoptions.html","classes":"tsd-kind-class"},{"id":857,"kind":512,"name":"constructor","url":"classes/openoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OpenOptions"},{"id":858,"kind":2048,"name":"isAppend","url":"classes/openoptions.html#isappend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":859,"kind":2048,"name":"setAppend","url":"classes/openoptions.html#setappend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":860,"kind":2048,"name":"isCreate","url":"classes/openoptions.html#iscreate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":861,"kind":2048,"name":"setCreate","url":"classes/openoptions.html#setcreate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":862,"kind":2048,"name":"isCreateNew","url":"classes/openoptions.html#iscreatenew","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":863,"kind":2048,"name":"setCreateNew","url":"classes/openoptions.html#setcreatenew","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":864,"kind":2048,"name":"isDeleteOnClose","url":"classes/openoptions.html#isdeleteonclose","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":865,"kind":2048,"name":"setDeleteOnClose","url":"classes/openoptions.html#setdeleteonclose","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":866,"kind":2048,"name":"isDsync","url":"classes/openoptions.html#isdsync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":867,"kind":2048,"name":"setDsync","url":"classes/openoptions.html#setdsync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":868,"kind":2048,"name":"getPerms","url":"classes/openoptions.html#getperms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":869,"kind":2048,"name":"setPerms","url":"classes/openoptions.html#setperms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":870,"kind":2048,"name":"isRead","url":"classes/openoptions.html#isread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":871,"kind":2048,"name":"setRead","url":"classes/openoptions.html#setread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":872,"kind":2048,"name":"isSparse","url":"classes/openoptions.html#issparse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":873,"kind":2048,"name":"setSparse","url":"classes/openoptions.html#setsparse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":874,"kind":2048,"name":"isSync","url":"classes/openoptions.html#issync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":875,"kind":2048,"name":"setSync","url":"classes/openoptions.html#setsync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":876,"kind":2048,"name":"isTruncateExisting","url":"classes/openoptions.html#istruncateexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":877,"kind":2048,"name":"setTruncateExisting","url":"classes/openoptions.html#settruncateexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":878,"kind":2048,"name":"isWrite","url":"classes/openoptions.html#iswrite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":879,"kind":2048,"name":"setWrite","url":"classes/openoptions.html#setwrite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":880,"kind":128,"name":"OpenSSLEngineOptions","url":"classes/opensslengineoptions.html","classes":"tsd-kind-class"},{"id":881,"kind":512,"name":"constructor","url":"classes/opensslengineoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OpenSSLEngineOptions"},{"id":882,"kind":2048,"name":"isSessionCacheEnabled","url":"classes/opensslengineoptions.html#issessioncacheenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenSSLEngineOptions"},{"id":883,"kind":2048,"name":"setSessionCacheEnabled","url":"classes/opensslengineoptions.html#setsessioncacheenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenSSLEngineOptions"},{"id":884,"kind":128,"name":"Option","url":"classes/option.html","classes":"tsd-kind-class"},{"id":885,"kind":512,"name":"constructor","url":"classes/option.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Option"},{"id":886,"kind":2048,"name":"getArgName","url":"classes/option.html#getargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":887,"kind":2048,"name":"setArgName","url":"classes/option.html#setargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":888,"kind":2048,"name":"getChoices","url":"classes/option.html#getchoices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":889,"kind":2048,"name":"setChoices","url":"classes/option.html#setchoices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":890,"kind":2048,"name":"addChoice","url":"classes/option.html#addchoice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":891,"kind":2048,"name":"getDefaultValue","url":"classes/option.html#getdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":892,"kind":2048,"name":"setDefaultValue","url":"classes/option.html#setdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":893,"kind":2048,"name":"getDescription","url":"classes/option.html#getdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":894,"kind":2048,"name":"setDescription","url":"classes/option.html#setdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":895,"kind":2048,"name":"isFlag","url":"classes/option.html#isflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":896,"kind":2048,"name":"setFlag","url":"classes/option.html#setflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":897,"kind":2048,"name":"isHelp","url":"classes/option.html#ishelp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":898,"kind":2048,"name":"setHelp","url":"classes/option.html#sethelp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":899,"kind":2048,"name":"isHidden","url":"classes/option.html#ishidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":900,"kind":2048,"name":"setHidden","url":"classes/option.html#sethidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":901,"kind":2048,"name":"getLongName","url":"classes/option.html#getlongname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":902,"kind":2048,"name":"setLongName","url":"classes/option.html#setlongname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":903,"kind":2048,"name":"isMultiValued","url":"classes/option.html#ismultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":904,"kind":2048,"name":"setMultiValued","url":"classes/option.html#setmultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":905,"kind":2048,"name":"getName","url":"classes/option.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":906,"kind":2048,"name":"isRequired","url":"classes/option.html#isrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":907,"kind":2048,"name":"setRequired","url":"classes/option.html#setrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":908,"kind":2048,"name":"getShortName","url":"classes/option.html#getshortname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":909,"kind":2048,"name":"setShortName","url":"classes/option.html#setshortname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":910,"kind":2048,"name":"isSingleValued","url":"classes/option.html#issinglevalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":911,"kind":2048,"name":"setSingleValued","url":"classes/option.html#setsinglevalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":912,"kind":128,"name":"PemKeyCertOptions","url":"classes/pemkeycertoptions.html","classes":"tsd-kind-class"},{"id":913,"kind":512,"name":"constructor","url":"classes/pemkeycertoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":914,"kind":2048,"name":"setCertPath","url":"classes/pemkeycertoptions.html#setcertpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":915,"kind":2048,"name":"getCertPaths","url":"classes/pemkeycertoptions.html#getcertpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":916,"kind":2048,"name":"setCertPaths","url":"classes/pemkeycertoptions.html#setcertpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":917,"kind":2048,"name":"setCertValue","url":"classes/pemkeycertoptions.html#setcertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":918,"kind":2048,"name":"getCertValues","url":"classes/pemkeycertoptions.html#getcertvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":919,"kind":2048,"name":"setCertValues","url":"classes/pemkeycertoptions.html#setcertvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":920,"kind":2048,"name":"setKeyPath","url":"classes/pemkeycertoptions.html#setkeypath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":921,"kind":2048,"name":"getKeyPaths","url":"classes/pemkeycertoptions.html#getkeypaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":922,"kind":2048,"name":"setKeyPaths","url":"classes/pemkeycertoptions.html#setkeypaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":923,"kind":2048,"name":"setKeyValue","url":"classes/pemkeycertoptions.html#setkeyvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":924,"kind":2048,"name":"getKeyValues","url":"classes/pemkeycertoptions.html#getkeyvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":925,"kind":2048,"name":"setKeyValues","url":"classes/pemkeycertoptions.html#setkeyvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":926,"kind":128,"name":"PemTrustOptions","url":"classes/pemtrustoptions.html","classes":"tsd-kind-class"},{"id":927,"kind":512,"name":"constructor","url":"classes/pemtrustoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":928,"kind":2048,"name":"getCertPaths","url":"classes/pemtrustoptions.html#getcertpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":929,"kind":2048,"name":"addCertPath","url":"classes/pemtrustoptions.html#addcertpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":930,"kind":2048,"name":"getCertValues","url":"classes/pemtrustoptions.html#getcertvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":931,"kind":2048,"name":"addCertValue","url":"classes/pemtrustoptions.html#addcertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":932,"kind":128,"name":"PfxOptions","url":"classes/pfxoptions.html","classes":"tsd-kind-class"},{"id":933,"kind":512,"name":"constructor","url":"classes/pfxoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PfxOptions"},{"id":934,"kind":2048,"name":"getPassword","url":"classes/pfxoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":935,"kind":2048,"name":"setPassword","url":"classes/pfxoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":936,"kind":2048,"name":"getPath","url":"classes/pfxoptions.html#getpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":937,"kind":2048,"name":"setPath","url":"classes/pfxoptions.html#setpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":938,"kind":2048,"name":"getValue","url":"classes/pfxoptions.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":939,"kind":2048,"name":"setValue","url":"classes/pfxoptions.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":940,"kind":128,"name":"ProxyOptions","url":"classes/proxyoptions.html","classes":"tsd-kind-class"},{"id":941,"kind":512,"name":"constructor","url":"classes/proxyoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ProxyOptions"},{"id":942,"kind":2048,"name":"getHost","url":"classes/proxyoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":943,"kind":2048,"name":"setHost","url":"classes/proxyoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":944,"kind":2048,"name":"getPassword","url":"classes/proxyoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":945,"kind":2048,"name":"setPassword","url":"classes/proxyoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":946,"kind":2048,"name":"getPort","url":"classes/proxyoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":947,"kind":2048,"name":"setPort","url":"classes/proxyoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":948,"kind":2048,"name":"getType","url":"classes/proxyoptions.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":949,"kind":2048,"name":"setType","url":"classes/proxyoptions.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":950,"kind":2048,"name":"getUsername","url":"classes/proxyoptions.html#getusername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":951,"kind":2048,"name":"setUsername","url":"classes/proxyoptions.html#setusername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":952,"kind":128,"name":"RequestOptions","url":"classes/requestoptions.html","classes":"tsd-kind-class"},{"id":953,"kind":512,"name":"constructor","url":"classes/requestoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"RequestOptions"},{"id":954,"kind":2048,"name":"addHeader","url":"classes/requestoptions.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":955,"kind":2048,"name":"getHost","url":"classes/requestoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":956,"kind":2048,"name":"setHost","url":"classes/requestoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":957,"kind":2048,"name":"getPort","url":"classes/requestoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":958,"kind":2048,"name":"setPort","url":"classes/requestoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":959,"kind":2048,"name":"isSsl","url":"classes/requestoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":960,"kind":2048,"name":"setSsl","url":"classes/requestoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":961,"kind":2048,"name":"getURI","url":"classes/requestoptions.html#geturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":962,"kind":2048,"name":"setURI","url":"classes/requestoptions.html#seturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":963,"kind":128,"name":"StreamPriority","url":"classes/streampriority.html","classes":"tsd-kind-class"},{"id":964,"kind":512,"name":"constructor","url":"classes/streampriority.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"StreamPriority"},{"id":965,"kind":2048,"name":"getDependency","url":"classes/streampriority.html#getdependency","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":966,"kind":2048,"name":"setDependency","url":"classes/streampriority.html#setdependency","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":967,"kind":2048,"name":"isExclusive","url":"classes/streampriority.html#isexclusive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":968,"kind":2048,"name":"setExclusive","url":"classes/streampriority.html#setexclusive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":969,"kind":2048,"name":"getWeight","url":"classes/streampriority.html#getweight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":970,"kind":2048,"name":"setWeight","url":"classes/streampriority.html#setweight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":971,"kind":128,"name":"TCPSSLOptions","url":"classes/tcpssloptions.html","classes":"tsd-kind-class"},{"id":972,"kind":512,"name":"constructor","url":"classes/tcpssloptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":973,"kind":2048,"name":"getCrlPaths","url":"classes/tcpssloptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":974,"kind":2048,"name":"addCrlPath","url":"classes/tcpssloptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":975,"kind":2048,"name":"getCrlValues","url":"classes/tcpssloptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":976,"kind":2048,"name":"addCrlValue","url":"classes/tcpssloptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":977,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/tcpssloptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":978,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/tcpssloptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":979,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/tcpssloptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":980,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/tcpssloptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":981,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/tcpssloptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":982,"kind":2048,"name":"getIdleTimeout","url":"classes/tcpssloptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":983,"kind":2048,"name":"setIdleTimeout","url":"classes/tcpssloptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":984,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/tcpssloptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":985,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/tcpssloptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":986,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/tcpssloptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":987,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/tcpssloptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":988,"kind":2048,"name":"getKeyStoreOptions","url":"classes/tcpssloptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":989,"kind":2048,"name":"setKeyStoreOptions","url":"classes/tcpssloptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":990,"kind":2048,"name":"getLogActivity","url":"classes/tcpssloptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":991,"kind":2048,"name":"setLogActivity","url":"classes/tcpssloptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":992,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/tcpssloptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":993,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/tcpssloptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":994,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/tcpssloptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":995,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/tcpssloptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":996,"kind":2048,"name":"getPemTrustOptions","url":"classes/tcpssloptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":997,"kind":2048,"name":"setPemTrustOptions","url":"classes/tcpssloptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":998,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/tcpssloptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":999,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/tcpssloptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1000,"kind":2048,"name":"getPfxTrustOptions","url":"classes/tcpssloptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1001,"kind":2048,"name":"setPfxTrustOptions","url":"classes/tcpssloptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1002,"kind":2048,"name":"getReceiveBufferSize","url":"classes/tcpssloptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1003,"kind":2048,"name":"setReceiveBufferSize","url":"classes/tcpssloptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1004,"kind":2048,"name":"isReuseAddress","url":"classes/tcpssloptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1005,"kind":2048,"name":"setReuseAddress","url":"classes/tcpssloptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1006,"kind":2048,"name":"isReusePort","url":"classes/tcpssloptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1007,"kind":2048,"name":"setReusePort","url":"classes/tcpssloptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1008,"kind":2048,"name":"getSendBufferSize","url":"classes/tcpssloptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1009,"kind":2048,"name":"setSendBufferSize","url":"classes/tcpssloptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1010,"kind":2048,"name":"getSoLinger","url":"classes/tcpssloptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1011,"kind":2048,"name":"setSoLinger","url":"classes/tcpssloptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1012,"kind":2048,"name":"isSsl","url":"classes/tcpssloptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1013,"kind":2048,"name":"setSsl","url":"classes/tcpssloptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1014,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/tcpssloptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1015,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/tcpssloptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1016,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/tcpssloptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1017,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/tcpssloptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1018,"kind":2048,"name":"isTcpCork","url":"classes/tcpssloptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1019,"kind":2048,"name":"setTcpCork","url":"classes/tcpssloptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1020,"kind":2048,"name":"isTcpFastOpen","url":"classes/tcpssloptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1021,"kind":2048,"name":"setTcpFastOpen","url":"classes/tcpssloptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1022,"kind":2048,"name":"isTcpKeepAlive","url":"classes/tcpssloptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1023,"kind":2048,"name":"setTcpKeepAlive","url":"classes/tcpssloptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1024,"kind":2048,"name":"isTcpNoDelay","url":"classes/tcpssloptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1025,"kind":2048,"name":"setTcpNoDelay","url":"classes/tcpssloptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1026,"kind":2048,"name":"isTcpQuickAck","url":"classes/tcpssloptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1027,"kind":2048,"name":"setTcpQuickAck","url":"classes/tcpssloptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1028,"kind":2048,"name":"getTrafficClass","url":"classes/tcpssloptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1029,"kind":2048,"name":"setTrafficClass","url":"classes/tcpssloptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1030,"kind":2048,"name":"getTrustStoreOptions","url":"classes/tcpssloptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1031,"kind":2048,"name":"setTrustStoreOptions","url":"classes/tcpssloptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1032,"kind":2048,"name":"isUseAlpn","url":"classes/tcpssloptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1033,"kind":2048,"name":"setUseAlpn","url":"classes/tcpssloptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1034,"kind":2048,"name":"isUsePooledBuffers","url":"classes/tcpssloptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1035,"kind":2048,"name":"setUsePooledBuffers","url":"classes/tcpssloptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1036,"kind":128,"name":"VertxOptions","url":"classes/vertxoptions.html","classes":"tsd-kind-class"},{"id":1037,"kind":512,"name":"constructor","url":"classes/vertxoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"VertxOptions"},{"id":1038,"kind":2048,"name":"getAddressResolverOptions","url":"classes/vertxoptions.html#getaddressresolveroptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1039,"kind":2048,"name":"setAddressResolverOptions","url":"classes/vertxoptions.html#setaddressresolveroptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1040,"kind":2048,"name":"getBlockedThreadCheckInterval","url":"classes/vertxoptions.html#getblockedthreadcheckinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1041,"kind":2048,"name":"setBlockedThreadCheckInterval","url":"classes/vertxoptions.html#setblockedthreadcheckinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1042,"kind":2048,"name":"getBlockedThreadCheckIntervalUnit","url":"classes/vertxoptions.html#getblockedthreadcheckintervalunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1043,"kind":2048,"name":"setBlockedThreadCheckIntervalUnit","url":"classes/vertxoptions.html#setblockedthreadcheckintervalunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1044,"kind":2048,"name":"getClusterHost","url":"classes/vertxoptions.html#getclusterhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1045,"kind":2048,"name":"setClusterHost","url":"classes/vertxoptions.html#setclusterhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1046,"kind":2048,"name":"getClusterPingInterval","url":"classes/vertxoptions.html#getclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1047,"kind":2048,"name":"setClusterPingInterval","url":"classes/vertxoptions.html#setclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1048,"kind":2048,"name":"getClusterPingReplyInterval","url":"classes/vertxoptions.html#getclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1049,"kind":2048,"name":"setClusterPingReplyInterval","url":"classes/vertxoptions.html#setclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1050,"kind":2048,"name":"getClusterPort","url":"classes/vertxoptions.html#getclusterport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1051,"kind":2048,"name":"setClusterPort","url":"classes/vertxoptions.html#setclusterport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1052,"kind":2048,"name":"getClusterPublicHost","url":"classes/vertxoptions.html#getclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1053,"kind":2048,"name":"setClusterPublicHost","url":"classes/vertxoptions.html#setclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1054,"kind":2048,"name":"getClusterPublicPort","url":"classes/vertxoptions.html#getclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1055,"kind":2048,"name":"setClusterPublicPort","url":"classes/vertxoptions.html#setclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1056,"kind":2048,"name":"isClustered","url":"classes/vertxoptions.html#isclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1057,"kind":2048,"name":"setClustered","url":"classes/vertxoptions.html#setclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1058,"kind":2048,"name":"getEventBusOptions","url":"classes/vertxoptions.html#geteventbusoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1059,"kind":2048,"name":"setEventBusOptions","url":"classes/vertxoptions.html#seteventbusoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1060,"kind":2048,"name":"getEventLoopPoolSize","url":"classes/vertxoptions.html#geteventlooppoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1061,"kind":2048,"name":"setEventLoopPoolSize","url":"classes/vertxoptions.html#seteventlooppoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1062,"kind":2048,"name":"isFileResolverCachingEnabled","url":"classes/vertxoptions.html#isfileresolvercachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1063,"kind":2048,"name":"setFileResolverCachingEnabled","url":"classes/vertxoptions.html#setfileresolvercachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1064,"kind":2048,"name":"getFileSystemOptions","url":"classes/vertxoptions.html#getfilesystemoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1065,"kind":2048,"name":"setFileSystemOptions","url":"classes/vertxoptions.html#setfilesystemoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1066,"kind":2048,"name":"isHAEnabled","url":"classes/vertxoptions.html#ishaenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1067,"kind":2048,"name":"setHAEnabled","url":"classes/vertxoptions.html#sethaenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1068,"kind":2048,"name":"getHAGroup","url":"classes/vertxoptions.html#gethagroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1069,"kind":2048,"name":"setHAGroup","url":"classes/vertxoptions.html#sethagroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1070,"kind":2048,"name":"getInternalBlockingPoolSize","url":"classes/vertxoptions.html#getinternalblockingpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1071,"kind":2048,"name":"setInternalBlockingPoolSize","url":"classes/vertxoptions.html#setinternalblockingpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1072,"kind":2048,"name":"getMaxEventLoopExecuteTime","url":"classes/vertxoptions.html#getmaxeventloopexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1073,"kind":2048,"name":"setMaxEventLoopExecuteTime","url":"classes/vertxoptions.html#setmaxeventloopexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1074,"kind":2048,"name":"getMaxEventLoopExecuteTimeUnit","url":"classes/vertxoptions.html#getmaxeventloopexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1075,"kind":2048,"name":"setMaxEventLoopExecuteTimeUnit","url":"classes/vertxoptions.html#setmaxeventloopexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1076,"kind":2048,"name":"getMaxWorkerExecuteTime","url":"classes/vertxoptions.html#getmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1077,"kind":2048,"name":"setMaxWorkerExecuteTime","url":"classes/vertxoptions.html#setmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1078,"kind":2048,"name":"getMaxWorkerExecuteTimeUnit","url":"classes/vertxoptions.html#getmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1079,"kind":2048,"name":"setMaxWorkerExecuteTimeUnit","url":"classes/vertxoptions.html#setmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1080,"kind":2048,"name":"getMetricsOptions","url":"classes/vertxoptions.html#getmetricsoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1081,"kind":2048,"name":"setMetricsOptions","url":"classes/vertxoptions.html#setmetricsoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1082,"kind":2048,"name":"getPreferNativeTransport","url":"classes/vertxoptions.html#getprefernativetransport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1083,"kind":2048,"name":"setPreferNativeTransport","url":"classes/vertxoptions.html#setprefernativetransport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1084,"kind":2048,"name":"getQuorumSize","url":"classes/vertxoptions.html#getquorumsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1085,"kind":2048,"name":"setQuorumSize","url":"classes/vertxoptions.html#setquorumsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1086,"kind":2048,"name":"getWarningExceptionTime","url":"classes/vertxoptions.html#getwarningexceptiontime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1087,"kind":2048,"name":"setWarningExceptionTime","url":"classes/vertxoptions.html#setwarningexceptiontime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1088,"kind":2048,"name":"getWarningExceptionTimeUnit","url":"classes/vertxoptions.html#getwarningexceptiontimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1089,"kind":2048,"name":"setWarningExceptionTimeUnit","url":"classes/vertxoptions.html#setwarningexceptiontimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1090,"kind":2048,"name":"getWorkerPoolSize","url":"classes/vertxoptions.html#getworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1091,"kind":2048,"name":"setWorkerPoolSize","url":"classes/vertxoptions.html#setworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1092,"kind":128,"name":"WebSocketConnectOptions","url":"classes/websocketconnectoptions.html","classes":"tsd-kind-class"},{"id":1093,"kind":512,"name":"constructor","url":"classes/websocketconnectoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1094,"kind":2048,"name":"addHeader","url":"classes/websocketconnectoptions.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1095,"kind":2048,"name":"getHost","url":"classes/websocketconnectoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1096,"kind":2048,"name":"setHost","url":"classes/websocketconnectoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1097,"kind":2048,"name":"getPort","url":"classes/websocketconnectoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1098,"kind":2048,"name":"setPort","url":"classes/websocketconnectoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1099,"kind":2048,"name":"isSsl","url":"classes/websocketconnectoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1100,"kind":2048,"name":"setSsl","url":"classes/websocketconnectoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1101,"kind":2048,"name":"getSubProtocols","url":"classes/websocketconnectoptions.html#getsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1102,"kind":2048,"name":"setSubProtocols","url":"classes/websocketconnectoptions.html#setsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1103,"kind":2048,"name":"addSubProtocol","url":"classes/websocketconnectoptions.html#addsubprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1104,"kind":2048,"name":"getURI","url":"classes/websocketconnectoptions.html#geturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1105,"kind":2048,"name":"setURI","url":"classes/websocketconnectoptions.html#seturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1106,"kind":2048,"name":"getVersion","url":"classes/websocketconnectoptions.html#getversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1107,"kind":2048,"name":"setVersion","url":"classes/websocketconnectoptions.html#setversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1108,"kind":256,"name":"Handler","url":"interfaces/handler.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":1109,"kind":2048,"name":"handle","url":"interfaces/handler.html#handle","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Handler"},{"id":1110,"kind":256,"name":"AsyncResult","url":"interfaces/asyncresult.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":1111,"kind":2048,"name":"succeeded","url":"interfaces/asyncresult.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1112,"kind":2048,"name":"failed","url":"interfaces/asyncresult.html#failed","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1113,"kind":2048,"name":"cause","url":"interfaces/asyncresult.html#cause","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1114,"kind":2048,"name":"result","url":"interfaces/asyncresult.html#result","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1115,"kind":128,"name":"AsyncFile","url":"classes/asyncfile.html","classes":"tsd-kind-class"},{"id":1116,"kind":2048,"name":"end","url":"classes/asyncfile.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1117,"kind":2048,"name":"writeQueueFull","url":"classes/asyncfile.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1118,"kind":2048,"name":"pipe","url":"classes/asyncfile.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1119,"kind":2048,"name":"pipeTo","url":"classes/asyncfile.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1120,"kind":2048,"name":"handler","url":"classes/asyncfile.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1121,"kind":2048,"name":"pause","url":"classes/asyncfile.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1122,"kind":2048,"name":"resume","url":"classes/asyncfile.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1123,"kind":2048,"name":"endHandler","url":"classes/asyncfile.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1124,"kind":2048,"name":"write","url":"classes/asyncfile.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1125,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/asyncfile.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1126,"kind":2048,"name":"drainHandler","url":"classes/asyncfile.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1127,"kind":2048,"name":"exceptionHandler","url":"classes/asyncfile.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1128,"kind":2048,"name":"fetch","url":"classes/asyncfile.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1129,"kind":2048,"name":"close","url":"classes/asyncfile.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1130,"kind":2048,"name":"read","url":"classes/asyncfile.html#read","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1131,"kind":2048,"name":"flush","url":"classes/asyncfile.html#flush","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1132,"kind":2048,"name":"setReadPos","url":"classes/asyncfile.html#setreadpos","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1133,"kind":2048,"name":"setReadLength","url":"classes/asyncfile.html#setreadlength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1134,"kind":2048,"name":"setWritePos","url":"classes/asyncfile.html#setwritepos","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1135,"kind":2048,"name":"getWritePos","url":"classes/asyncfile.html#getwritepos","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1136,"kind":2048,"name":"setReadBufferSize","url":"classes/asyncfile.html#setreadbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1137,"kind":128,"name":"AsyncMap","url":"classes/asyncmap.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1138,"kind":2048,"name":"get","url":"classes/asyncmap.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1139,"kind":2048,"name":"put","url":"classes/asyncmap.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1140,"kind":2048,"name":"putIfAbsent","url":"classes/asyncmap.html#putifabsent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1141,"kind":2048,"name":"remove","url":"classes/asyncmap.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1142,"kind":2048,"name":"removeIfPresent","url":"classes/asyncmap.html#removeifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1143,"kind":2048,"name":"replace","url":"classes/asyncmap.html#replace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1144,"kind":2048,"name":"replaceIfPresent","url":"classes/asyncmap.html#replaceifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1145,"kind":2048,"name":"clear","url":"classes/asyncmap.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1146,"kind":2048,"name":"size","url":"classes/asyncmap.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1147,"kind":128,"name":"Buffer","url":"classes/buffer.html","classes":"tsd-kind-class"},{"id":1148,"kind":2048,"name":"buffer","url":"classes/buffer.html#buffer-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Buffer"},{"id":1149,"kind":2048,"name":"toString","url":"classes/buffer.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1150,"kind":2048,"name":"toJsonObject","url":"classes/buffer.html#tojsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1151,"kind":2048,"name":"toJsonArray","url":"classes/buffer.html#tojsonarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1152,"kind":2048,"name":"toJson","url":"classes/buffer.html#tojson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1153,"kind":2048,"name":"getByte","url":"classes/buffer.html#getbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1154,"kind":2048,"name":"getUnsignedByte","url":"classes/buffer.html#getunsignedbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1155,"kind":2048,"name":"getInt","url":"classes/buffer.html#getint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1156,"kind":2048,"name":"getIntLE","url":"classes/buffer.html#getintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1157,"kind":2048,"name":"getUnsignedInt","url":"classes/buffer.html#getunsignedint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1158,"kind":2048,"name":"getUnsignedIntLE","url":"classes/buffer.html#getunsignedintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1159,"kind":2048,"name":"getLong","url":"classes/buffer.html#getlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1160,"kind":2048,"name":"getLongLE","url":"classes/buffer.html#getlongle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1161,"kind":2048,"name":"getDouble","url":"classes/buffer.html#getdouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1162,"kind":2048,"name":"getFloat","url":"classes/buffer.html#getfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1163,"kind":2048,"name":"getShort","url":"classes/buffer.html#getshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1164,"kind":2048,"name":"getShortLE","url":"classes/buffer.html#getshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1165,"kind":2048,"name":"getUnsignedShort","url":"classes/buffer.html#getunsignedshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1166,"kind":2048,"name":"getUnsignedShortLE","url":"classes/buffer.html#getunsignedshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1167,"kind":2048,"name":"getMedium","url":"classes/buffer.html#getmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1168,"kind":2048,"name":"getMediumLE","url":"classes/buffer.html#getmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1169,"kind":2048,"name":"getUnsignedMedium","url":"classes/buffer.html#getunsignedmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1170,"kind":2048,"name":"getUnsignedMediumLE","url":"classes/buffer.html#getunsignedmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1171,"kind":2048,"name":"getBuffer","url":"classes/buffer.html#getbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1172,"kind":2048,"name":"getString","url":"classes/buffer.html#getstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1173,"kind":2048,"name":"appendBuffer","url":"classes/buffer.html#appendbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1174,"kind":2048,"name":"appendByte","url":"classes/buffer.html#appendbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1175,"kind":2048,"name":"appendUnsignedByte","url":"classes/buffer.html#appendunsignedbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1176,"kind":2048,"name":"appendInt","url":"classes/buffer.html#appendint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1177,"kind":2048,"name":"appendIntLE","url":"classes/buffer.html#appendintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1178,"kind":2048,"name":"appendUnsignedInt","url":"classes/buffer.html#appendunsignedint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1179,"kind":2048,"name":"appendUnsignedIntLE","url":"classes/buffer.html#appendunsignedintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1180,"kind":2048,"name":"appendMedium","url":"classes/buffer.html#appendmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1181,"kind":2048,"name":"appendMediumLE","url":"classes/buffer.html#appendmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1182,"kind":2048,"name":"appendLong","url":"classes/buffer.html#appendlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1183,"kind":2048,"name":"appendLongLE","url":"classes/buffer.html#appendlongle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1184,"kind":2048,"name":"appendShort","url":"classes/buffer.html#appendshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1185,"kind":2048,"name":"appendShortLE","url":"classes/buffer.html#appendshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1186,"kind":2048,"name":"appendUnsignedShort","url":"classes/buffer.html#appendunsignedshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1187,"kind":2048,"name":"appendUnsignedShortLE","url":"classes/buffer.html#appendunsignedshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1188,"kind":2048,"name":"appendFloat","url":"classes/buffer.html#appendfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1189,"kind":2048,"name":"appendDouble","url":"classes/buffer.html#appenddouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1190,"kind":2048,"name":"appendString","url":"classes/buffer.html#appendstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1191,"kind":2048,"name":"setByte","url":"classes/buffer.html#setbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1192,"kind":2048,"name":"setUnsignedByte","url":"classes/buffer.html#setunsignedbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1193,"kind":2048,"name":"setInt","url":"classes/buffer.html#setint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1194,"kind":2048,"name":"setIntLE","url":"classes/buffer.html#setintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1195,"kind":2048,"name":"setUnsignedInt","url":"classes/buffer.html#setunsignedint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1196,"kind":2048,"name":"setUnsignedIntLE","url":"classes/buffer.html#setunsignedintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1197,"kind":2048,"name":"setMedium","url":"classes/buffer.html#setmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1198,"kind":2048,"name":"setMediumLE","url":"classes/buffer.html#setmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1199,"kind":2048,"name":"setLong","url":"classes/buffer.html#setlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1200,"kind":2048,"name":"setLongLE","url":"classes/buffer.html#setlongle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1201,"kind":2048,"name":"setDouble","url":"classes/buffer.html#setdouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1202,"kind":2048,"name":"setFloat","url":"classes/buffer.html#setfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1203,"kind":2048,"name":"setShort","url":"classes/buffer.html#setshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1204,"kind":2048,"name":"setShortLE","url":"classes/buffer.html#setshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1205,"kind":2048,"name":"setUnsignedShort","url":"classes/buffer.html#setunsignedshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1206,"kind":2048,"name":"setUnsignedShortLE","url":"classes/buffer.html#setunsignedshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1207,"kind":2048,"name":"setBuffer","url":"classes/buffer.html#setbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1208,"kind":2048,"name":"setString","url":"classes/buffer.html#setstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1209,"kind":2048,"name":"length","url":"classes/buffer.html#length","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1210,"kind":2048,"name":"copy","url":"classes/buffer.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1211,"kind":2048,"name":"slice","url":"classes/buffer.html#slice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1212,"kind":2048,"name":"getBytes","url":"classes/buffer.html#getbytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1213,"kind":2048,"name":"appendBytes","url":"classes/buffer.html#appendbytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1214,"kind":2048,"name":"setBytes","url":"classes/buffer.html#setbytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1215,"kind":2048,"name":"getByteBuf","url":"classes/buffer.html#getbytebuf","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1216,"kind":128,"name":"CLI","url":"classes/cli.html","classes":"tsd-kind-class"},{"id":1217,"kind":2048,"name":"create","url":"classes/cli.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CLI"},{"id":1218,"kind":2048,"name":"parse","url":"classes/cli.html#parse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1219,"kind":2048,"name":"getName","url":"classes/cli.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1220,"kind":2048,"name":"setName","url":"classes/cli.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1221,"kind":2048,"name":"getDescription","url":"classes/cli.html#getdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1222,"kind":2048,"name":"setDescription","url":"classes/cli.html#setdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1223,"kind":2048,"name":"getSummary","url":"classes/cli.html#getsummary","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1224,"kind":2048,"name":"setSummary","url":"classes/cli.html#setsummary","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1225,"kind":2048,"name":"isHidden","url":"classes/cli.html#ishidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1226,"kind":2048,"name":"setHidden","url":"classes/cli.html#sethidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1227,"kind":2048,"name":"getOptions","url":"classes/cli.html#getoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1228,"kind":2048,"name":"addOption","url":"classes/cli.html#addoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1229,"kind":2048,"name":"addOptions","url":"classes/cli.html#addoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1230,"kind":2048,"name":"setOptions","url":"classes/cli.html#setoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1231,"kind":2048,"name":"getArguments","url":"classes/cli.html#getarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1232,"kind":2048,"name":"addArgument","url":"classes/cli.html#addargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1233,"kind":2048,"name":"addArguments","url":"classes/cli.html#addarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1234,"kind":2048,"name":"setArguments","url":"classes/cli.html#setarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1235,"kind":2048,"name":"getOption","url":"classes/cli.html#getoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1236,"kind":2048,"name":"getArgument","url":"classes/cli.html#getargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1237,"kind":2048,"name":"removeOption","url":"classes/cli.html#removeoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1238,"kind":2048,"name":"removeArgument","url":"classes/cli.html#removeargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1239,"kind":2048,"name":"getPriority","url":"classes/cli.html#getpriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1240,"kind":2048,"name":"setPriority","url":"classes/cli.html#setpriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1241,"kind":128,"name":"CommandLine","url":"classes/commandline.html","classes":"tsd-kind-class"},{"id":1242,"kind":2048,"name":"create","url":"classes/commandline.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CommandLine"},{"id":1243,"kind":2048,"name":"cli","url":"classes/commandline.html#cli","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1244,"kind":2048,"name":"allArguments","url":"classes/commandline.html#allarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1245,"kind":2048,"name":"getOptionValue","url":"classes/commandline.html#getoptionvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CommandLine"},{"id":1246,"kind":2048,"name":"getArgumentValue","url":"classes/commandline.html#getargumentvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CommandLine"},{"id":1247,"kind":2048,"name":"isFlagEnabled","url":"classes/commandline.html#isflagenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1248,"kind":2048,"name":"isOptionAssigned","url":"classes/commandline.html#isoptionassigned","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1249,"kind":2048,"name":"getRawValues","url":"classes/commandline.html#getrawvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1250,"kind":2048,"name":"getRawValuesForOption","url":"classes/commandline.html#getrawvaluesforoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1251,"kind":2048,"name":"getRawValuesForArgument","url":"classes/commandline.html#getrawvaluesforargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1252,"kind":2048,"name":"getRawValueForOption","url":"classes/commandline.html#getrawvalueforoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1253,"kind":2048,"name":"acceptMoreValues","url":"classes/commandline.html#acceptmorevalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1254,"kind":2048,"name":"getRawValueForArgument","url":"classes/commandline.html#getrawvalueforargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1255,"kind":2048,"name":"isArgumentAssigned","url":"classes/commandline.html#isargumentassigned","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1256,"kind":2048,"name":"isSeenInCommandLine","url":"classes/commandline.html#isseenincommandline","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1257,"kind":2048,"name":"isValid","url":"classes/commandline.html#isvalid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1258,"kind":2048,"name":"isAskingForHelp","url":"classes/commandline.html#isaskingforhelp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1259,"kind":128,"name":"CompositeFuture","url":"classes/compositefuture.html","classes":"tsd-kind-class"},{"id":1260,"kind":2048,"name":"complete","url":"classes/compositefuture.html#complete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1261,"kind":2048,"name":"tryComplete","url":"classes/compositefuture.html#trycomplete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1262,"kind":2048,"name":"result","url":"classes/compositefuture.html#result","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1263,"kind":2048,"name":"flatMap","url":"classes/compositefuture.html#flatmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"CompositeFuture"},{"id":1264,"kind":2048,"name":"compose","url":"classes/compositefuture.html#compose","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"CompositeFuture"},{"id":1265,"kind":2048,"name":"map","url":"classes/compositefuture.html#map","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"CompositeFuture"},{"id":1266,"kind":2048,"name":"completer","url":"classes/compositefuture.html#completer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1267,"kind":2048,"name":"recover","url":"classes/compositefuture.html#recover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1268,"kind":2048,"name":"otherwise","url":"classes/compositefuture.html#otherwise","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1269,"kind":2048,"name":"otherwiseEmpty","url":"classes/compositefuture.html#otherwiseempty","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1270,"kind":2048,"name":"all","url":"classes/compositefuture.html#all","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"CompositeFuture"},{"id":1271,"kind":2048,"name":"any","url":"classes/compositefuture.html#any","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"CompositeFuture"},{"id":1272,"kind":2048,"name":"join","url":"classes/compositefuture.html#join","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"CompositeFuture"},{"id":1273,"kind":2048,"name":"setHandler","url":"classes/compositefuture.html#sethandler","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1274,"kind":2048,"name":"onComplete","url":"classes/compositefuture.html#oncomplete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1275,"kind":2048,"name":"onSuccess","url":"classes/compositefuture.html#onsuccess","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1276,"kind":2048,"name":"onFailure","url":"classes/compositefuture.html#onfailure","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1277,"kind":2048,"name":"cause","url":"classes/compositefuture.html#cause","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1278,"kind":2048,"name":"succeeded","url":"classes/compositefuture.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1279,"kind":2048,"name":"failed","url":"classes/compositefuture.html#failed","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1280,"kind":2048,"name":"isComplete","url":"classes/compositefuture.html#iscomplete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1281,"kind":2048,"name":"resultAt","url":"classes/compositefuture.html#resultat","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CompositeFuture"},{"id":1282,"kind":2048,"name":"size","url":"classes/compositefuture.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CompositeFuture"},{"id":1283,"kind":2048,"name":"future","url":"classes/compositefuture.html#future","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static","parent":"CompositeFuture"},{"id":1284,"kind":2048,"name":"succeededFuture","url":"classes/compositefuture.html#succeededfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static","parent":"CompositeFuture"},{"id":1285,"kind":2048,"name":"failedFuture","url":"classes/compositefuture.html#failedfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static","parent":"CompositeFuture"},{"id":1286,"kind":2048,"name":"fail","url":"classes/compositefuture.html#fail","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"CompositeFuture"},{"id":1287,"kind":2048,"name":"tryFail","url":"classes/compositefuture.html#tryfail","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"CompositeFuture"},{"id":1288,"kind":2048,"name":"mapEmpty","url":"classes/compositefuture.html#mapempty","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"CompositeFuture"},{"id":1289,"kind":2048,"name":"then","url":"classes/compositefuture.html#then","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"CompositeFuture"},{"id":1290,"kind":128,"name":"Context","url":"classes/context.html","classes":"tsd-kind-class"},{"id":1291,"kind":2048,"name":"isOnWorkerThread","url":"classes/context.html#isonworkerthread","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Context"},{"id":1292,"kind":2048,"name":"isOnEventLoopThread","url":"classes/context.html#isoneventloopthread","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Context"},{"id":1293,"kind":2048,"name":"isOnVertxThread","url":"classes/context.html#isonvertxthread","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Context"},{"id":1294,"kind":2048,"name":"runOnContext","url":"classes/context.html#runoncontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1295,"kind":2048,"name":"executeBlocking","url":"classes/context.html#executeblocking","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Context"},{"id":1296,"kind":2048,"name":"deploymentID","url":"classes/context.html#deploymentid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1297,"kind":2048,"name":"config","url":"classes/context.html#config","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1298,"kind":2048,"name":"processArgs","url":"classes/context.html#processargs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1299,"kind":2048,"name":"isEventLoopContext","url":"classes/context.html#iseventloopcontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1300,"kind":2048,"name":"isWorkerContext","url":"classes/context.html#isworkercontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1301,"kind":2048,"name":"isMultiThreadedWorkerContext","url":"classes/context.html#ismultithreadedworkercontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1302,"kind":2048,"name":"get","url":"classes/context.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Context"},{"id":1303,"kind":2048,"name":"put","url":"classes/context.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1304,"kind":2048,"name":"remove","url":"classes/context.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1305,"kind":2048,"name":"owner","url":"classes/context.html#owner","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1306,"kind":2048,"name":"getInstanceCount","url":"classes/context.html#getinstancecount","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1307,"kind":2048,"name":"exceptionHandler","url":"classes/context.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1308,"kind":2048,"name":"addCloseHook","url":"classes/context.html#addclosehook","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1309,"kind":2048,"name":"removeCloseHook","url":"classes/context.html#removeclosehook","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1310,"kind":128,"name":"Cookie","url":"classes/cookie.html","classes":"tsd-kind-class"},{"id":1311,"kind":2048,"name":"cookie","url":"classes/cookie.html#cookie-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Cookie"},{"id":1312,"kind":2048,"name":"getName","url":"classes/cookie.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1313,"kind":2048,"name":"getValue","url":"classes/cookie.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1314,"kind":2048,"name":"setValue","url":"classes/cookie.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1315,"kind":2048,"name":"setDomain","url":"classes/cookie.html#setdomain","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1316,"kind":2048,"name":"getDomain","url":"classes/cookie.html#getdomain","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1317,"kind":2048,"name":"setPath","url":"classes/cookie.html#setpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1318,"kind":2048,"name":"getPath","url":"classes/cookie.html#getpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1319,"kind":2048,"name":"setMaxAge","url":"classes/cookie.html#setmaxage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1320,"kind":2048,"name":"setSecure","url":"classes/cookie.html#setsecure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1321,"kind":2048,"name":"isSecure","url":"classes/cookie.html#issecure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1322,"kind":2048,"name":"setHttpOnly","url":"classes/cookie.html#sethttponly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1323,"kind":2048,"name":"isHttpOnly","url":"classes/cookie.html#ishttponly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1324,"kind":2048,"name":"setSameSite","url":"classes/cookie.html#setsamesite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1325,"kind":2048,"name":"getSameSite","url":"classes/cookie.html#getsamesite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1326,"kind":2048,"name":"encode","url":"classes/cookie.html#encode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1327,"kind":128,"name":"Counter","url":"classes/counter.html","classes":"tsd-kind-class"},{"id":1328,"kind":2048,"name":"get","url":"classes/counter.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1329,"kind":2048,"name":"incrementAndGet","url":"classes/counter.html#incrementandget","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1330,"kind":2048,"name":"getAndIncrement","url":"classes/counter.html#getandincrement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1331,"kind":2048,"name":"decrementAndGet","url":"classes/counter.html#decrementandget","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1332,"kind":2048,"name":"addAndGet","url":"classes/counter.html#addandget","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1333,"kind":2048,"name":"getAndAdd","url":"classes/counter.html#getandadd","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1334,"kind":2048,"name":"compareAndSet","url":"classes/counter.html#compareandset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1335,"kind":128,"name":"DatagramPacket","url":"classes/datagrampacket.html","classes":"tsd-kind-class"},{"id":1336,"kind":2048,"name":"sender","url":"classes/datagrampacket.html#sender","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramPacket"},{"id":1337,"kind":2048,"name":"data","url":"classes/datagrampacket.html#data","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramPacket"},{"id":1338,"kind":128,"name":"DatagramSocket","url":"classes/datagramsocket.html","classes":"tsd-kind-class"},{"id":1339,"kind":2048,"name":"isMetricsEnabled","url":"classes/datagramsocket.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1340,"kind":2048,"name":"pipe","url":"classes/datagramsocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1341,"kind":2048,"name":"pipeTo","url":"classes/datagramsocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1342,"kind":2048,"name":"send","url":"classes/datagramsocket.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1343,"kind":2048,"name":"sender","url":"classes/datagramsocket.html#sender","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1344,"kind":2048,"name":"close","url":"classes/datagramsocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1345,"kind":2048,"name":"localAddress","url":"classes/datagramsocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1346,"kind":2048,"name":"listenMulticastGroup","url":"classes/datagramsocket.html#listenmulticastgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1347,"kind":2048,"name":"unlistenMulticastGroup","url":"classes/datagramsocket.html#unlistenmulticastgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1348,"kind":2048,"name":"blockMulticastGroup","url":"classes/datagramsocket.html#blockmulticastgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1349,"kind":2048,"name":"listen","url":"classes/datagramsocket.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1350,"kind":2048,"name":"pause","url":"classes/datagramsocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1351,"kind":2048,"name":"resume","url":"classes/datagramsocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1352,"kind":2048,"name":"fetch","url":"classes/datagramsocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1353,"kind":2048,"name":"endHandler","url":"classes/datagramsocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1354,"kind":2048,"name":"handler","url":"classes/datagramsocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1355,"kind":2048,"name":"exceptionHandler","url":"classes/datagramsocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1356,"kind":128,"name":"DeliveryContext","url":"classes/deliverycontext.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1357,"kind":2048,"name":"message","url":"classes/deliverycontext.html#message","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1358,"kind":2048,"name":"next","url":"classes/deliverycontext.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1359,"kind":2048,"name":"send","url":"classes/deliverycontext.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1360,"kind":2048,"name":"body","url":"classes/deliverycontext.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1361,"kind":128,"name":"DnsClient","url":"classes/dnsclient.html","classes":"tsd-kind-class"},{"id":1362,"kind":2048,"name":"lookup","url":"classes/dnsclient.html#lookup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1363,"kind":2048,"name":"lookup4","url":"classes/dnsclient.html#lookup4","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1364,"kind":2048,"name":"lookup6","url":"classes/dnsclient.html#lookup6","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1365,"kind":2048,"name":"resolveA","url":"classes/dnsclient.html#resolvea","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1366,"kind":2048,"name":"resolveAAAA","url":"classes/dnsclient.html#resolveaaaa","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1367,"kind":2048,"name":"resolveCNAME","url":"classes/dnsclient.html#resolvecname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1368,"kind":2048,"name":"resolveMX","url":"classes/dnsclient.html#resolvemx","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1369,"kind":2048,"name":"resolveTXT","url":"classes/dnsclient.html#resolvetxt","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1370,"kind":2048,"name":"resolvePTR","url":"classes/dnsclient.html#resolveptr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1371,"kind":2048,"name":"resolveNS","url":"classes/dnsclient.html#resolvens","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1372,"kind":2048,"name":"resolveSRV","url":"classes/dnsclient.html#resolvesrv","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1373,"kind":2048,"name":"reverseLookup","url":"classes/dnsclient.html#reverselookup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1374,"kind":128,"name":"EventBus","url":"classes/eventbus.html","classes":"tsd-kind-class"},{"id":1375,"kind":2048,"name":"isMetricsEnabled","url":"classes/eventbus.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1376,"kind":2048,"name":"send","url":"classes/eventbus.html#send","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1377,"kind":2048,"name":"request","url":"classes/eventbus.html#request","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1378,"kind":2048,"name":"publish","url":"classes/eventbus.html#publish","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1379,"kind":2048,"name":"consumer","url":"classes/eventbus.html#consumer","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1380,"kind":2048,"name":"localConsumer","url":"classes/eventbus.html#localconsumer","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1381,"kind":2048,"name":"sender","url":"classes/eventbus.html#sender","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1382,"kind":2048,"name":"publisher","url":"classes/eventbus.html#publisher","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1383,"kind":2048,"name":"addOutboundInterceptor","url":"classes/eventbus.html#addoutboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1384,"kind":2048,"name":"removeOutboundInterceptor","url":"classes/eventbus.html#removeoutboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1385,"kind":2048,"name":"addInboundInterceptor","url":"classes/eventbus.html#addinboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1386,"kind":2048,"name":"removeInboundInterceptor","url":"classes/eventbus.html#removeinboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1387,"kind":2048,"name":"registerCodec","url":"classes/eventbus.html#registercodec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1388,"kind":2048,"name":"unregisterCodec","url":"classes/eventbus.html#unregistercodec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1389,"kind":128,"name":"FileProps","url":"classes/fileprops.html","classes":"tsd-kind-class"},{"id":1390,"kind":2048,"name":"creationTime","url":"classes/fileprops.html#creationtime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1391,"kind":2048,"name":"lastAccessTime","url":"classes/fileprops.html#lastaccesstime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1392,"kind":2048,"name":"lastModifiedTime","url":"classes/fileprops.html#lastmodifiedtime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1393,"kind":2048,"name":"isDirectory","url":"classes/fileprops.html#isdirectory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1394,"kind":2048,"name":"isOther","url":"classes/fileprops.html#isother","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1395,"kind":2048,"name":"isRegularFile","url":"classes/fileprops.html#isregularfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1396,"kind":2048,"name":"isSymbolicLink","url":"classes/fileprops.html#issymboliclink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1397,"kind":2048,"name":"size","url":"classes/fileprops.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1398,"kind":128,"name":"FileSystem","url":"classes/filesystem.html","classes":"tsd-kind-class"},{"id":1399,"kind":2048,"name":"copy","url":"classes/filesystem.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1400,"kind":2048,"name":"copyBlocking","url":"classes/filesystem.html#copyblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1401,"kind":2048,"name":"copyRecursive","url":"classes/filesystem.html#copyrecursive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1402,"kind":2048,"name":"copyRecursiveBlocking","url":"classes/filesystem.html#copyrecursiveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1403,"kind":2048,"name":"move","url":"classes/filesystem.html#move","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1404,"kind":2048,"name":"moveBlocking","url":"classes/filesystem.html#moveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1405,"kind":2048,"name":"truncate","url":"classes/filesystem.html#truncate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1406,"kind":2048,"name":"truncateBlocking","url":"classes/filesystem.html#truncateblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1407,"kind":2048,"name":"chmod","url":"classes/filesystem.html#chmod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1408,"kind":2048,"name":"chmodBlocking","url":"classes/filesystem.html#chmodblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1409,"kind":2048,"name":"chmodRecursive","url":"classes/filesystem.html#chmodrecursive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1410,"kind":2048,"name":"chmodRecursiveBlocking","url":"classes/filesystem.html#chmodrecursiveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1411,"kind":2048,"name":"chown","url":"classes/filesystem.html#chown","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1412,"kind":2048,"name":"chownBlocking","url":"classes/filesystem.html#chownblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1413,"kind":2048,"name":"props","url":"classes/filesystem.html#props","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1414,"kind":2048,"name":"propsBlocking","url":"classes/filesystem.html#propsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1415,"kind":2048,"name":"lprops","url":"classes/filesystem.html#lprops","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1416,"kind":2048,"name":"lpropsBlocking","url":"classes/filesystem.html#lpropsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1417,"kind":2048,"name":"link","url":"classes/filesystem.html#link","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1418,"kind":2048,"name":"linkBlocking","url":"classes/filesystem.html#linkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1419,"kind":2048,"name":"symlink","url":"classes/filesystem.html#symlink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1420,"kind":2048,"name":"symlinkBlocking","url":"classes/filesystem.html#symlinkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1421,"kind":2048,"name":"unlink","url":"classes/filesystem.html#unlink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1422,"kind":2048,"name":"unlinkBlocking","url":"classes/filesystem.html#unlinkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1423,"kind":2048,"name":"readSymlink","url":"classes/filesystem.html#readsymlink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1424,"kind":2048,"name":"readSymlinkBlocking","url":"classes/filesystem.html#readsymlinkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1425,"kind":2048,"name":"delete","url":"classes/filesystem.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1426,"kind":2048,"name":"deleteBlocking","url":"classes/filesystem.html#deleteblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1427,"kind":2048,"name":"deleteRecursive","url":"classes/filesystem.html#deleterecursive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1428,"kind":2048,"name":"deleteRecursiveBlocking","url":"classes/filesystem.html#deleterecursiveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1429,"kind":2048,"name":"mkdir","url":"classes/filesystem.html#mkdir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1430,"kind":2048,"name":"mkdirBlocking","url":"classes/filesystem.html#mkdirblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1431,"kind":2048,"name":"mkdirs","url":"classes/filesystem.html#mkdirs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1432,"kind":2048,"name":"mkdirsBlocking","url":"classes/filesystem.html#mkdirsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1433,"kind":2048,"name":"readDir","url":"classes/filesystem.html#readdir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1434,"kind":2048,"name":"readDirBlocking","url":"classes/filesystem.html#readdirblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1435,"kind":2048,"name":"readFile","url":"classes/filesystem.html#readfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1436,"kind":2048,"name":"readFileBlocking","url":"classes/filesystem.html#readfileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1437,"kind":2048,"name":"writeFile","url":"classes/filesystem.html#writefile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1438,"kind":2048,"name":"writeFileBlocking","url":"classes/filesystem.html#writefileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1439,"kind":2048,"name":"open","url":"classes/filesystem.html#open","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1440,"kind":2048,"name":"openBlocking","url":"classes/filesystem.html#openblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1441,"kind":2048,"name":"createFile","url":"classes/filesystem.html#createfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1442,"kind":2048,"name":"createFileBlocking","url":"classes/filesystem.html#createfileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1443,"kind":2048,"name":"exists","url":"classes/filesystem.html#exists","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1444,"kind":2048,"name":"existsBlocking","url":"classes/filesystem.html#existsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1445,"kind":2048,"name":"fsProps","url":"classes/filesystem.html#fsprops","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1446,"kind":2048,"name":"fsPropsBlocking","url":"classes/filesystem.html#fspropsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1447,"kind":2048,"name":"createTempDirectory","url":"classes/filesystem.html#createtempdirectory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1448,"kind":2048,"name":"createTempDirectoryBlocking","url":"classes/filesystem.html#createtempdirectoryblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1449,"kind":2048,"name":"createTempFile","url":"classes/filesystem.html#createtempfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1450,"kind":2048,"name":"createTempFileBlocking","url":"classes/filesystem.html#createtempfileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1451,"kind":128,"name":"FileSystemProps","url":"classes/filesystemprops.html","classes":"tsd-kind-class"},{"id":1452,"kind":2048,"name":"totalSpace","url":"classes/filesystemprops.html#totalspace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemProps"},{"id":1453,"kind":2048,"name":"unallocatedSpace","url":"classes/filesystemprops.html#unallocatedspace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemProps"},{"id":1454,"kind":2048,"name":"usableSpace","url":"classes/filesystemprops.html#usablespace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemProps"},{"id":1455,"kind":128,"name":"Future","url":"classes/future.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1456,"kind":2048,"name":"future","url":"classes/future.html#future-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Future"},{"id":1457,"kind":2048,"name":"succeededFuture","url":"classes/future.html#succeededfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Future"},{"id":1458,"kind":2048,"name":"failedFuture","url":"classes/future.html#failedfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Future"},{"id":1459,"kind":2048,"name":"isComplete","url":"classes/future.html#iscomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1460,"kind":2048,"name":"setHandler","url":"classes/future.html#sethandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1461,"kind":2048,"name":"onComplete","url":"classes/future.html#oncomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1462,"kind":2048,"name":"onSuccess","url":"classes/future.html#onsuccess","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1463,"kind":2048,"name":"onFailure","url":"classes/future.html#onfailure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1464,"kind":2048,"name":"complete","url":"classes/future.html#complete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1465,"kind":2048,"name":"fail","url":"classes/future.html#fail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1466,"kind":2048,"name":"tryComplete","url":"classes/future.html#trycomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1467,"kind":2048,"name":"tryFail","url":"classes/future.html#tryfail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1468,"kind":2048,"name":"result","url":"classes/future.html#result","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1469,"kind":2048,"name":"cause","url":"classes/future.html#cause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1470,"kind":2048,"name":"succeeded","url":"classes/future.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1471,"kind":2048,"name":"failed","url":"classes/future.html#failed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1472,"kind":2048,"name":"flatMap","url":"classes/future.html#flatmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1473,"kind":2048,"name":"compose","url":"classes/future.html#compose","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1474,"kind":2048,"name":"map","url":"classes/future.html#map","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1475,"kind":2048,"name":"mapEmpty","url":"classes/future.html#mapempty","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1476,"kind":2048,"name":"completer","url":"classes/future.html#completer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1477,"kind":2048,"name":"recover","url":"classes/future.html#recover","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1478,"kind":2048,"name":"otherwise","url":"classes/future.html#otherwise","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1479,"kind":2048,"name":"otherwiseEmpty","url":"classes/future.html#otherwiseempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1480,"kind":2048,"name":"then","url":"classes/future.html#then","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1481,"kind":128,"name":"HttpClient","url":"classes/httpclient.html","classes":"tsd-kind-class"},{"id":1482,"kind":2048,"name":"isMetricsEnabled","url":"classes/httpclient.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1483,"kind":2048,"name":"request","url":"classes/httpclient.html#request","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1484,"kind":2048,"name":"requestAbs","url":"classes/httpclient.html#requestabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1485,"kind":2048,"name":"get","url":"classes/httpclient.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1486,"kind":2048,"name":"getAbs","url":"classes/httpclient.html#getabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1487,"kind":2048,"name":"getNow","url":"classes/httpclient.html#getnow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1488,"kind":2048,"name":"post","url":"classes/httpclient.html#post","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1489,"kind":2048,"name":"postAbs","url":"classes/httpclient.html#postabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1490,"kind":2048,"name":"head","url":"classes/httpclient.html#head","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1491,"kind":2048,"name":"headAbs","url":"classes/httpclient.html#headabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1492,"kind":2048,"name":"headNow","url":"classes/httpclient.html#headnow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1493,"kind":2048,"name":"options","url":"classes/httpclient.html#options","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1494,"kind":2048,"name":"optionsAbs","url":"classes/httpclient.html#optionsabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1495,"kind":2048,"name":"optionsNow","url":"classes/httpclient.html#optionsnow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1496,"kind":2048,"name":"put","url":"classes/httpclient.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1497,"kind":2048,"name":"putAbs","url":"classes/httpclient.html#putabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1498,"kind":2048,"name":"delete","url":"classes/httpclient.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1499,"kind":2048,"name":"deleteAbs","url":"classes/httpclient.html#deleteabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1500,"kind":2048,"name":"websocket","url":"classes/httpclient.html#websocket-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1501,"kind":2048,"name":"websocketAbs","url":"classes/httpclient.html#websocketabs-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1502,"kind":2048,"name":"webSocket","url":"classes/httpclient.html#websocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1503,"kind":2048,"name":"webSocketAbs","url":"classes/httpclient.html#websocketabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1504,"kind":2048,"name":"websocketStream","url":"classes/httpclient.html#websocketstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1505,"kind":2048,"name":"websocketStreamAbs","url":"classes/httpclient.html#websocketstreamabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1506,"kind":2048,"name":"connectionHandler","url":"classes/httpclient.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1507,"kind":2048,"name":"redirectHandler","url":"classes/httpclient.html#redirecthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1508,"kind":2048,"name":"close","url":"classes/httpclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1509,"kind":128,"name":"HttpClientRequest","url":"classes/httpclientrequest.html","classes":"tsd-kind-class"},{"id":1510,"kind":2048,"name":"writeQueueFull","url":"classes/httpclientrequest.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1511,"kind":2048,"name":"pipe","url":"classes/httpclientrequest.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1512,"kind":2048,"name":"pipeTo","url":"classes/httpclientrequest.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1513,"kind":2048,"name":"exceptionHandler","url":"classes/httpclientrequest.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1514,"kind":2048,"name":"write","url":"classes/httpclientrequest.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1515,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/httpclientrequest.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1516,"kind":2048,"name":"drainHandler","url":"classes/httpclientrequest.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1517,"kind":2048,"name":"handler","url":"classes/httpclientrequest.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1518,"kind":2048,"name":"pause","url":"classes/httpclientrequest.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1519,"kind":2048,"name":"resume","url":"classes/httpclientrequest.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1520,"kind":2048,"name":"fetch","url":"classes/httpclientrequest.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1521,"kind":2048,"name":"endHandler","url":"classes/httpclientrequest.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1522,"kind":2048,"name":"setFollowRedirects","url":"classes/httpclientrequest.html#setfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1523,"kind":2048,"name":"setMaxRedirects","url":"classes/httpclientrequest.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1524,"kind":2048,"name":"setChunked","url":"classes/httpclientrequest.html#setchunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1525,"kind":2048,"name":"isChunked","url":"classes/httpclientrequest.html#ischunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1526,"kind":2048,"name":"method","url":"classes/httpclientrequest.html#method","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1527,"kind":2048,"name":"getRawMethod","url":"classes/httpclientrequest.html#getrawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1528,"kind":2048,"name":"setRawMethod","url":"classes/httpclientrequest.html#setrawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1529,"kind":2048,"name":"absoluteURI","url":"classes/httpclientrequest.html#absoluteuri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1530,"kind":2048,"name":"uri","url":"classes/httpclientrequest.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1531,"kind":2048,"name":"path","url":"classes/httpclientrequest.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1532,"kind":2048,"name":"query","url":"classes/httpclientrequest.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1533,"kind":2048,"name":"setHost","url":"classes/httpclientrequest.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1534,"kind":2048,"name":"getHost","url":"classes/httpclientrequest.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1535,"kind":2048,"name":"headers","url":"classes/httpclientrequest.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1536,"kind":2048,"name":"putHeader","url":"classes/httpclientrequest.html#putheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1537,"kind":2048,"name":"continueHandler","url":"classes/httpclientrequest.html#continuehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1538,"kind":2048,"name":"sendHead","url":"classes/httpclientrequest.html#sendhead","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1539,"kind":2048,"name":"end","url":"classes/httpclientrequest.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1540,"kind":2048,"name":"setTimeout","url":"classes/httpclientrequest.html#settimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1541,"kind":2048,"name":"pushHandler","url":"classes/httpclientrequest.html#pushhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1542,"kind":2048,"name":"reset","url":"classes/httpclientrequest.html#reset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1543,"kind":2048,"name":"connection","url":"classes/httpclientrequest.html#connection","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1544,"kind":2048,"name":"connectionHandler","url":"classes/httpclientrequest.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1545,"kind":2048,"name":"writeCustomFrame","url":"classes/httpclientrequest.html#writecustomframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1546,"kind":2048,"name":"streamId","url":"classes/httpclientrequest.html#streamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1547,"kind":2048,"name":"setStreamPriority","url":"classes/httpclientrequest.html#setstreampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1548,"kind":2048,"name":"getStreamPriority","url":"classes/httpclientrequest.html#getstreampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1549,"kind":128,"name":"HttpClientResponse","url":"classes/httpclientresponse.html","classes":"tsd-kind-class"},{"id":1550,"kind":2048,"name":"pipe","url":"classes/httpclientresponse.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1551,"kind":2048,"name":"pipeTo","url":"classes/httpclientresponse.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1552,"kind":2048,"name":"fetch","url":"classes/httpclientresponse.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1553,"kind":2048,"name":"resume","url":"classes/httpclientresponse.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1554,"kind":2048,"name":"exceptionHandler","url":"classes/httpclientresponse.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1555,"kind":2048,"name":"handler","url":"classes/httpclientresponse.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1556,"kind":2048,"name":"pause","url":"classes/httpclientresponse.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1557,"kind":2048,"name":"endHandler","url":"classes/httpclientresponse.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1558,"kind":2048,"name":"version","url":"classes/httpclientresponse.html#version","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1559,"kind":2048,"name":"statusCode","url":"classes/httpclientresponse.html#statuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1560,"kind":2048,"name":"statusMessage","url":"classes/httpclientresponse.html#statusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1561,"kind":2048,"name":"headers","url":"classes/httpclientresponse.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1562,"kind":2048,"name":"getHeader","url":"classes/httpclientresponse.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1563,"kind":2048,"name":"getTrailer","url":"classes/httpclientresponse.html#gettrailer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1564,"kind":2048,"name":"trailers","url":"classes/httpclientresponse.html#trailers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1565,"kind":2048,"name":"cookies","url":"classes/httpclientresponse.html#cookies","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1566,"kind":2048,"name":"bodyHandler","url":"classes/httpclientresponse.html#bodyhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1567,"kind":2048,"name":"customFrameHandler","url":"classes/httpclientresponse.html#customframehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1568,"kind":2048,"name":"netSocket","url":"classes/httpclientresponse.html#netsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1569,"kind":2048,"name":"request","url":"classes/httpclientresponse.html#request","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1570,"kind":2048,"name":"streamPriorityHandler","url":"classes/httpclientresponse.html#streampriorityhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1571,"kind":128,"name":"HttpConnection","url":"classes/httpconnection.html","classes":"tsd-kind-class"},{"id":1572,"kind":2048,"name":"getWindowSize","url":"classes/httpconnection.html#getwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1573,"kind":2048,"name":"setWindowSize","url":"classes/httpconnection.html#setwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1574,"kind":2048,"name":"goAway","url":"classes/httpconnection.html#goaway","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1575,"kind":2048,"name":"goAwayHandler","url":"classes/httpconnection.html#goawayhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1576,"kind":2048,"name":"shutdownHandler","url":"classes/httpconnection.html#shutdownhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1577,"kind":2048,"name":"shutdown","url":"classes/httpconnection.html#shutdown","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1578,"kind":2048,"name":"closeHandler","url":"classes/httpconnection.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1579,"kind":2048,"name":"close","url":"classes/httpconnection.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1580,"kind":2048,"name":"settings","url":"classes/httpconnection.html#settings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1581,"kind":2048,"name":"updateSettings","url":"classes/httpconnection.html#updatesettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1582,"kind":2048,"name":"remoteSettings","url":"classes/httpconnection.html#remotesettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1583,"kind":2048,"name":"remoteSettingsHandler","url":"classes/httpconnection.html#remotesettingshandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1584,"kind":2048,"name":"ping","url":"classes/httpconnection.html#ping","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1585,"kind":2048,"name":"pingHandler","url":"classes/httpconnection.html#pinghandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1586,"kind":2048,"name":"exceptionHandler","url":"classes/httpconnection.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1587,"kind":2048,"name":"remoteAddress","url":"classes/httpconnection.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1588,"kind":2048,"name":"localAddress","url":"classes/httpconnection.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1589,"kind":2048,"name":"isSsl","url":"classes/httpconnection.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1590,"kind":2048,"name":"indicatedServerName","url":"classes/httpconnection.html#indicatedservername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1591,"kind":2048,"name":"sslSession","url":"classes/httpconnection.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1592,"kind":128,"name":"HttpFrame","url":"classes/httpframe.html","classes":"tsd-kind-class"},{"id":1593,"kind":2048,"name":"type","url":"classes/httpframe.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpFrame"},{"id":1594,"kind":2048,"name":"flags","url":"classes/httpframe.html#flags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpFrame"},{"id":1595,"kind":2048,"name":"payload","url":"classes/httpframe.html#payload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpFrame"},{"id":1596,"kind":128,"name":"HttpServer","url":"classes/httpserver.html","classes":"tsd-kind-class"},{"id":1597,"kind":2048,"name":"isMetricsEnabled","url":"classes/httpserver.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1598,"kind":2048,"name":"requestStream","url":"classes/httpserver.html#requeststream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1599,"kind":2048,"name":"requestHandler","url":"classes/httpserver.html#requesthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1600,"kind":2048,"name":"connectionHandler","url":"classes/httpserver.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1601,"kind":2048,"name":"exceptionHandler","url":"classes/httpserver.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1602,"kind":2048,"name":"websocketStream","url":"classes/httpserver.html#websocketstream-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1603,"kind":2048,"name":"webSocketStream","url":"classes/httpserver.html#websocketstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1604,"kind":2048,"name":"websocketHandler","url":"classes/httpserver.html#websockethandler-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1605,"kind":2048,"name":"webSocketHandler","url":"classes/httpserver.html#websockethandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1606,"kind":2048,"name":"listen","url":"classes/httpserver.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1607,"kind":2048,"name":"close","url":"classes/httpserver.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1608,"kind":2048,"name":"actualPort","url":"classes/httpserver.html#actualport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1609,"kind":128,"name":"HttpServerFileUpload","url":"classes/httpserverfileupload.html","classes":"tsd-kind-class"},{"id":1610,"kind":2048,"name":"pipe","url":"classes/httpserverfileupload.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1611,"kind":2048,"name":"pipeTo","url":"classes/httpserverfileupload.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1612,"kind":2048,"name":"exceptionHandler","url":"classes/httpserverfileupload.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1613,"kind":2048,"name":"handler","url":"classes/httpserverfileupload.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1614,"kind":2048,"name":"endHandler","url":"classes/httpserverfileupload.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1615,"kind":2048,"name":"pause","url":"classes/httpserverfileupload.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1616,"kind":2048,"name":"resume","url":"classes/httpserverfileupload.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1617,"kind":2048,"name":"fetch","url":"classes/httpserverfileupload.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1618,"kind":2048,"name":"streamToFileSystem","url":"classes/httpserverfileupload.html#streamtofilesystem","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1619,"kind":2048,"name":"filename","url":"classes/httpserverfileupload.html#filename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1620,"kind":2048,"name":"name","url":"classes/httpserverfileupload.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1621,"kind":2048,"name":"contentType","url":"classes/httpserverfileupload.html#contenttype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1622,"kind":2048,"name":"contentTransferEncoding","url":"classes/httpserverfileupload.html#contenttransferencoding","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1623,"kind":2048,"name":"charset","url":"classes/httpserverfileupload.html#charset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1624,"kind":2048,"name":"size","url":"classes/httpserverfileupload.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1625,"kind":2048,"name":"isSizeAvailable","url":"classes/httpserverfileupload.html#issizeavailable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1626,"kind":2048,"name":"file","url":"classes/httpserverfileupload.html#file","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1627,"kind":128,"name":"HttpServerRequest","url":"classes/httpserverrequest.html","classes":"tsd-kind-class"},{"id":1628,"kind":2048,"name":"pipe","url":"classes/httpserverrequest.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1629,"kind":2048,"name":"pipeTo","url":"classes/httpserverrequest.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1630,"kind":2048,"name":"exceptionHandler","url":"classes/httpserverrequest.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1631,"kind":2048,"name":"handler","url":"classes/httpserverrequest.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1632,"kind":2048,"name":"pause","url":"classes/httpserverrequest.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1633,"kind":2048,"name":"resume","url":"classes/httpserverrequest.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1634,"kind":2048,"name":"fetch","url":"classes/httpserverrequest.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1635,"kind":2048,"name":"endHandler","url":"classes/httpserverrequest.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1636,"kind":2048,"name":"version","url":"classes/httpserverrequest.html#version","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1637,"kind":2048,"name":"method","url":"classes/httpserverrequest.html#method","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1638,"kind":2048,"name":"rawMethod","url":"classes/httpserverrequest.html#rawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1639,"kind":2048,"name":"isSSL","url":"classes/httpserverrequest.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1640,"kind":2048,"name":"scheme","url":"classes/httpserverrequest.html#scheme","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1641,"kind":2048,"name":"uri","url":"classes/httpserverrequest.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1642,"kind":2048,"name":"path","url":"classes/httpserverrequest.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1643,"kind":2048,"name":"query","url":"classes/httpserverrequest.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1644,"kind":2048,"name":"host","url":"classes/httpserverrequest.html#host","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1645,"kind":2048,"name":"bytesRead","url":"classes/httpserverrequest.html#bytesread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1646,"kind":2048,"name":"response","url":"classes/httpserverrequest.html#response","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1647,"kind":2048,"name":"headers","url":"classes/httpserverrequest.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1648,"kind":2048,"name":"getHeader","url":"classes/httpserverrequest.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1649,"kind":2048,"name":"params","url":"classes/httpserverrequest.html#params","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1650,"kind":2048,"name":"getParam","url":"classes/httpserverrequest.html#getparam","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1651,"kind":2048,"name":"remoteAddress","url":"classes/httpserverrequest.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1652,"kind":2048,"name":"localAddress","url":"classes/httpserverrequest.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1653,"kind":2048,"name":"absoluteURI","url":"classes/httpserverrequest.html#absoluteuri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1654,"kind":2048,"name":"bodyHandler","url":"classes/httpserverrequest.html#bodyhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1655,"kind":2048,"name":"netSocket","url":"classes/httpserverrequest.html#netsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1656,"kind":2048,"name":"setExpectMultipart","url":"classes/httpserverrequest.html#setexpectmultipart","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1657,"kind":2048,"name":"isExpectMultipart","url":"classes/httpserverrequest.html#isexpectmultipart","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1658,"kind":2048,"name":"uploadHandler","url":"classes/httpserverrequest.html#uploadhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1659,"kind":2048,"name":"formAttributes","url":"classes/httpserverrequest.html#formattributes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1660,"kind":2048,"name":"getFormAttribute","url":"classes/httpserverrequest.html#getformattribute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1661,"kind":2048,"name":"upgrade","url":"classes/httpserverrequest.html#upgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1662,"kind":2048,"name":"isEnded","url":"classes/httpserverrequest.html#isended","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1663,"kind":2048,"name":"customFrameHandler","url":"classes/httpserverrequest.html#customframehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1664,"kind":2048,"name":"connection","url":"classes/httpserverrequest.html#connection","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1665,"kind":2048,"name":"streamPriority","url":"classes/httpserverrequest.html#streampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1666,"kind":2048,"name":"streamPriorityHandler","url":"classes/httpserverrequest.html#streampriorityhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1667,"kind":2048,"name":"getCookie","url":"classes/httpserverrequest.html#getcookie","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1668,"kind":2048,"name":"cookieCount","url":"classes/httpserverrequest.html#cookiecount","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1669,"kind":2048,"name":"sslSession","url":"classes/httpserverrequest.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1670,"kind":128,"name":"HttpServerResponse","url":"classes/httpserverresponse.html","classes":"tsd-kind-class"},{"id":1671,"kind":2048,"name":"end","url":"classes/httpserverresponse.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1672,"kind":2048,"name":"writeQueueFull","url":"classes/httpserverresponse.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1673,"kind":2048,"name":"exceptionHandler","url":"classes/httpserverresponse.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1674,"kind":2048,"name":"write","url":"classes/httpserverresponse.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1675,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/httpserverresponse.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1676,"kind":2048,"name":"drainHandler","url":"classes/httpserverresponse.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1677,"kind":2048,"name":"getStatusCode","url":"classes/httpserverresponse.html#getstatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1678,"kind":2048,"name":"setStatusCode","url":"classes/httpserverresponse.html#setstatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1679,"kind":2048,"name":"getStatusMessage","url":"classes/httpserverresponse.html#getstatusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1680,"kind":2048,"name":"setStatusMessage","url":"classes/httpserverresponse.html#setstatusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1681,"kind":2048,"name":"setChunked","url":"classes/httpserverresponse.html#setchunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1682,"kind":2048,"name":"isChunked","url":"classes/httpserverresponse.html#ischunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1683,"kind":2048,"name":"headers","url":"classes/httpserverresponse.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1684,"kind":2048,"name":"putHeader","url":"classes/httpserverresponse.html#putheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1685,"kind":2048,"name":"trailers","url":"classes/httpserverresponse.html#trailers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1686,"kind":2048,"name":"putTrailer","url":"classes/httpserverresponse.html#puttrailer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1687,"kind":2048,"name":"closeHandler","url":"classes/httpserverresponse.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1688,"kind":2048,"name":"endHandler","url":"classes/httpserverresponse.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1689,"kind":2048,"name":"writeContinue","url":"classes/httpserverresponse.html#writecontinue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1690,"kind":2048,"name":"sendFile","url":"classes/httpserverresponse.html#sendfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1691,"kind":2048,"name":"close","url":"classes/httpserverresponse.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1692,"kind":2048,"name":"ended","url":"classes/httpserverresponse.html#ended","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1693,"kind":2048,"name":"closed","url":"classes/httpserverresponse.html#closed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1694,"kind":2048,"name":"headWritten","url":"classes/httpserverresponse.html#headwritten","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1695,"kind":2048,"name":"headersEndHandler","url":"classes/httpserverresponse.html#headersendhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1696,"kind":2048,"name":"bodyEndHandler","url":"classes/httpserverresponse.html#bodyendhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1697,"kind":2048,"name":"bytesWritten","url":"classes/httpserverresponse.html#byteswritten","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1698,"kind":2048,"name":"streamId","url":"classes/httpserverresponse.html#streamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1699,"kind":2048,"name":"push","url":"classes/httpserverresponse.html#push","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1700,"kind":2048,"name":"reset","url":"classes/httpserverresponse.html#reset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1701,"kind":2048,"name":"writeCustomFrame","url":"classes/httpserverresponse.html#writecustomframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1702,"kind":2048,"name":"setStreamPriority","url":"classes/httpserverresponse.html#setstreampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1703,"kind":2048,"name":"addCookie","url":"classes/httpserverresponse.html#addcookie","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1704,"kind":2048,"name":"removeCookie","url":"classes/httpserverresponse.html#removecookie","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1705,"kind":128,"name":"JsonEvent","url":"classes/jsonevent.html","classes":"tsd-kind-class"},{"id":1706,"kind":2048,"name":"type","url":"classes/jsonevent.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1707,"kind":2048,"name":"fieldName","url":"classes/jsonevent.html#fieldname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1708,"kind":2048,"name":"value","url":"classes/jsonevent.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1709,"kind":2048,"name":"isNumber","url":"classes/jsonevent.html#isnumber","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1710,"kind":2048,"name":"integerValue","url":"classes/jsonevent.html#integervalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1711,"kind":2048,"name":"longValue","url":"classes/jsonevent.html#longvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1712,"kind":2048,"name":"floatValue","url":"classes/jsonevent.html#floatvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1713,"kind":2048,"name":"doubleValue","url":"classes/jsonevent.html#doublevalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1714,"kind":2048,"name":"isBoolean","url":"classes/jsonevent.html#isboolean","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1715,"kind":2048,"name":"booleanValue","url":"classes/jsonevent.html#booleanvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1716,"kind":2048,"name":"isString","url":"classes/jsonevent.html#isstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1717,"kind":2048,"name":"stringValue","url":"classes/jsonevent.html#stringvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1718,"kind":2048,"name":"binaryValue","url":"classes/jsonevent.html#binaryvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1719,"kind":2048,"name":"isNull","url":"classes/jsonevent.html#isnull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1720,"kind":2048,"name":"isObject","url":"classes/jsonevent.html#isobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1721,"kind":2048,"name":"objectValue","url":"classes/jsonevent.html#objectvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1722,"kind":2048,"name":"isArray","url":"classes/jsonevent.html#isarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1723,"kind":2048,"name":"arrayValue","url":"classes/jsonevent.html#arrayvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1724,"kind":2048,"name":"mapTo","url":"classes/jsonevent.html#mapto","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"JsonEvent"},{"id":1725,"kind":2048,"name":"instantValue","url":"classes/jsonevent.html#instantvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1726,"kind":128,"name":"JsonParser","url":"classes/jsonparser.html","classes":"tsd-kind-class"},{"id":1727,"kind":2048,"name":"handle","url":"classes/jsonparser.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1728,"kind":2048,"name":"pipe","url":"classes/jsonparser.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1729,"kind":2048,"name":"pipeTo","url":"classes/jsonparser.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1730,"kind":2048,"name":"newParser","url":"classes/jsonparser.html#newparser","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonParser"},{"id":1731,"kind":2048,"name":"write","url":"classes/jsonparser.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1732,"kind":2048,"name":"end","url":"classes/jsonparser.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1733,"kind":2048,"name":"objectEventMode","url":"classes/jsonparser.html#objecteventmode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1734,"kind":2048,"name":"objectValueMode","url":"classes/jsonparser.html#objectvaluemode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1735,"kind":2048,"name":"arrayEventMode","url":"classes/jsonparser.html#arrayeventmode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1736,"kind":2048,"name":"arrayValueMode","url":"classes/jsonparser.html#arrayvaluemode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1737,"kind":2048,"name":"pause","url":"classes/jsonparser.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1738,"kind":2048,"name":"resume","url":"classes/jsonparser.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1739,"kind":2048,"name":"fetch","url":"classes/jsonparser.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1740,"kind":2048,"name":"endHandler","url":"classes/jsonparser.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1741,"kind":2048,"name":"handler","url":"classes/jsonparser.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1742,"kind":2048,"name":"exceptionHandler","url":"classes/jsonparser.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1743,"kind":128,"name":"JsonPointer","url":"classes/jsonpointer.html","classes":"tsd-kind-class"},{"id":1744,"kind":2048,"name":"isRootPointer","url":"classes/jsonpointer.html#isrootpointer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1745,"kind":2048,"name":"isLocalPointer","url":"classes/jsonpointer.html#islocalpointer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1746,"kind":2048,"name":"isParent","url":"classes/jsonpointer.html#isparent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1747,"kind":2048,"name":"toString","url":"classes/jsonpointer.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1748,"kind":2048,"name":"append","url":"classes/jsonpointer.html#append","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1749,"kind":2048,"name":"parent","url":"classes/jsonpointer.html#parent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1750,"kind":2048,"name":"query","url":"classes/jsonpointer.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1751,"kind":2048,"name":"queryOrDefault","url":"classes/jsonpointer.html#queryordefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1752,"kind":2048,"name":"queryJson","url":"classes/jsonpointer.html#queryjson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1753,"kind":2048,"name":"queryJsonOrDefault","url":"classes/jsonpointer.html#queryjsonordefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1754,"kind":2048,"name":"tracedQuery","url":"classes/jsonpointer.html#tracedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1755,"kind":2048,"name":"write","url":"classes/jsonpointer.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1756,"kind":2048,"name":"writeJson","url":"classes/jsonpointer.html#writejson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1757,"kind":2048,"name":"copy","url":"classes/jsonpointer.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1758,"kind":2048,"name":"create","url":"classes/jsonpointer.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonPointer"},{"id":1759,"kind":2048,"name":"from","url":"classes/jsonpointer.html#from","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonPointer"},{"id":1760,"kind":2048,"name":"toURI","url":"classes/jsonpointer.html#touri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1761,"kind":2048,"name":"getURIWithoutFragment","url":"classes/jsonpointer.html#geturiwithoutfragment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1762,"kind":2048,"name":"fromURI","url":"classes/jsonpointer.html#fromuri","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonPointer"},{"id":1763,"kind":128,"name":"JsonPointerIterator","url":"classes/jsonpointeriterator.html","classes":"tsd-kind-class"},{"id":1764,"kind":1024,"name":"JSON_ITERATOR","url":"classes/jsonpointeriterator.html#json_iterator","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"JsonPointerIterator"},{"id":1765,"kind":2048,"name":"isObject","url":"classes/jsonpointeriterator.html#isobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1766,"kind":2048,"name":"isArray","url":"classes/jsonpointeriterator.html#isarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1767,"kind":2048,"name":"isNull","url":"classes/jsonpointeriterator.html#isnull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1768,"kind":2048,"name":"objectContainsKey","url":"classes/jsonpointeriterator.html#objectcontainskey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1769,"kind":2048,"name":"getObjectParameter","url":"classes/jsonpointeriterator.html#getobjectparameter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1770,"kind":2048,"name":"getArrayElement","url":"classes/jsonpointeriterator.html#getarrayelement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1771,"kind":2048,"name":"writeObjectParameter","url":"classes/jsonpointeriterator.html#writeobjectparameter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1772,"kind":2048,"name":"writeArrayElement","url":"classes/jsonpointeriterator.html#writearrayelement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1773,"kind":2048,"name":"appendArrayElement","url":"classes/jsonpointeriterator.html#appendarrayelement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1774,"kind":128,"name":"LocalMap","url":"classes/localmap.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1775,"kind":2048,"name":"get","url":"classes/localmap.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1776,"kind":2048,"name":"put","url":"classes/localmap.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1777,"kind":2048,"name":"remove","url":"classes/localmap.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1778,"kind":2048,"name":"clear","url":"classes/localmap.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1779,"kind":2048,"name":"size","url":"classes/localmap.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1780,"kind":2048,"name":"isEmpty","url":"classes/localmap.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1781,"kind":2048,"name":"putIfAbsent","url":"classes/localmap.html#putifabsent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1782,"kind":2048,"name":"removeIfPresent","url":"classes/localmap.html#removeifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1783,"kind":2048,"name":"replaceIfPresent","url":"classes/localmap.html#replaceifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1784,"kind":2048,"name":"replace","url":"classes/localmap.html#replace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1785,"kind":2048,"name":"close","url":"classes/localmap.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1786,"kind":2048,"name":"containsKey","url":"classes/localmap.html#containskey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1787,"kind":2048,"name":"containsValue","url":"classes/localmap.html#containsvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1788,"kind":2048,"name":"getOrDefault","url":"classes/localmap.html#getordefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1789,"kind":128,"name":"Lock","url":"classes/lock.html","classes":"tsd-kind-class"},{"id":1790,"kind":2048,"name":"release","url":"classes/lock.html#release","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Lock"},{"id":1791,"kind":256,"name":"Measured","url":"interfaces/measured.html","classes":"tsd-kind-interface"},{"id":1792,"kind":2048,"name":"isMetricsEnabled","url":"interfaces/measured.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Measured"},{"id":1793,"kind":128,"name":"Message","url":"classes/message.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1794,"kind":2048,"name":"address","url":"classes/message.html#address","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1795,"kind":2048,"name":"headers","url":"classes/message.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1796,"kind":2048,"name":"body","url":"classes/message.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1797,"kind":2048,"name":"replyAddress","url":"classes/message.html#replyaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1798,"kind":2048,"name":"isSend","url":"classes/message.html#issend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1799,"kind":2048,"name":"reply","url":"classes/message.html#reply","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Message"},{"id":1800,"kind":2048,"name":"replyAndRequest","url":"classes/message.html#replyandrequest","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Message"},{"id":1801,"kind":2048,"name":"fail","url":"classes/message.html#fail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1802,"kind":128,"name":"MessageConsumer","url":"classes/messageconsumer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1803,"kind":2048,"name":"pipe","url":"classes/messageconsumer.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1804,"kind":2048,"name":"pipeTo","url":"classes/messageconsumer.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1805,"kind":2048,"name":"exceptionHandler","url":"classes/messageconsumer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1806,"kind":2048,"name":"handler","url":"classes/messageconsumer.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1807,"kind":2048,"name":"pause","url":"classes/messageconsumer.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1808,"kind":2048,"name":"resume","url":"classes/messageconsumer.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1809,"kind":2048,"name":"fetch","url":"classes/messageconsumer.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1810,"kind":2048,"name":"endHandler","url":"classes/messageconsumer.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1811,"kind":2048,"name":"bodyStream","url":"classes/messageconsumer.html#bodystream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1812,"kind":2048,"name":"isRegistered","url":"classes/messageconsumer.html#isregistered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1813,"kind":2048,"name":"address","url":"classes/messageconsumer.html#address","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1814,"kind":2048,"name":"setMaxBufferedMessages","url":"classes/messageconsumer.html#setmaxbufferedmessages","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1815,"kind":2048,"name":"getMaxBufferedMessages","url":"classes/messageconsumer.html#getmaxbufferedmessages","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1816,"kind":2048,"name":"completionHandler","url":"classes/messageconsumer.html#completionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1817,"kind":2048,"name":"unregister","url":"classes/messageconsumer.html#unregister","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1818,"kind":128,"name":"MessageProducer","url":"classes/messageproducer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1819,"kind":1024,"name":"DEFAULT_WRITE_QUEUE_MAX_SIZE","url":"classes/messageproducer.html#default_write_queue_max_size","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"MessageProducer"},{"id":1820,"kind":2048,"name":"end","url":"classes/messageproducer.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1821,"kind":2048,"name":"writeQueueFull","url":"classes/messageproducer.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1822,"kind":2048,"name":"send","url":"classes/messageproducer.html#send","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"MessageProducer"},{"id":1823,"kind":2048,"name":"exceptionHandler","url":"classes/messageproducer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1824,"kind":2048,"name":"write","url":"classes/messageproducer.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1825,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/messageproducer.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1826,"kind":2048,"name":"drainHandler","url":"classes/messageproducer.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1827,"kind":2048,"name":"deliveryOptions","url":"classes/messageproducer.html#deliveryoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1828,"kind":2048,"name":"address","url":"classes/messageproducer.html#address","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1829,"kind":2048,"name":"close","url":"classes/messageproducer.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1830,"kind":128,"name":"MultiMap","url":"classes/multimap.html","classes":"tsd-kind-class"},{"id":1831,"kind":2048,"name":"caseInsensitiveMultiMap","url":"classes/multimap.html#caseinsensitivemultimap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MultiMap"},{"id":1832,"kind":2048,"name":"get","url":"classes/multimap.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1833,"kind":2048,"name":"getAll","url":"classes/multimap.html#getall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1834,"kind":2048,"name":"contains","url":"classes/multimap.html#contains","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1835,"kind":2048,"name":"isEmpty","url":"classes/multimap.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1836,"kind":2048,"name":"names","url":"classes/multimap.html#names","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1837,"kind":2048,"name":"add","url":"classes/multimap.html#add","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1838,"kind":2048,"name":"addAll","url":"classes/multimap.html#addall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1839,"kind":2048,"name":"set","url":"classes/multimap.html#set","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1840,"kind":2048,"name":"setAll","url":"classes/multimap.html#setall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1841,"kind":2048,"name":"remove","url":"classes/multimap.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1842,"kind":2048,"name":"clear","url":"classes/multimap.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1843,"kind":2048,"name":"size","url":"classes/multimap.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1844,"kind":2048,"name":"entries","url":"classes/multimap.html#entries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1845,"kind":128,"name":"MxRecord","url":"classes/mxrecord.html","classes":"tsd-kind-class"},{"id":1846,"kind":2048,"name":"priority","url":"classes/mxrecord.html#priority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MxRecord"},{"id":1847,"kind":2048,"name":"name","url":"classes/mxrecord.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MxRecord"},{"id":1848,"kind":128,"name":"NetClient","url":"classes/netclient.html","classes":"tsd-kind-class"},{"id":1849,"kind":2048,"name":"isMetricsEnabled","url":"classes/netclient.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClient"},{"id":1850,"kind":2048,"name":"connect","url":"classes/netclient.html#connect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClient"},{"id":1851,"kind":2048,"name":"close","url":"classes/netclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClient"},{"id":1852,"kind":128,"name":"NetServer","url":"classes/netserver.html","classes":"tsd-kind-class"},{"id":1853,"kind":2048,"name":"isMetricsEnabled","url":"classes/netserver.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1854,"kind":2048,"name":"connectStream","url":"classes/netserver.html#connectstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1855,"kind":2048,"name":"connectHandler","url":"classes/netserver.html#connecthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1856,"kind":2048,"name":"listen","url":"classes/netserver.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1857,"kind":2048,"name":"close","url":"classes/netserver.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1858,"kind":2048,"name":"actualPort","url":"classes/netserver.html#actualport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1859,"kind":128,"name":"NetSocket","url":"classes/netsocket.html","classes":"tsd-kind-class"},{"id":1860,"kind":2048,"name":"end","url":"classes/netsocket.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1861,"kind":2048,"name":"writeQueueFull","url":"classes/netsocket.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1862,"kind":2048,"name":"pipe","url":"classes/netsocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1863,"kind":2048,"name":"pipeTo","url":"classes/netsocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1864,"kind":2048,"name":"exceptionHandler","url":"classes/netsocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1865,"kind":2048,"name":"handler","url":"classes/netsocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1866,"kind":2048,"name":"pause","url":"classes/netsocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1867,"kind":2048,"name":"resume","url":"classes/netsocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1868,"kind":2048,"name":"fetch","url":"classes/netsocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1869,"kind":2048,"name":"endHandler","url":"classes/netsocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1870,"kind":2048,"name":"write","url":"classes/netsocket.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1871,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/netsocket.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1872,"kind":2048,"name":"drainHandler","url":"classes/netsocket.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1873,"kind":2048,"name":"writeHandlerID","url":"classes/netsocket.html#writehandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1874,"kind":2048,"name":"sendFile","url":"classes/netsocket.html#sendfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1875,"kind":2048,"name":"remoteAddress","url":"classes/netsocket.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1876,"kind":2048,"name":"localAddress","url":"classes/netsocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1877,"kind":2048,"name":"close","url":"classes/netsocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1878,"kind":2048,"name":"closeHandler","url":"classes/netsocket.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1879,"kind":2048,"name":"upgradeToSsl","url":"classes/netsocket.html#upgradetossl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1880,"kind":2048,"name":"isSsl","url":"classes/netsocket.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1881,"kind":2048,"name":"indicatedServerName","url":"classes/netsocket.html#indicatedservername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1882,"kind":2048,"name":"sslSession","url":"classes/netsocket.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1883,"kind":128,"name":"Pipe","url":"classes/pipe.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1884,"kind":2048,"name":"endOnFailure","url":"classes/pipe.html#endonfailure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1885,"kind":2048,"name":"endOnSuccess","url":"classes/pipe.html#endonsuccess","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1886,"kind":2048,"name":"endOnComplete","url":"classes/pipe.html#endoncomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1887,"kind":2048,"name":"to","url":"classes/pipe.html#to","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1888,"kind":2048,"name":"close","url":"classes/pipe.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1889,"kind":128,"name":"Promise","url":"classes/promise.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1890,"kind":2048,"name":"promise","url":"classes/promise.html#promise-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Promise"},{"id":1891,"kind":2048,"name":"complete","url":"classes/promise.html#complete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1892,"kind":2048,"name":"fail","url":"classes/promise.html#fail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1893,"kind":2048,"name":"tryComplete","url":"classes/promise.html#trycomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1894,"kind":2048,"name":"tryFail","url":"classes/promise.html#tryfail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1895,"kind":2048,"name":"future","url":"classes/promise.html#future","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1896,"kind":128,"name":"Pump","url":"classes/pump.html","classes":"tsd-kind-class"},{"id":1897,"kind":2048,"name":"pump","url":"classes/pump.html#pump-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Pump"},{"id":1898,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/pump.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1899,"kind":2048,"name":"start","url":"classes/pump.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1900,"kind":2048,"name":"stop","url":"classes/pump.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1901,"kind":2048,"name":"numberPumped","url":"classes/pump.html#numberpumped","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1902,"kind":256,"name":"ReadStream","url":"interfaces/readstream.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":1903,"kind":2048,"name":"exceptionHandler","url":"interfaces/readstream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"ReadStream"},{"id":1904,"kind":2048,"name":"handler","url":"interfaces/readstream.html#handler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1905,"kind":2048,"name":"pause","url":"interfaces/readstream.html#pause","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1906,"kind":2048,"name":"resume","url":"interfaces/readstream.html#resume","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1907,"kind":2048,"name":"fetch","url":"interfaces/readstream.html#fetch","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1908,"kind":2048,"name":"endHandler","url":"interfaces/readstream.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1909,"kind":2048,"name":"pipe","url":"interfaces/readstream.html#pipe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1910,"kind":2048,"name":"pipeTo","url":"interfaces/readstream.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1911,"kind":128,"name":"RecordParser","url":"classes/recordparser.html","classes":"tsd-kind-class"},{"id":1912,"kind":2048,"name":"pipe","url":"classes/recordparser.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1913,"kind":2048,"name":"pipeTo","url":"classes/recordparser.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1914,"kind":2048,"name":"setOutput","url":"classes/recordparser.html#setoutput","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1915,"kind":2048,"name":"newDelimited","url":"classes/recordparser.html#newdelimited","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"RecordParser"},{"id":1916,"kind":2048,"name":"newFixed","url":"classes/recordparser.html#newfixed","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"RecordParser"},{"id":1917,"kind":2048,"name":"delimitedMode","url":"classes/recordparser.html#delimitedmode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1918,"kind":2048,"name":"fixedSizeMode","url":"classes/recordparser.html#fixedsizemode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1919,"kind":2048,"name":"maxRecordSize","url":"classes/recordparser.html#maxrecordsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1920,"kind":2048,"name":"handle","url":"classes/recordparser.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1921,"kind":2048,"name":"exceptionHandler","url":"classes/recordparser.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1922,"kind":2048,"name":"handler","url":"classes/recordparser.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1923,"kind":2048,"name":"pause","url":"classes/recordparser.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1924,"kind":2048,"name":"fetch","url":"classes/recordparser.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1925,"kind":2048,"name":"resume","url":"classes/recordparser.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1926,"kind":2048,"name":"endHandler","url":"classes/recordparser.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1927,"kind":128,"name":"SelfSignedCertificate","url":"classes/selfsignedcertificate.html","classes":"tsd-kind-class"},{"id":1928,"kind":2048,"name":"keyCertOptions","url":"classes/selfsignedcertificate.html#keycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1929,"kind":2048,"name":"trustOptions","url":"classes/selfsignedcertificate.html#trustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1930,"kind":2048,"name":"privateKeyPath","url":"classes/selfsignedcertificate.html#privatekeypath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1931,"kind":2048,"name":"certificatePath","url":"classes/selfsignedcertificate.html#certificatepath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1932,"kind":2048,"name":"delete","url":"classes/selfsignedcertificate.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1933,"kind":2048,"name":"create","url":"classes/selfsignedcertificate.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SelfSignedCertificate"},{"id":1934,"kind":128,"name":"ServerWebSocket","url":"classes/serverwebsocket.html","classes":"tsd-kind-class"},{"id":1935,"kind":2048,"name":"end","url":"classes/serverwebsocket.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1936,"kind":2048,"name":"writeQueueFull","url":"classes/serverwebsocket.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1937,"kind":2048,"name":"pipe","url":"classes/serverwebsocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1938,"kind":2048,"name":"pipeTo","url":"classes/serverwebsocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1939,"kind":2048,"name":"binaryHandlerID","url":"classes/serverwebsocket.html#binaryhandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1940,"kind":2048,"name":"textHandlerID","url":"classes/serverwebsocket.html#texthandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1941,"kind":2048,"name":"subProtocol","url":"classes/serverwebsocket.html#subprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1942,"kind":2048,"name":"closeStatusCode","url":"classes/serverwebsocket.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1943,"kind":2048,"name":"closeReason","url":"classes/serverwebsocket.html#closereason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1944,"kind":2048,"name":"headers","url":"classes/serverwebsocket.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1945,"kind":2048,"name":"writePing","url":"classes/serverwebsocket.html#writeping","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1946,"kind":2048,"name":"writePong","url":"classes/serverwebsocket.html#writepong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1947,"kind":2048,"name":"textMessageHandler","url":"classes/serverwebsocket.html#textmessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1948,"kind":2048,"name":"binaryMessageHandler","url":"classes/serverwebsocket.html#binarymessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1949,"kind":2048,"name":"pongHandler","url":"classes/serverwebsocket.html#ponghandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1950,"kind":2048,"name":"close","url":"classes/serverwebsocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1951,"kind":2048,"name":"remoteAddress","url":"classes/serverwebsocket.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1952,"kind":2048,"name":"localAddress","url":"classes/serverwebsocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1953,"kind":2048,"name":"isSsl","url":"classes/serverwebsocket.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1954,"kind":2048,"name":"isClosed","url":"classes/serverwebsocket.html#isclosed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1955,"kind":2048,"name":"exceptionHandler","url":"classes/serverwebsocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1956,"kind":2048,"name":"handler","url":"classes/serverwebsocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1957,"kind":2048,"name":"pause","url":"classes/serverwebsocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1958,"kind":2048,"name":"resume","url":"classes/serverwebsocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1959,"kind":2048,"name":"fetch","url":"classes/serverwebsocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1960,"kind":2048,"name":"endHandler","url":"classes/serverwebsocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1961,"kind":2048,"name":"write","url":"classes/serverwebsocket.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1962,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/serverwebsocket.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1963,"kind":2048,"name":"drainHandler","url":"classes/serverwebsocket.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1964,"kind":2048,"name":"writeFrame","url":"classes/serverwebsocket.html#writeframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1965,"kind":2048,"name":"writeFinalTextFrame","url":"classes/serverwebsocket.html#writefinaltextframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1966,"kind":2048,"name":"writeFinalBinaryFrame","url":"classes/serverwebsocket.html#writefinalbinaryframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1967,"kind":2048,"name":"writeBinaryMessage","url":"classes/serverwebsocket.html#writebinarymessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1968,"kind":2048,"name":"writeTextMessage","url":"classes/serverwebsocket.html#writetextmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1969,"kind":2048,"name":"closeHandler","url":"classes/serverwebsocket.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1970,"kind":2048,"name":"frameHandler","url":"classes/serverwebsocket.html#framehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1971,"kind":2048,"name":"uri","url":"classes/serverwebsocket.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1972,"kind":2048,"name":"path","url":"classes/serverwebsocket.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1973,"kind":2048,"name":"query","url":"classes/serverwebsocket.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1974,"kind":2048,"name":"accept","url":"classes/serverwebsocket.html#accept","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1975,"kind":2048,"name":"reject","url":"classes/serverwebsocket.html#reject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1976,"kind":2048,"name":"setHandshake","url":"classes/serverwebsocket.html#sethandshake","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1977,"kind":2048,"name":"sslSession","url":"classes/serverwebsocket.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1978,"kind":128,"name":"SharedData","url":"classes/shareddata.html","classes":"tsd-kind-class"},{"id":1979,"kind":2048,"name":"getClusterWideMap","url":"classes/shareddata.html#getclusterwidemap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1980,"kind":2048,"name":"getAsyncMap","url":"classes/shareddata.html#getasyncmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1981,"kind":2048,"name":"getLocalAsyncMap","url":"classes/shareddata.html#getlocalasyncmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1982,"kind":2048,"name":"getLock","url":"classes/shareddata.html#getlock","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1983,"kind":2048,"name":"getLockWithTimeout","url":"classes/shareddata.html#getlockwithtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1984,"kind":2048,"name":"getLocalLock","url":"classes/shareddata.html#getlocallock","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1985,"kind":2048,"name":"getLocalLockWithTimeout","url":"classes/shareddata.html#getlocallockwithtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1986,"kind":2048,"name":"getCounter","url":"classes/shareddata.html#getcounter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1987,"kind":2048,"name":"getLocalCounter","url":"classes/shareddata.html#getlocalcounter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1988,"kind":2048,"name":"getLocalMap","url":"classes/shareddata.html#getlocalmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1989,"kind":128,"name":"SocketAddress","url":"classes/socketaddress.html","classes":"tsd-kind-class"},{"id":1990,"kind":2048,"name":"inetSocketAddress","url":"classes/socketaddress.html#inetsocketaddress","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SocketAddress"},{"id":1991,"kind":2048,"name":"domainSocketAddress","url":"classes/socketaddress.html#domainsocketaddress","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SocketAddress"},{"id":1992,"kind":2048,"name":"host","url":"classes/socketaddress.html#host","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SocketAddress"},{"id":1993,"kind":2048,"name":"port","url":"classes/socketaddress.html#port","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SocketAddress"},{"id":1994,"kind":2048,"name":"path","url":"classes/socketaddress.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SocketAddress"},{"id":1995,"kind":128,"name":"SrvRecord","url":"classes/srvrecord.html","classes":"tsd-kind-class"},{"id":1996,"kind":2048,"name":"priority","url":"classes/srvrecord.html#priority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":1997,"kind":2048,"name":"weight","url":"classes/srvrecord.html#weight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":1998,"kind":2048,"name":"port","url":"classes/srvrecord.html#port","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":1999,"kind":2048,"name":"name","url":"classes/srvrecord.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2000,"kind":2048,"name":"protocol","url":"classes/srvrecord.html#protocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2001,"kind":2048,"name":"service","url":"classes/srvrecord.html#service","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2002,"kind":2048,"name":"target","url":"classes/srvrecord.html#target","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2003,"kind":256,"name":"StreamBase","url":"interfaces/streambase.html","classes":"tsd-kind-interface"},{"id":2004,"kind":2048,"name":"exceptionHandler","url":"interfaces/streambase.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"StreamBase"},{"id":2005,"kind":128,"name":"TimeoutStream","url":"classes/timeoutstream.html","classes":"tsd-kind-class"},{"id":2006,"kind":2048,"name":"pipe","url":"classes/timeoutstream.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2007,"kind":2048,"name":"pipeTo","url":"classes/timeoutstream.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2008,"kind":2048,"name":"exceptionHandler","url":"classes/timeoutstream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2009,"kind":2048,"name":"handler","url":"classes/timeoutstream.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2010,"kind":2048,"name":"pause","url":"classes/timeoutstream.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2011,"kind":2048,"name":"resume","url":"classes/timeoutstream.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2012,"kind":2048,"name":"fetch","url":"classes/timeoutstream.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2013,"kind":2048,"name":"endHandler","url":"classes/timeoutstream.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2014,"kind":2048,"name":"cancel","url":"classes/timeoutstream.html#cancel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2015,"kind":128,"name":"Vertx","url":"classes/vertx.html","classes":"tsd-kind-class"},{"id":2016,"kind":2048,"name":"isMetricsEnabled","url":"classes/vertx.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2017,"kind":2048,"name":"vertx","url":"classes/vertx.html#vertx-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Vertx"},{"id":2018,"kind":2048,"name":"clusteredVertx","url":"classes/vertx.html#clusteredvertx","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Vertx"},{"id":2019,"kind":2048,"name":"currentContext","url":"classes/vertx.html#currentcontext","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Vertx"},{"id":2020,"kind":2048,"name":"getOrCreateContext","url":"classes/vertx.html#getorcreatecontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2021,"kind":2048,"name":"createNetServer","url":"classes/vertx.html#createnetserver","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2022,"kind":2048,"name":"createNetClient","url":"classes/vertx.html#createnetclient","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2023,"kind":2048,"name":"createHttpServer","url":"classes/vertx.html#createhttpserver","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2024,"kind":2048,"name":"createHttpClient","url":"classes/vertx.html#createhttpclient","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2025,"kind":2048,"name":"createDatagramSocket","url":"classes/vertx.html#createdatagramsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2026,"kind":2048,"name":"fileSystem","url":"classes/vertx.html#filesystem","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2027,"kind":2048,"name":"eventBus","url":"classes/vertx.html#eventbus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2028,"kind":2048,"name":"createDnsClient","url":"classes/vertx.html#creatednsclient","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2029,"kind":2048,"name":"sharedData","url":"classes/vertx.html#shareddata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2030,"kind":2048,"name":"setTimer","url":"classes/vertx.html#settimer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2031,"kind":2048,"name":"timerStream","url":"classes/vertx.html#timerstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2032,"kind":2048,"name":"setPeriodic","url":"classes/vertx.html#setperiodic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2033,"kind":2048,"name":"periodicStream","url":"classes/vertx.html#periodicstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2034,"kind":2048,"name":"cancelTimer","url":"classes/vertx.html#canceltimer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2035,"kind":2048,"name":"runOnContext","url":"classes/vertx.html#runoncontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2036,"kind":2048,"name":"close","url":"classes/vertx.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2037,"kind":2048,"name":"deployVerticle","url":"classes/vertx.html#deployverticle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2038,"kind":2048,"name":"undeploy","url":"classes/vertx.html#undeploy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2039,"kind":2048,"name":"deploymentIDs","url":"classes/vertx.html#deploymentids","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2040,"kind":2048,"name":"isClustered","url":"classes/vertx.html#isclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2041,"kind":2048,"name":"executeBlocking","url":"classes/vertx.html#executeblocking","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Vertx"},{"id":2042,"kind":2048,"name":"createSharedWorkerExecutor","url":"classes/vertx.html#createsharedworkerexecutor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2043,"kind":2048,"name":"isNativeTransportEnabled","url":"classes/vertx.html#isnativetransportenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2044,"kind":2048,"name":"exceptionHandler","url":"classes/vertx.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2045,"kind":2048,"name":"registerVerticleFactory","url":"classes/vertx.html#registerverticlefactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2046,"kind":2048,"name":"unregisterVerticleFactory","url":"classes/vertx.html#unregisterverticlefactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2047,"kind":2048,"name":"verticleFactories","url":"classes/vertx.html#verticlefactories","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2048,"kind":2048,"name":"nettyEventLoopGroup","url":"classes/vertx.html#nettyeventloopgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2049,"kind":128,"name":"WebSocket","url":"classes/websocket.html","classes":"tsd-kind-class"},{"id":2050,"kind":2048,"name":"end","url":"classes/websocket.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2051,"kind":2048,"name":"writeQueueFull","url":"classes/websocket.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2052,"kind":2048,"name":"pipe","url":"classes/websocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2053,"kind":2048,"name":"pipeTo","url":"classes/websocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2054,"kind":2048,"name":"binaryHandlerID","url":"classes/websocket.html#binaryhandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2055,"kind":2048,"name":"textHandlerID","url":"classes/websocket.html#texthandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2056,"kind":2048,"name":"subProtocol","url":"classes/websocket.html#subprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2057,"kind":2048,"name":"closeStatusCode","url":"classes/websocket.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2058,"kind":2048,"name":"closeReason","url":"classes/websocket.html#closereason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2059,"kind":2048,"name":"headers","url":"classes/websocket.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2060,"kind":2048,"name":"writePing","url":"classes/websocket.html#writeping","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2061,"kind":2048,"name":"writePong","url":"classes/websocket.html#writepong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2062,"kind":2048,"name":"textMessageHandler","url":"classes/websocket.html#textmessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2063,"kind":2048,"name":"binaryMessageHandler","url":"classes/websocket.html#binarymessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2064,"kind":2048,"name":"pongHandler","url":"classes/websocket.html#ponghandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2065,"kind":2048,"name":"close","url":"classes/websocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2066,"kind":2048,"name":"remoteAddress","url":"classes/websocket.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2067,"kind":2048,"name":"localAddress","url":"classes/websocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2068,"kind":2048,"name":"isSsl","url":"classes/websocket.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2069,"kind":2048,"name":"isClosed","url":"classes/websocket.html#isclosed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2070,"kind":2048,"name":"exceptionHandler","url":"classes/websocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2071,"kind":2048,"name":"handler","url":"classes/websocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2072,"kind":2048,"name":"pause","url":"classes/websocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2073,"kind":2048,"name":"resume","url":"classes/websocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2074,"kind":2048,"name":"fetch","url":"classes/websocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2075,"kind":2048,"name":"endHandler","url":"classes/websocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2076,"kind":2048,"name":"write","url":"classes/websocket.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2077,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/websocket.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2078,"kind":2048,"name":"drainHandler","url":"classes/websocket.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2079,"kind":2048,"name":"writeFrame","url":"classes/websocket.html#writeframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2080,"kind":2048,"name":"writeFinalTextFrame","url":"classes/websocket.html#writefinaltextframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2081,"kind":2048,"name":"writeFinalBinaryFrame","url":"classes/websocket.html#writefinalbinaryframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2082,"kind":2048,"name":"writeBinaryMessage","url":"classes/websocket.html#writebinarymessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2083,"kind":2048,"name":"writeTextMessage","url":"classes/websocket.html#writetextmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2084,"kind":2048,"name":"closeHandler","url":"classes/websocket.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2085,"kind":2048,"name":"frameHandler","url":"classes/websocket.html#framehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2086,"kind":2048,"name":"sslSession","url":"classes/websocket.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2087,"kind":256,"name":"WebSocketBase","url":"interfaces/websocketbase.html","classes":"tsd-kind-interface"},{"id":2088,"kind":2048,"name":"end","url":"interfaces/websocketbase.html#end","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2089,"kind":2048,"name":"writeQueueFull","url":"interfaces/websocketbase.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2090,"kind":2048,"name":"pipe","url":"interfaces/websocketbase.html#pipe","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2091,"kind":2048,"name":"pipeTo","url":"interfaces/websocketbase.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2092,"kind":2048,"name":"exceptionHandler","url":"interfaces/websocketbase.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2093,"kind":2048,"name":"handler","url":"interfaces/websocketbase.html#handler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2094,"kind":2048,"name":"pause","url":"interfaces/websocketbase.html#pause","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2095,"kind":2048,"name":"resume","url":"interfaces/websocketbase.html#resume","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2096,"kind":2048,"name":"fetch","url":"interfaces/websocketbase.html#fetch","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2097,"kind":2048,"name":"endHandler","url":"interfaces/websocketbase.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2098,"kind":2048,"name":"write","url":"interfaces/websocketbase.html#write","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2099,"kind":2048,"name":"setWriteQueueMaxSize","url":"interfaces/websocketbase.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2100,"kind":2048,"name":"drainHandler","url":"interfaces/websocketbase.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2101,"kind":2048,"name":"binaryHandlerID","url":"interfaces/websocketbase.html#binaryhandlerid","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2102,"kind":2048,"name":"textHandlerID","url":"interfaces/websocketbase.html#texthandlerid","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2103,"kind":2048,"name":"subProtocol","url":"interfaces/websocketbase.html#subprotocol","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2104,"kind":2048,"name":"closeStatusCode","url":"interfaces/websocketbase.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2105,"kind":2048,"name":"closeReason","url":"interfaces/websocketbase.html#closereason","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2106,"kind":2048,"name":"headers","url":"interfaces/websocketbase.html#headers","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2107,"kind":2048,"name":"writeFrame","url":"interfaces/websocketbase.html#writeframe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2108,"kind":2048,"name":"writeFinalTextFrame","url":"interfaces/websocketbase.html#writefinaltextframe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2109,"kind":2048,"name":"writeFinalBinaryFrame","url":"interfaces/websocketbase.html#writefinalbinaryframe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2110,"kind":2048,"name":"writeBinaryMessage","url":"interfaces/websocketbase.html#writebinarymessage","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2111,"kind":2048,"name":"writeTextMessage","url":"interfaces/websocketbase.html#writetextmessage","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2112,"kind":2048,"name":"writePing","url":"interfaces/websocketbase.html#writeping","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2113,"kind":2048,"name":"writePong","url":"interfaces/websocketbase.html#writepong","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2114,"kind":2048,"name":"closeHandler","url":"interfaces/websocketbase.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2115,"kind":2048,"name":"frameHandler","url":"interfaces/websocketbase.html#framehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2116,"kind":2048,"name":"textMessageHandler","url":"interfaces/websocketbase.html#textmessagehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2117,"kind":2048,"name":"binaryMessageHandler","url":"interfaces/websocketbase.html#binarymessagehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2118,"kind":2048,"name":"pongHandler","url":"interfaces/websocketbase.html#ponghandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2119,"kind":2048,"name":"close","url":"interfaces/websocketbase.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2120,"kind":2048,"name":"remoteAddress","url":"interfaces/websocketbase.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2121,"kind":2048,"name":"localAddress","url":"interfaces/websocketbase.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2122,"kind":2048,"name":"isSsl","url":"interfaces/websocketbase.html#isssl","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2123,"kind":2048,"name":"isClosed","url":"interfaces/websocketbase.html#isclosed","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2124,"kind":2048,"name":"sslSession","url":"interfaces/websocketbase.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2125,"kind":128,"name":"WebSocketFrame","url":"classes/websocketframe.html","classes":"tsd-kind-class"},{"id":2126,"kind":2048,"name":"binaryFrame","url":"classes/websocketframe.html#binaryframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2127,"kind":2048,"name":"textFrame","url":"classes/websocketframe.html#textframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2128,"kind":2048,"name":"pingFrame","url":"classes/websocketframe.html#pingframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2129,"kind":2048,"name":"pongFrame","url":"classes/websocketframe.html#pongframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2130,"kind":2048,"name":"continuationFrame","url":"classes/websocketframe.html#continuationframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2131,"kind":2048,"name":"isText","url":"classes/websocketframe.html#istext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2132,"kind":2048,"name":"isBinary","url":"classes/websocketframe.html#isbinary","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2133,"kind":2048,"name":"isContinuation","url":"classes/websocketframe.html#iscontinuation","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2134,"kind":2048,"name":"isClose","url":"classes/websocketframe.html#isclose","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2135,"kind":2048,"name":"textData","url":"classes/websocketframe.html#textdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2136,"kind":2048,"name":"binaryData","url":"classes/websocketframe.html#binarydata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2137,"kind":2048,"name":"isFinal","url":"classes/websocketframe.html#isfinal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2138,"kind":2048,"name":"closeStatusCode","url":"classes/websocketframe.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2139,"kind":2048,"name":"closeReason","url":"classes/websocketframe.html#closereason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2140,"kind":128,"name":"WorkerExecutor","url":"classes/workerexecutor.html","classes":"tsd-kind-class"},{"id":2141,"kind":2048,"name":"isMetricsEnabled","url":"classes/workerexecutor.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WorkerExecutor"},{"id":2142,"kind":2048,"name":"executeBlocking","url":"classes/workerexecutor.html#executeblocking","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"WorkerExecutor"},{"id":2143,"kind":2048,"name":"close","url":"classes/workerexecutor.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WorkerExecutor"},{"id":2144,"kind":256,"name":"WriteStream","url":"interfaces/writestream.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":2145,"kind":2048,"name":"exceptionHandler","url":"interfaces/writestream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WriteStream"},{"id":2146,"kind":2048,"name":"write","url":"interfaces/writestream.html#write","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2147,"kind":2048,"name":"end","url":"interfaces/writestream.html#end","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2148,"kind":2048,"name":"setWriteQueueMaxSize","url":"interfaces/writestream.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2149,"kind":2048,"name":"writeQueueFull","url":"interfaces/writestream.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2150,"kind":2048,"name":"drainHandler","url":"interfaces/writestream.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,61.701]],["parent/0",[]],["name/1",[1,67.579]],["parent/1",[0,6.046]],["name/2",[2,61.701]],["parent/2",[0,6.046]],["name/3",[3,72.687]],["parent/3",[0,6.046]],["name/4",[4,61.701]],["parent/4",[]],["name/5",[1,67.579]],["parent/5",[4,6.046]],["name/6",[5,72.687]],["parent/6",[4,6.046]],["name/7",[6,72.687]],["parent/7",[4,6.046]],["name/8",[7,48.708]],["parent/8",[]],["name/9",[8,72.687]],["parent/9",[7,4.773]],["name/10",[9,72.687]],["parent/10",[7,4.773]],["name/11",[10,72.687]],["parent/11",[7,4.773]],["name/12",[11,72.687]],["parent/12",[7,4.773]],["name/13",[12,72.687]],["parent/13",[7,4.773]],["name/14",[13,72.687]],["parent/14",[7,4.773]],["name/15",[14,72.687]],["parent/15",[7,4.773]],["name/16",[15,72.687]],["parent/16",[7,4.773]],["name/17",[16,72.687]],["parent/17",[7,4.773]],["name/18",[17,72.687]],["parent/18",[7,4.773]],["name/19",[18,72.687]],["parent/19",[7,4.773]],["name/20",[19,72.687]],["parent/20",[7,4.773]],["name/21",[20,72.687]],["parent/21",[7,4.773]],["name/22",[21,72.687]],["parent/22",[7,4.773]],["name/23",[22,72.687]],["parent/23",[7,4.773]],["name/24",[23,52.318]],["parent/24",[]],["name/25",[24,67.579]],["parent/25",[23,5.126]],["name/26",[25,56.592]],["parent/26",[23,5.126]],["name/27",[26,67.579]],["parent/27",[23,5.126]],["name/28",[27,67.579]],["parent/28",[23,5.126]],["name/29",[28,59.694]],["parent/29",[23,5.126]],["name/30",[29,61.701]],["parent/30",[23,5.126]],["name/31",[30,72.687]],["parent/31",[23,5.126]],["name/32",[31,67.579]],["parent/32",[23,5.126]],["name/33",[32,72.687]],["parent/33",[23,5.126]],["name/34",[33,72.687]],["parent/34",[23,5.126]],["name/35",[34,61.701]],["parent/35",[]],["name/36",[35,72.687]],["parent/36",[34,6.046]],["name/37",[36,72.687]],["parent/37",[34,6.046]],["name/38",[37,72.687]],["parent/38",[34,6.046]],["name/39",[38,58.024]],["parent/39",[]],["name/40",[39,72.687]],["parent/40",[38,5.685]],["name/41",[40,72.687]],["parent/41",[38,5.685]],["name/42",[41,72.687]],["parent/42",[38,5.685]],["name/43",[42,72.687]],["parent/43",[38,5.685]],["name/44",[43,67.579]],["parent/44",[38,5.685]],["name/45",[44,61.701]],["parent/45",[]],["name/46",[45,72.687]],["parent/46",[44,6.046]],["name/47",[46,72.687]],["parent/47",[44,6.046]],["name/48",[47,72.687]],["parent/48",[44,6.046]],["name/49",[48,61.701]],["parent/49",[]],["name/50",[49,72.687]],["parent/50",[48,6.046]],["name/51",[50,72.687]],["parent/51",[48,6.046]],["name/52",[51,72.687]],["parent/52",[48,6.046]],["name/53",[52,59.694]],["parent/53",[]],["name/54",[53,72.687]],["parent/54",[52,5.849]],["name/55",[54,72.687]],["parent/55",[52,5.849]],["name/56",[55,72.687]],["parent/56",[52,5.849]],["name/57",[56,72.687]],["parent/57",[52,5.849]],["name/58",[57,42.564]],["parent/58",[]],["name/59",[58,41.929]],["parent/59",[57,4.171]],["name/60",[59,72.687]],["parent/60",[57,4.171]],["name/61",[60,72.687]],["parent/61",[57,4.171]],["name/62",[61,72.687]],["parent/62",[57,4.171]],["name/63",[62,72.687]],["parent/63",[57,4.171]],["name/64",[63,72.687]],["parent/64",[57,4.171]],["name/65",[64,72.687]],["parent/65",[57,4.171]],["name/66",[65,72.687]],["parent/66",[57,4.171]],["name/67",[66,72.687]],["parent/67",[57,4.171]],["name/68",[67,72.687]],["parent/68",[57,4.171]],["name/69",[68,72.687]],["parent/69",[57,4.171]],["name/70",[69,72.687]],["parent/70",[57,4.171]],["name/71",[70,72.687]],["parent/71",[57,4.171]],["name/72",[71,72.687]],["parent/72",[57,4.171]],["name/73",[72,72.687]],["parent/73",[57,4.171]],["name/74",[73,72.687]],["parent/74",[57,4.171]],["name/75",[74,72.687]],["parent/75",[57,4.171]],["name/76",[75,67.579]],["parent/76",[57,4.171]],["name/77",[76,67.579]],["parent/77",[57,4.171]],["name/78",[77,72.687]],["parent/78",[57,4.171]],["name/79",[78,72.687]],["parent/79",[57,4.171]],["name/80",[79,72.687]],["parent/80",[57,4.171]],["name/81",[80,72.687]],["parent/81",[57,4.171]],["name/82",[81,72.687]],["parent/82",[57,4.171]],["name/83",[82,72.687]],["parent/83",[57,4.171]],["name/84",[83,72.687]],["parent/84",[57,4.171]],["name/85",[84,72.687]],["parent/85",[57,4.171]],["name/86",[85,72.687]],["parent/86",[57,4.171]],["name/87",[86,72.687]],["parent/87",[57,4.171]],["name/88",[87,48.708]],["parent/88",[]],["name/89",[58,41.929]],["parent/89",[87,4.773]],["name/90",[88,67.579]],["parent/90",[87,4.773]],["name/91",[89,67.579]],["parent/91",[87,4.773]],["name/92",[90,67.579]],["parent/92",[87,4.773]],["name/93",[91,67.579]],["parent/93",[87,4.773]],["name/94",[92,64.214]],["parent/94",[87,4.773]],["name/95",[93,64.214]],["parent/95",[87,4.773]],["name/96",[94,64.214]],["parent/96",[87,4.773]],["name/97",[95,64.214]],["parent/97",[87,4.773]],["name/98",[96,72.687]],["parent/98",[87,4.773]],["name/99",[97,72.687]],["parent/99",[87,4.773]],["name/100",[98,67.579]],["parent/100",[87,4.773]],["name/101",[99,67.579]],["parent/101",[87,4.773]],["name/102",[100,67.579]],["parent/102",[87,4.773]],["name/103",[101,67.579]],["parent/103",[87,4.773]],["name/104",[102,33.5]],["parent/104",[]],["name/105",[58,41.929]],["parent/105",[102,3.282]],["name/106",[103,61.701]],["parent/106",[102,3.282]],["name/107",[104,61.701]],["parent/107",[102,3.282]],["name/108",[105,56.592]],["parent/108",[102,3.282]],["name/109",[106,56.592]],["parent/109",[102,3.282]],["name/110",[107,56.592]],["parent/110",[102,3.282]],["name/111",[108,56.592]],["parent/111",[102,3.282]],["name/112",[109,56.592]],["parent/112",[102,3.282]],["name/113",[110,56.592]],["parent/113",[102,3.282]],["name/114",[111,56.592]],["parent/114",[102,3.282]],["name/115",[112,56.592]],["parent/115",[102,3.282]],["name/116",[113,56.592]],["parent/116",[102,3.282]],["name/117",[114,56.592]],["parent/117",[102,3.282]],["name/118",[115,56.592]],["parent/118",[102,3.282]],["name/119",[116,56.592]],["parent/119",[102,3.282]],["name/120",[117,56.592]],["parent/120",[102,3.282]],["name/121",[118,56.592]],["parent/121",[102,3.282]],["name/122",[119,56.592]],["parent/122",[102,3.282]],["name/123",[120,56.592]],["parent/123",[102,3.282]],["name/124",[121,56.592]],["parent/124",[102,3.282]],["name/125",[122,64.214]],["parent/125",[102,3.282]],["name/126",[123,64.214]],["parent/126",[102,3.282]],["name/127",[124,53.228]],["parent/127",[102,3.282]],["name/128",[125,53.228]],["parent/128",[102,3.282]],["name/129",[126,64.214]],["parent/129",[102,3.282]],["name/130",[127,64.214]],["parent/130",[102,3.282]],["name/131",[128,56.592]],["parent/131",[102,3.282]],["name/132",[129,56.592]],["parent/132",[102,3.282]],["name/133",[130,56.592]],["parent/133",[102,3.282]],["name/134",[131,56.592]],["parent/134",[102,3.282]],["name/135",[132,56.592]],["parent/135",[102,3.282]],["name/136",[133,56.592]],["parent/136",[102,3.282]],["name/137",[134,56.592]],["parent/137",[102,3.282]],["name/138",[135,56.592]],["parent/138",[102,3.282]],["name/139",[136,56.592]],["parent/139",[102,3.282]],["name/140",[137,56.592]],["parent/140",[102,3.282]],["name/141",[138,64.214]],["parent/141",[102,3.282]],["name/142",[139,64.214]],["parent/142",[102,3.282]],["name/143",[140,54.229]],["parent/143",[102,3.282]],["name/144",[141,54.229]],["parent/144",[102,3.282]],["name/145",[142,54.229]],["parent/145",[102,3.282]],["name/146",[143,54.229]],["parent/146",[102,3.282]],["name/147",[144,54.229]],["parent/147",[102,3.282]],["name/148",[145,54.229]],["parent/148",[102,3.282]],["name/149",[146,54.229]],["parent/149",[102,3.282]],["name/150",[147,54.229]],["parent/150",[102,3.282]],["name/151",[148,56.592]],["parent/151",[102,3.282]],["name/152",[149,56.592]],["parent/152",[102,3.282]],["name/153",[150,49.333]],["parent/153",[102,3.282]],["name/154",[151,54.229]],["parent/154",[102,3.282]],["name/155",[152,56.592]],["parent/155",[102,3.282]],["name/156",[153,56.592]],["parent/156",[102,3.282]],["name/157",[154,56.592]],["parent/157",[102,3.282]],["name/158",[155,56.592]],["parent/158",[102,3.282]],["name/159",[156,56.592]],["parent/159",[102,3.282]],["name/160",[157,56.592]],["parent/160",[102,3.282]],["name/161",[158,56.592]],["parent/161",[102,3.282]],["name/162",[159,56.592]],["parent/162",[102,3.282]],["name/163",[160,56.592]],["parent/163",[102,3.282]],["name/164",[161,56.592]],["parent/164",[102,3.282]],["name/165",[162,56.592]],["parent/165",[102,3.282]],["name/166",[163,56.592]],["parent/166",[102,3.282]],["name/167",[164,56.592]],["parent/167",[102,3.282]],["name/168",[165,56.592]],["parent/168",[102,3.282]],["name/169",[166,54.229]],["parent/169",[102,3.282]],["name/170",[167,54.229]],["parent/170",[102,3.282]],["name/171",[168,61.701]],["parent/171",[102,3.282]],["name/172",[169,61.701]],["parent/172",[102,3.282]],["name/173",[170,56.592]],["parent/173",[102,3.282]],["name/174",[171,56.592]],["parent/174",[102,3.282]],["name/175",[172,56.592]],["parent/175",[102,3.282]],["name/176",[173,56.592]],["parent/176",[102,3.282]],["name/177",[174,56.592]],["parent/177",[102,3.282]],["name/178",[175,56.592]],["parent/178",[102,3.282]],["name/179",[176,53.228]],["parent/179",[]],["name/180",[58,41.929]],["parent/180",[176,5.215]],["name/181",[177,72.687]],["parent/181",[176,5.215]],["name/182",[178,72.687]],["parent/182",[176,5.215]],["name/183",[179,72.687]],["parent/183",[176,5.215]],["name/184",[180,72.687]],["parent/184",[176,5.215]],["name/185",[181,72.687]],["parent/185",[176,5.215]],["name/186",[182,72.687]],["parent/186",[176,5.215]],["name/187",[183,72.687]],["parent/187",[176,5.215]],["name/188",[184,72.687]],["parent/188",[176,5.215]],["name/189",[185,44.755]],["parent/189",[]],["name/190",[58,41.929]],["parent/190",[185,4.385]],["name/191",[186,72.687]],["parent/191",[185,4.385]],["name/192",[187,72.687]],["parent/192",[185,4.385]],["name/193",[188,72.687]],["parent/193",[185,4.385]],["name/194",[189,72.687]],["parent/194",[185,4.385]],["name/195",[124,53.228]],["parent/195",[185,4.385]],["name/196",[125,53.228]],["parent/196",[185,4.385]],["name/197",[190,72.687]],["parent/197",[185,4.385]],["name/198",[191,72.687]],["parent/198",[185,4.385]],["name/199",[192,72.687]],["parent/199",[185,4.385]],["name/200",[193,72.687]],["parent/200",[185,4.385]],["name/201",[194,72.687]],["parent/201",[185,4.385]],["name/202",[195,72.687]],["parent/202",[185,4.385]],["name/203",[140,54.229]],["parent/203",[185,4.385]],["name/204",[141,54.229]],["parent/204",[185,4.385]],["name/205",[142,54.229]],["parent/205",[185,4.385]],["name/206",[143,54.229]],["parent/206",[185,4.385]],["name/207",[144,54.229]],["parent/207",[185,4.385]],["name/208",[145,54.229]],["parent/208",[185,4.385]],["name/209",[146,54.229]],["parent/209",[185,4.385]],["name/210",[147,54.229]],["parent/210",[185,4.385]],["name/211",[166,54.229]],["parent/211",[185,4.385]],["name/212",[167,54.229]],["parent/212",[185,4.385]],["name/213",[196,53.228]],["parent/213",[]],["name/214",[58,41.929]],["parent/214",[196,5.215]],["name/215",[197,72.687]],["parent/215",[196,5.215]],["name/216",[198,72.687]],["parent/216",[196,5.215]],["name/217",[199,64.214]],["parent/217",[196,5.215]],["name/218",[200,72.687]],["parent/218",[196,5.215]],["name/219",[201,72.687]],["parent/219",[196,5.215]],["name/220",[202,72.687]],["parent/220",[196,5.215]],["name/221",[203,72.687]],["parent/221",[196,5.215]],["name/222",[204,43.97]],["parent/222",[]],["name/223",[58,41.929]],["parent/223",[204,4.308]],["name/224",[205,72.687]],["parent/224",[204,4.308]],["name/225",[206,72.687]],["parent/225",[204,4.308]],["name/226",[207,72.687]],["parent/226",[204,4.308]],["name/227",[208,72.687]],["parent/227",[204,4.308]],["name/228",[209,72.687]],["parent/228",[204,4.308]],["name/229",[210,72.687]],["parent/229",[204,4.308]],["name/230",[211,72.687]],["parent/230",[204,4.308]],["name/231",[212,72.687]],["parent/231",[204,4.308]],["name/232",[213,72.687]],["parent/232",[204,4.308]],["name/233",[214,72.687]],["parent/233",[204,4.308]],["name/234",[215,72.687]],["parent/234",[204,4.308]],["name/235",[216,72.687]],["parent/235",[204,4.308]],["name/236",[217,67.579]],["parent/236",[204,4.308]],["name/237",[218,67.579]],["parent/237",[204,4.308]],["name/238",[219,67.579]],["parent/238",[204,4.308]],["name/239",[220,67.579]],["parent/239",[204,4.308]],["name/240",[221,72.687]],["parent/240",[204,4.308]],["name/241",[222,72.687]],["parent/241",[204,4.308]],["name/242",[223,72.687]],["parent/242",[204,4.308]],["name/243",[224,72.687]],["parent/243",[204,4.308]],["name/244",[225,72.687]],["parent/244",[204,4.308]],["name/245",[226,72.687]],["parent/245",[204,4.308]],["name/246",[227,67.579]],["parent/246",[204,4.308]],["name/247",[228,67.579]],["parent/247",[204,4.308]],["name/248",[229,51.484]],["parent/248",[]],["name/249",[58,41.929]],["parent/249",[229,5.045]],["name/250",[230,55.341]],["parent/250",[229,5.045]],["name/251",[231,55.341]],["parent/251",[229,5.045]],["name/252",[124,53.228]],["parent/252",[229,5.045]],["name/253",[125,53.228]],["parent/253",[229,5.045]],["name/254",[232,56.592]],["parent/254",[229,5.045]],["name/255",[233,56.592]],["parent/255",[229,5.045]],["name/256",[75,67.579]],["parent/256",[229,5.045]],["name/257",[76,67.579]],["parent/257",[229,5.045]],["name/258",[234,72.687]],["parent/258",[229,5.045]],["name/259",[235,72.687]],["parent/259",[229,5.045]],["name/260",[236,31.578]],["parent/260",[]],["name/261",[58,41.929]],["parent/261",[236,3.094]],["name/262",[237,64.214]],["parent/262",[236,3.094]],["name/263",[238,64.214]],["parent/263",[236,3.094]],["name/264",[239,64.214]],["parent/264",[236,3.094]],["name/265",[240,64.214]],["parent/265",[236,3.094]],["name/266",[241,67.579]],["parent/266",[236,3.094]],["name/267",[242,67.579]],["parent/267",[236,3.094]],["name/268",[243,67.579]],["parent/268",[236,3.094]],["name/269",[244,67.579]],["parent/269",[236,3.094]],["name/270",[245,67.579]],["parent/270",[236,3.094]],["name/271",[246,67.579]],["parent/271",[236,3.094]],["name/272",[247,67.579]],["parent/272",[236,3.094]],["name/273",[248,67.579]],["parent/273",[236,3.094]],["name/274",[249,64.214]],["parent/274",[236,3.094]],["name/275",[250,67.579]],["parent/275",[236,3.094]],["name/276",[103,61.701]],["parent/276",[236,3.094]],["name/277",[104,61.701]],["parent/277",[236,3.094]],["name/278",[105,56.592]],["parent/278",[236,3.094]],["name/279",[106,56.592]],["parent/279",[236,3.094]],["name/280",[107,56.592]],["parent/280",[236,3.094]],["name/281",[108,56.592]],["parent/281",[236,3.094]],["name/282",[109,56.592]],["parent/282",[236,3.094]],["name/283",[110,56.592]],["parent/283",[236,3.094]],["name/284",[111,56.592]],["parent/284",[236,3.094]],["name/285",[112,56.592]],["parent/285",[236,3.094]],["name/286",[113,56.592]],["parent/286",[236,3.094]],["name/287",[230,55.341]],["parent/287",[236,3.094]],["name/288",[231,55.341]],["parent/288",[236,3.094]],["name/289",[114,56.592]],["parent/289",[236,3.094]],["name/290",[115,56.592]],["parent/290",[236,3.094]],["name/291",[116,56.592]],["parent/291",[236,3.094]],["name/292",[117,56.592]],["parent/292",[236,3.094]],["name/293",[118,56.592]],["parent/293",[236,3.094]],["name/294",[119,56.592]],["parent/294",[236,3.094]],["name/295",[120,56.592]],["parent/295",[236,3.094]],["name/296",[121,56.592]],["parent/296",[236,3.094]],["name/297",[124,53.228]],["parent/297",[236,3.094]],["name/298",[125,53.228]],["parent/298",[236,3.094]],["name/299",[128,56.592]],["parent/299",[236,3.094]],["name/300",[129,56.592]],["parent/300",[236,3.094]],["name/301",[130,56.592]],["parent/301",[236,3.094]],["name/302",[131,56.592]],["parent/302",[236,3.094]],["name/303",[132,56.592]],["parent/303",[236,3.094]],["name/304",[133,56.592]],["parent/304",[236,3.094]],["name/305",[134,56.592]],["parent/305",[236,3.094]],["name/306",[135,56.592]],["parent/306",[236,3.094]],["name/307",[136,56.592]],["parent/307",[236,3.094]],["name/308",[137,56.592]],["parent/308",[236,3.094]],["name/309",[232,56.592]],["parent/309",[236,3.094]],["name/310",[233,56.592]],["parent/310",[236,3.094]],["name/311",[140,54.229]],["parent/311",[236,3.094]],["name/312",[141,54.229]],["parent/312",[236,3.094]],["name/313",[251,67.579]],["parent/313",[236,3.094]],["name/314",[252,67.579]],["parent/314",[236,3.094]],["name/315",[253,67.579]],["parent/315",[236,3.094]],["name/316",[254,67.579]],["parent/316",[236,3.094]],["name/317",[142,54.229]],["parent/317",[236,3.094]],["name/318",[143,54.229]],["parent/318",[236,3.094]],["name/319",[144,54.229]],["parent/319",[236,3.094]],["name/320",[145,54.229]],["parent/320",[236,3.094]],["name/321",[146,54.229]],["parent/321",[236,3.094]],["name/322",[147,54.229]],["parent/322",[236,3.094]],["name/323",[148,56.592]],["parent/323",[236,3.094]],["name/324",[149,56.592]],["parent/324",[236,3.094]],["name/325",[150,49.333]],["parent/325",[236,3.094]],["name/326",[151,54.229]],["parent/326",[236,3.094]],["name/327",[152,56.592]],["parent/327",[236,3.094]],["name/328",[153,56.592]],["parent/328",[236,3.094]],["name/329",[154,56.592]],["parent/329",[236,3.094]],["name/330",[155,56.592]],["parent/330",[236,3.094]],["name/331",[156,56.592]],["parent/331",[236,3.094]],["name/332",[157,56.592]],["parent/332",[236,3.094]],["name/333",[158,56.592]],["parent/333",[236,3.094]],["name/334",[159,56.592]],["parent/334",[236,3.094]],["name/335",[160,56.592]],["parent/335",[236,3.094]],["name/336",[161,56.592]],["parent/336",[236,3.094]],["name/337",[162,56.592]],["parent/337",[236,3.094]],["name/338",[163,56.592]],["parent/338",[236,3.094]],["name/339",[164,56.592]],["parent/339",[236,3.094]],["name/340",[165,56.592]],["parent/340",[236,3.094]],["name/341",[166,54.229]],["parent/341",[236,3.094]],["name/342",[167,54.229]],["parent/342",[236,3.094]],["name/343",[168,61.701]],["parent/343",[236,3.094]],["name/344",[169,61.701]],["parent/344",[236,3.094]],["name/345",[170,56.592]],["parent/345",[236,3.094]],["name/346",[171,56.592]],["parent/346",[236,3.094]],["name/347",[172,56.592]],["parent/347",[236,3.094]],["name/348",[173,56.592]],["parent/348",[236,3.094]],["name/349",[174,56.592]],["parent/349",[236,3.094]],["name/350",[175,56.592]],["parent/350",[236,3.094]],["name/351",[255,55.341]],["parent/351",[]],["name/352",[58,41.929]],["parent/352",[255,5.423]],["name/353",[256,72.687]],["parent/353",[255,5.423]],["name/354",[257,72.687]],["parent/354",[255,5.423]],["name/355",[258,72.687]],["parent/355",[255,5.423]],["name/356",[259,72.687]],["parent/356",[255,5.423]],["name/357",[260,72.687]],["parent/357",[255,5.423]],["name/358",[261,72.687]],["parent/358",[255,5.423]],["name/359",[262,54.229]],["parent/359",[]],["name/360",[58,41.929]],["parent/360",[262,5.314]],["name/361",[263,72.687]],["parent/361",[262,5.314]],["name/362",[264,72.687]],["parent/362",[262,5.314]],["name/363",[265,72.687]],["parent/363",[262,5.314]],["name/364",[266,72.687]],["parent/364",[262,5.314]],["name/365",[267,72.687]],["parent/365",[262,5.314]],["name/366",[268,72.687]],["parent/366",[262,5.314]],["name/367",[269,50]],["parent/367",[]],["name/368",[58,41.929]],["parent/368",[269,4.899]],["name/369",[270,72.687]],["parent/369",[269,4.899]],["name/370",[271,72.687]],["parent/370",[269,4.899]],["name/371",[272,72.687]],["parent/371",[269,4.899]],["name/372",[273,72.687]],["parent/372",[269,4.899]],["name/373",[274,72.687]],["parent/373",[269,4.899]],["name/374",[275,72.687]],["parent/374",[269,4.899]],["name/375",[276,72.687]],["parent/375",[269,4.899]],["name/376",[277,72.687]],["parent/376",[269,4.899]],["name/377",[278,72.687]],["parent/377",[269,4.899]],["name/378",[279,72.687]],["parent/378",[269,4.899]],["name/379",[280,72.687]],["parent/379",[269,4.899]],["name/380",[281,72.687]],["parent/380",[269,4.899]],["name/381",[282,26.275]],["parent/381",[]],["name/382",[58,41.929]],["parent/382",[282,2.575]],["name/383",[283,67.579]],["parent/383",[282,2.575]],["name/384",[284,67.579]],["parent/384",[282,2.575]],["name/385",[103,61.701]],["parent/385",[282,2.575]],["name/386",[104,61.701]],["parent/386",[282,2.575]],["name/387",[105,56.592]],["parent/387",[282,2.575]],["name/388",[106,56.592]],["parent/388",[282,2.575]],["name/389",[107,56.592]],["parent/389",[282,2.575]],["name/390",[108,56.592]],["parent/390",[282,2.575]],["name/391",[285,67.579]],["parent/391",[282,2.575]],["name/392",[286,67.579]],["parent/392",[282,2.575]],["name/393",[287,72.687]],["parent/393",[282,2.575]],["name/394",[288,72.687]],["parent/394",[282,2.575]],["name/395",[289,72.687]],["parent/395",[282,2.575]],["name/396",[290,72.687]],["parent/396",[282,2.575]],["name/397",[109,56.592]],["parent/397",[282,2.575]],["name/398",[110,56.592]],["parent/398",[282,2.575]],["name/399",[111,56.592]],["parent/399",[282,2.575]],["name/400",[112,56.592]],["parent/400",[282,2.575]],["name/401",[113,56.592]],["parent/401",[282,2.575]],["name/402",[291,72.687]],["parent/402",[282,2.575]],["name/403",[292,72.687]],["parent/403",[282,2.575]],["name/404",[293,72.687]],["parent/404",[282,2.575]],["name/405",[294,72.687]],["parent/405",[282,2.575]],["name/406",[295,67.579]],["parent/406",[282,2.575]],["name/407",[296,67.579]],["parent/407",[282,2.575]],["name/408",[297,72.687]],["parent/408",[282,2.575]],["name/409",[298,72.687]],["parent/409",[282,2.575]],["name/410",[299,72.687]],["parent/410",[282,2.575]],["name/411",[300,72.687]],["parent/411",[282,2.575]],["name/412",[301,72.687]],["parent/412",[282,2.575]],["name/413",[302,72.687]],["parent/413",[282,2.575]],["name/414",[114,56.592]],["parent/414",[282,2.575]],["name/415",[115,56.592]],["parent/415",[282,2.575]],["name/416",[116,56.592]],["parent/416",[282,2.575]],["name/417",[117,56.592]],["parent/417",[282,2.575]],["name/418",[303,67.579]],["parent/418",[282,2.575]],["name/419",[304,67.579]],["parent/419",[282,2.575]],["name/420",[118,56.592]],["parent/420",[282,2.575]],["name/421",[119,56.592]],["parent/421",[282,2.575]],["name/422",[305,72.687]],["parent/422",[282,2.575]],["name/423",[306,72.687]],["parent/423",[282,2.575]],["name/424",[307,72.687]],["parent/424",[282,2.575]],["name/425",[308,72.687]],["parent/425",[282,2.575]],["name/426",[120,56.592]],["parent/426",[282,2.575]],["name/427",[121,56.592]],["parent/427",[282,2.575]],["name/428",[122,64.214]],["parent/428",[282,2.575]],["name/429",[123,64.214]],["parent/429",[282,2.575]],["name/430",[124,53.228]],["parent/430",[282,2.575]],["name/431",[125,53.228]],["parent/431",[282,2.575]],["name/432",[309,67.579]],["parent/432",[282,2.575]],["name/433",[310,67.579]],["parent/433",[282,2.575]],["name/434",[311,67.579]],["parent/434",[282,2.575]],["name/435",[312,67.579]],["parent/435",[282,2.575]],["name/436",[313,67.579]],["parent/436",[282,2.575]],["name/437",[314,67.579]],["parent/437",[282,2.575]],["name/438",[315,72.687]],["parent/438",[282,2.575]],["name/439",[316,72.687]],["parent/439",[282,2.575]],["name/440",[317,72.687]],["parent/440",[282,2.575]],["name/441",[318,67.579]],["parent/441",[282,2.575]],["name/442",[319,72.687]],["parent/442",[282,2.575]],["name/443",[320,72.687]],["parent/443",[282,2.575]],["name/444",[321,61.701]],["parent/444",[282,2.575]],["name/445",[322,61.701]],["parent/445",[282,2.575]],["name/446",[323,61.701]],["parent/446",[282,2.575]],["name/447",[324,61.701]],["parent/447",[282,2.575]],["name/448",[321,61.701]],["parent/448",[282,2.575]],["name/449",[322,61.701]],["parent/449",[282,2.575]],["name/450",[323,61.701]],["parent/450",[282,2.575]],["name/451",[324,61.701]],["parent/451",[282,2.575]],["name/452",[126,64.214]],["parent/452",[282,2.575]],["name/453",[127,64.214]],["parent/453",[282,2.575]],["name/454",[128,56.592]],["parent/454",[282,2.575]],["name/455",[129,56.592]],["parent/455",[282,2.575]],["name/456",[130,56.592]],["parent/456",[282,2.575]],["name/457",[131,56.592]],["parent/457",[282,2.575]],["name/458",[132,56.592]],["parent/458",[282,2.575]],["name/459",[133,56.592]],["parent/459",[282,2.575]],["name/460",[134,56.592]],["parent/460",[282,2.575]],["name/461",[135,56.592]],["parent/461",[282,2.575]],["name/462",[136,56.592]],["parent/462",[282,2.575]],["name/463",[137,56.592]],["parent/463",[282,2.575]],["name/464",[325,72.687]],["parent/464",[282,2.575]],["name/465",[326,72.687]],["parent/465",[282,2.575]],["name/466",[327,72.687]],["parent/466",[282,2.575]],["name/467",[328,72.687]],["parent/467",[282,2.575]],["name/468",[329,72.687]],["parent/468",[282,2.575]],["name/469",[330,72.687]],["parent/469",[282,2.575]],["name/470",[331,72.687]],["parent/470",[282,2.575]],["name/471",[332,72.687]],["parent/471",[282,2.575]],["name/472",[138,64.214]],["parent/472",[282,2.575]],["name/473",[139,64.214]],["parent/473",[282,2.575]],["name/474",[140,54.229]],["parent/474",[282,2.575]],["name/475",[141,54.229]],["parent/475",[282,2.575]],["name/476",[142,54.229]],["parent/476",[282,2.575]],["name/477",[143,54.229]],["parent/477",[282,2.575]],["name/478",[144,54.229]],["parent/478",[282,2.575]],["name/479",[145,54.229]],["parent/479",[282,2.575]],["name/480",[146,54.229]],["parent/480",[282,2.575]],["name/481",[147,54.229]],["parent/481",[282,2.575]],["name/482",[333,72.687]],["parent/482",[282,2.575]],["name/483",[334,72.687]],["parent/483",[282,2.575]],["name/484",[148,56.592]],["parent/484",[282,2.575]],["name/485",[149,56.592]],["parent/485",[282,2.575]],["name/486",[150,49.333]],["parent/486",[282,2.575]],["name/487",[151,54.229]],["parent/487",[282,2.575]],["name/488",[152,56.592]],["parent/488",[282,2.575]],["name/489",[153,56.592]],["parent/489",[282,2.575]],["name/490",[154,56.592]],["parent/490",[282,2.575]],["name/491",[155,56.592]],["parent/491",[282,2.575]],["name/492",[156,56.592]],["parent/492",[282,2.575]],["name/493",[157,56.592]],["parent/493",[282,2.575]],["name/494",[158,56.592]],["parent/494",[282,2.575]],["name/495",[159,56.592]],["parent/495",[282,2.575]],["name/496",[160,56.592]],["parent/496",[282,2.575]],["name/497",[161,56.592]],["parent/497",[282,2.575]],["name/498",[162,56.592]],["parent/498",[282,2.575]],["name/499",[163,56.592]],["parent/499",[282,2.575]],["name/500",[164,56.592]],["parent/500",[282,2.575]],["name/501",[165,56.592]],["parent/501",[282,2.575]],["name/502",[166,54.229]],["parent/502",[282,2.575]],["name/503",[167,54.229]],["parent/503",[282,2.575]],["name/504",[168,61.701]],["parent/504",[282,2.575]],["name/505",[169,61.701]],["parent/505",[282,2.575]],["name/506",[170,56.592]],["parent/506",[282,2.575]],["name/507",[171,56.592]],["parent/507",[282,2.575]],["name/508",[335,72.687]],["parent/508",[282,2.575]],["name/509",[336,72.687]],["parent/509",[282,2.575]],["name/510",[337,67.579]],["parent/510",[282,2.575]],["name/511",[337,67.579]],["parent/511",[282,2.575]],["name/512",[338,67.579]],["parent/512",[282,2.575]],["name/513",[339,67.579]],["parent/513",[282,2.575]],["name/514",[338,67.579]],["parent/514",[282,2.575]],["name/515",[339,67.579]],["parent/515",[282,2.575]],["name/516",[340,67.579]],["parent/516",[282,2.575]],["name/517",[340,67.579]],["parent/517",[282,2.575]],["name/518",[172,56.592]],["parent/518",[282,2.575]],["name/519",[173,56.592]],["parent/519",[282,2.575]],["name/520",[174,56.592]],["parent/520",[282,2.575]],["name/521",[175,56.592]],["parent/521",[282,2.575]],["name/522",[341,72.687]],["parent/522",[282,2.575]],["name/523",[342,72.687]],["parent/523",[282,2.575]],["name/524",[343,67.579]],["parent/524",[282,2.575]],["name/525",[344,67.579]],["parent/525",[282,2.575]],["name/526",[345,61.701]],["parent/526",[282,2.575]],["name/527",[346,61.701]],["parent/527",[282,2.575]],["name/528",[347,67.579]],["parent/528",[282,2.575]],["name/529",[348,67.579]],["parent/529",[282,2.575]],["name/530",[343,67.579]],["parent/530",[282,2.575]],["name/531",[344,67.579]],["parent/531",[282,2.575]],["name/532",[345,61.701]],["parent/532",[282,2.575]],["name/533",[346,61.701]],["parent/533",[282,2.575]],["name/534",[347,67.579]],["parent/534",[282,2.575]],["name/535",[348,67.579]],["parent/535",[282,2.575]],["name/536",[349,27.726]],["parent/536",[]],["name/537",[58,41.929]],["parent/537",[349,2.717]],["name/538",[237,64.214]],["parent/538",[349,2.717]],["name/539",[238,64.214]],["parent/539",[349,2.717]],["name/540",[350,72.687]],["parent/540",[349,2.717]],["name/541",[351,72.687]],["parent/541",[349,2.717]],["name/542",[283,67.579]],["parent/542",[349,2.717]],["name/543",[284,67.579]],["parent/543",[349,2.717]],["name/544",[239,64.214]],["parent/544",[349,2.717]],["name/545",[240,64.214]],["parent/545",[349,2.717]],["name/546",[352,67.579]],["parent/546",[349,2.717]],["name/547",[353,67.579]],["parent/547",[349,2.717]],["name/548",[354,72.687]],["parent/548",[349,2.717]],["name/549",[355,72.687]],["parent/549",[349,2.717]],["name/550",[356,72.687]],["parent/550",[349,2.717]],["name/551",[357,72.687]],["parent/551",[349,2.717]],["name/552",[105,56.592]],["parent/552",[349,2.717]],["name/553",[106,56.592]],["parent/553",[349,2.717]],["name/554",[107,56.592]],["parent/554",[349,2.717]],["name/555",[108,56.592]],["parent/555",[349,2.717]],["name/556",[285,67.579]],["parent/556",[349,2.717]],["name/557",[286,67.579]],["parent/557",[349,2.717]],["name/558",[358,72.687]],["parent/558",[349,2.717]],["name/559",[359,72.687]],["parent/559",[349,2.717]],["name/560",[109,56.592]],["parent/560",[349,2.717]],["name/561",[110,56.592]],["parent/561",[349,2.717]],["name/562",[111,56.592]],["parent/562",[349,2.717]],["name/563",[112,56.592]],["parent/563",[349,2.717]],["name/564",[113,56.592]],["parent/564",[349,2.717]],["name/565",[360,72.687]],["parent/565",[349,2.717]],["name/566",[361,72.687]],["parent/566",[349,2.717]],["name/567",[230,55.341]],["parent/567",[349,2.717]],["name/568",[231,55.341]],["parent/568",[349,2.717]],["name/569",[295,67.579]],["parent/569",[349,2.717]],["name/570",[296,67.579]],["parent/570",[349,2.717]],["name/571",[114,56.592]],["parent/571",[349,2.717]],["name/572",[115,56.592]],["parent/572",[349,2.717]],["name/573",[116,56.592]],["parent/573",[349,2.717]],["name/574",[117,56.592]],["parent/574",[349,2.717]],["name/575",[303,67.579]],["parent/575",[349,2.717]],["name/576",[304,67.579]],["parent/576",[349,2.717]],["name/577",[118,56.592]],["parent/577",[349,2.717]],["name/578",[119,56.592]],["parent/578",[349,2.717]],["name/579",[120,56.592]],["parent/579",[349,2.717]],["name/580",[121,56.592]],["parent/580",[349,2.717]],["name/581",[124,53.228]],["parent/581",[349,2.717]],["name/582",[125,53.228]],["parent/582",[349,2.717]],["name/583",[309,67.579]],["parent/583",[349,2.717]],["name/584",[310,67.579]],["parent/584",[349,2.717]],["name/585",[311,67.579]],["parent/585",[349,2.717]],["name/586",[312,67.579]],["parent/586",[349,2.717]],["name/587",[313,67.579]],["parent/587",[349,2.717]],["name/588",[314,67.579]],["parent/588",[349,2.717]],["name/589",[321,61.701]],["parent/589",[349,2.717]],["name/590",[322,61.701]],["parent/590",[349,2.717]],["name/591",[323,61.701]],["parent/591",[349,2.717]],["name/592",[324,61.701]],["parent/592",[349,2.717]],["name/593",[321,61.701]],["parent/593",[349,2.717]],["name/594",[322,61.701]],["parent/594",[349,2.717]],["name/595",[323,61.701]],["parent/595",[349,2.717]],["name/596",[324,61.701]],["parent/596",[349,2.717]],["name/597",[128,56.592]],["parent/597",[349,2.717]],["name/598",[129,56.592]],["parent/598",[349,2.717]],["name/599",[130,56.592]],["parent/599",[349,2.717]],["name/600",[131,56.592]],["parent/600",[349,2.717]],["name/601",[132,56.592]],["parent/601",[349,2.717]],["name/602",[133,56.592]],["parent/602",[349,2.717]],["name/603",[362,67.579]],["parent/603",[349,2.717]],["name/604",[363,67.579]],["parent/604",[349,2.717]],["name/605",[362,67.579]],["parent/605",[349,2.717]],["name/606",[363,67.579]],["parent/606",[349,2.717]],["name/607",[364,67.579]],["parent/607",[349,2.717]],["name/608",[365,67.579]],["parent/608",[349,2.717]],["name/609",[364,67.579]],["parent/609",[349,2.717]],["name/610",[365,67.579]],["parent/610",[349,2.717]],["name/611",[134,56.592]],["parent/611",[349,2.717]],["name/612",[135,56.592]],["parent/612",[349,2.717]],["name/613",[136,56.592]],["parent/613",[349,2.717]],["name/614",[137,56.592]],["parent/614",[349,2.717]],["name/615",[232,56.592]],["parent/615",[349,2.717]],["name/616",[233,56.592]],["parent/616",[349,2.717]],["name/617",[140,54.229]],["parent/617",[349,2.717]],["name/618",[141,54.229]],["parent/618",[349,2.717]],["name/619",[142,54.229]],["parent/619",[349,2.717]],["name/620",[143,54.229]],["parent/620",[349,2.717]],["name/621",[144,54.229]],["parent/621",[349,2.717]],["name/622",[145,54.229]],["parent/622",[349,2.717]],["name/623",[146,54.229]],["parent/623",[349,2.717]],["name/624",[147,54.229]],["parent/624",[349,2.717]],["name/625",[366,67.579]],["parent/625",[349,2.717]],["name/626",[367,67.579]],["parent/626",[349,2.717]],["name/627",[148,56.592]],["parent/627",[349,2.717]],["name/628",[149,56.592]],["parent/628",[349,2.717]],["name/629",[150,49.333]],["parent/629",[349,2.717]],["name/630",[151,54.229]],["parent/630",[349,2.717]],["name/631",[152,56.592]],["parent/631",[349,2.717]],["name/632",[153,56.592]],["parent/632",[349,2.717]],["name/633",[154,56.592]],["parent/633",[349,2.717]],["name/634",[155,56.592]],["parent/634",[349,2.717]],["name/635",[156,56.592]],["parent/635",[349,2.717]],["name/636",[157,56.592]],["parent/636",[349,2.717]],["name/637",[158,56.592]],["parent/637",[349,2.717]],["name/638",[159,56.592]],["parent/638",[349,2.717]],["name/639",[160,56.592]],["parent/639",[349,2.717]],["name/640",[161,56.592]],["parent/640",[349,2.717]],["name/641",[162,56.592]],["parent/641",[349,2.717]],["name/642",[163,56.592]],["parent/642",[349,2.717]],["name/643",[164,56.592]],["parent/643",[349,2.717]],["name/644",[165,56.592]],["parent/644",[349,2.717]],["name/645",[166,54.229]],["parent/645",[349,2.717]],["name/646",[167,54.229]],["parent/646",[349,2.717]],["name/647",[170,56.592]],["parent/647",[349,2.717]],["name/648",[171,56.592]],["parent/648",[349,2.717]],["name/649",[172,56.592]],["parent/649",[349,2.717]],["name/650",[173,56.592]],["parent/650",[349,2.717]],["name/651",[174,56.592]],["parent/651",[349,2.717]],["name/652",[175,56.592]],["parent/652",[349,2.717]],["name/653",[368,67.579]],["parent/653",[349,2.717]],["name/654",[369,67.579]],["parent/654",[349,2.717]],["name/655",[345,61.701]],["parent/655",[349,2.717]],["name/656",[346,61.701]],["parent/656",[349,2.717]],["name/657",[370,67.579]],["parent/657",[349,2.717]],["name/658",[371,67.579]],["parent/658",[349,2.717]],["name/659",[372,67.579]],["parent/659",[349,2.717]],["name/660",[373,67.579]],["parent/660",[349,2.717]],["name/661",[374,72.687]],["parent/661",[349,2.717]],["name/662",[368,67.579]],["parent/662",[349,2.717]],["name/663",[369,67.579]],["parent/663",[349,2.717]],["name/664",[345,61.701]],["parent/664",[349,2.717]],["name/665",[346,61.701]],["parent/665",[349,2.717]],["name/666",[370,67.579]],["parent/666",[349,2.717]],["name/667",[371,67.579]],["parent/667",[349,2.717]],["name/668",[372,67.579]],["parent/668",[349,2.717]],["name/669",[373,67.579]],["parent/669",[349,2.717]],["name/670",[375,67.579]],["parent/670",[]],["name/671",[58,41.929]],["parent/671",[375,6.622]],["name/672",[376,55.341]],["parent/672",[]],["name/673",[58,41.929]],["parent/673",[376,5.423]],["name/674",[377,64.214]],["parent/674",[376,5.423]],["name/675",[378,64.214]],["parent/675",[376,5.423]],["name/676",[379,64.214]],["parent/676",[376,5.423]],["name/677",[380,64.214]],["parent/677",[376,5.423]],["name/678",[381,64.214]],["parent/678",[376,5.423]],["name/679",[382,64.214]],["parent/679",[376,5.423]],["name/680",[383,61.701]],["parent/680",[]],["name/681",[58,41.929]],["parent/681",[383,6.046]],["name/682",[384,72.687]],["parent/682",[383,6.046]],["name/683",[385,72.687]],["parent/683",[383,6.046]],["name/684",[386,32.735]],["parent/684",[]],["name/685",[58,41.929]],["parent/685",[386,3.208]],["name/686",[103,61.701]],["parent/686",[386,3.208]],["name/687",[104,61.701]],["parent/687",[386,3.208]],["name/688",[105,56.592]],["parent/688",[386,3.208]],["name/689",[106,56.592]],["parent/689",[386,3.208]],["name/690",[107,56.592]],["parent/690",[386,3.208]],["name/691",[108,56.592]],["parent/691",[386,3.208]],["name/692",[109,56.592]],["parent/692",[386,3.208]],["name/693",[110,56.592]],["parent/693",[386,3.208]],["name/694",[111,56.592]],["parent/694",[386,3.208]],["name/695",[112,56.592]],["parent/695",[386,3.208]],["name/696",[113,56.592]],["parent/696",[386,3.208]],["name/697",[387,72.687]],["parent/697",[386,3.208]],["name/698",[388,72.687]],["parent/698",[386,3.208]],["name/699",[114,56.592]],["parent/699",[386,3.208]],["name/700",[115,56.592]],["parent/700",[386,3.208]],["name/701",[116,56.592]],["parent/701",[386,3.208]],["name/702",[117,56.592]],["parent/702",[386,3.208]],["name/703",[118,56.592]],["parent/703",[386,3.208]],["name/704",[119,56.592]],["parent/704",[386,3.208]],["name/705",[120,56.592]],["parent/705",[386,3.208]],["name/706",[121,56.592]],["parent/706",[386,3.208]],["name/707",[122,64.214]],["parent/707",[386,3.208]],["name/708",[123,64.214]],["parent/708",[386,3.208]],["name/709",[124,53.228]],["parent/709",[386,3.208]],["name/710",[125,53.228]],["parent/710",[386,3.208]],["name/711",[126,64.214]],["parent/711",[386,3.208]],["name/712",[127,64.214]],["parent/712",[386,3.208]],["name/713",[128,56.592]],["parent/713",[386,3.208]],["name/714",[129,56.592]],["parent/714",[386,3.208]],["name/715",[130,56.592]],["parent/715",[386,3.208]],["name/716",[131,56.592]],["parent/716",[386,3.208]],["name/717",[132,56.592]],["parent/717",[386,3.208]],["name/718",[133,56.592]],["parent/718",[386,3.208]],["name/719",[134,56.592]],["parent/719",[386,3.208]],["name/720",[135,56.592]],["parent/720",[386,3.208]],["name/721",[136,56.592]],["parent/721",[386,3.208]],["name/722",[137,56.592]],["parent/722",[386,3.208]],["name/723",[138,64.214]],["parent/723",[386,3.208]],["name/724",[139,64.214]],["parent/724",[386,3.208]],["name/725",[140,54.229]],["parent/725",[386,3.208]],["name/726",[141,54.229]],["parent/726",[386,3.208]],["name/727",[251,67.579]],["parent/727",[386,3.208]],["name/728",[252,67.579]],["parent/728",[386,3.208]],["name/729",[253,67.579]],["parent/729",[386,3.208]],["name/730",[254,67.579]],["parent/730",[386,3.208]],["name/731",[142,54.229]],["parent/731",[386,3.208]],["name/732",[143,54.229]],["parent/732",[386,3.208]],["name/733",[144,54.229]],["parent/733",[386,3.208]],["name/734",[145,54.229]],["parent/734",[386,3.208]],["name/735",[146,54.229]],["parent/735",[386,3.208]],["name/736",[147,54.229]],["parent/736",[386,3.208]],["name/737",[148,56.592]],["parent/737",[386,3.208]],["name/738",[149,56.592]],["parent/738",[386,3.208]],["name/739",[150,49.333]],["parent/739",[386,3.208]],["name/740",[151,54.229]],["parent/740",[386,3.208]],["name/741",[152,56.592]],["parent/741",[386,3.208]],["name/742",[153,56.592]],["parent/742",[386,3.208]],["name/743",[154,56.592]],["parent/743",[386,3.208]],["name/744",[155,56.592]],["parent/744",[386,3.208]],["name/745",[156,56.592]],["parent/745",[386,3.208]],["name/746",[157,56.592]],["parent/746",[386,3.208]],["name/747",[158,56.592]],["parent/747",[386,3.208]],["name/748",[159,56.592]],["parent/748",[386,3.208]],["name/749",[160,56.592]],["parent/749",[386,3.208]],["name/750",[161,56.592]],["parent/750",[386,3.208]],["name/751",[162,56.592]],["parent/751",[386,3.208]],["name/752",[163,56.592]],["parent/752",[386,3.208]],["name/753",[164,56.592]],["parent/753",[386,3.208]],["name/754",[165,56.592]],["parent/754",[386,3.208]],["name/755",[166,54.229]],["parent/755",[386,3.208]],["name/756",[167,54.229]],["parent/756",[386,3.208]],["name/757",[168,61.701]],["parent/757",[386,3.208]],["name/758",[169,61.701]],["parent/758",[386,3.208]],["name/759",[170,56.592]],["parent/759",[386,3.208]],["name/760",[171,56.592]],["parent/760",[386,3.208]],["name/761",[172,56.592]],["parent/761",[386,3.208]],["name/762",[173,56.592]],["parent/762",[386,3.208]],["name/763",[174,56.592]],["parent/763",[386,3.208]],["name/764",[175,56.592]],["parent/764",[386,3.208]],["name/765",[389,33.239]],["parent/765",[]],["name/766",[58,41.929]],["parent/766",[389,3.257]],["name/767",[237,64.214]],["parent/767",[389,3.257]],["name/768",[238,64.214]],["parent/768",[389,3.257]],["name/769",[239,64.214]],["parent/769",[389,3.257]],["name/770",[240,64.214]],["parent/770",[389,3.257]],["name/771",[352,67.579]],["parent/771",[389,3.257]],["name/772",[353,67.579]],["parent/772",[389,3.257]],["name/773",[105,56.592]],["parent/773",[389,3.257]],["name/774",[106,56.592]],["parent/774",[389,3.257]],["name/775",[107,56.592]],["parent/775",[389,3.257]],["name/776",[108,56.592]],["parent/776",[389,3.257]],["name/777",[109,56.592]],["parent/777",[389,3.257]],["name/778",[110,56.592]],["parent/778",[389,3.257]],["name/779",[111,56.592]],["parent/779",[389,3.257]],["name/780",[112,56.592]],["parent/780",[389,3.257]],["name/781",[113,56.592]],["parent/781",[389,3.257]],["name/782",[230,55.341]],["parent/782",[389,3.257]],["name/783",[231,55.341]],["parent/783",[389,3.257]],["name/784",[114,56.592]],["parent/784",[389,3.257]],["name/785",[115,56.592]],["parent/785",[389,3.257]],["name/786",[116,56.592]],["parent/786",[389,3.257]],["name/787",[117,56.592]],["parent/787",[389,3.257]],["name/788",[118,56.592]],["parent/788",[389,3.257]],["name/789",[119,56.592]],["parent/789",[389,3.257]],["name/790",[120,56.592]],["parent/790",[389,3.257]],["name/791",[121,56.592]],["parent/791",[389,3.257]],["name/792",[124,53.228]],["parent/792",[389,3.257]],["name/793",[125,53.228]],["parent/793",[389,3.257]],["name/794",[128,56.592]],["parent/794",[389,3.257]],["name/795",[129,56.592]],["parent/795",[389,3.257]],["name/796",[130,56.592]],["parent/796",[389,3.257]],["name/797",[131,56.592]],["parent/797",[389,3.257]],["name/798",[132,56.592]],["parent/798",[389,3.257]],["name/799",[133,56.592]],["parent/799",[389,3.257]],["name/800",[134,56.592]],["parent/800",[389,3.257]],["name/801",[135,56.592]],["parent/801",[389,3.257]],["name/802",[136,56.592]],["parent/802",[389,3.257]],["name/803",[137,56.592]],["parent/803",[389,3.257]],["name/804",[232,56.592]],["parent/804",[389,3.257]],["name/805",[233,56.592]],["parent/805",[389,3.257]],["name/806",[140,54.229]],["parent/806",[389,3.257]],["name/807",[141,54.229]],["parent/807",[389,3.257]],["name/808",[142,54.229]],["parent/808",[389,3.257]],["name/809",[143,54.229]],["parent/809",[389,3.257]],["name/810",[144,54.229]],["parent/810",[389,3.257]],["name/811",[145,54.229]],["parent/811",[389,3.257]],["name/812",[146,54.229]],["parent/812",[389,3.257]],["name/813",[147,54.229]],["parent/813",[389,3.257]],["name/814",[366,67.579]],["parent/814",[389,3.257]],["name/815",[367,67.579]],["parent/815",[389,3.257]],["name/816",[148,56.592]],["parent/816",[389,3.257]],["name/817",[149,56.592]],["parent/817",[389,3.257]],["name/818",[150,49.333]],["parent/818",[389,3.257]],["name/819",[151,54.229]],["parent/819",[389,3.257]],["name/820",[152,56.592]],["parent/820",[389,3.257]],["name/821",[153,56.592]],["parent/821",[389,3.257]],["name/822",[154,56.592]],["parent/822",[389,3.257]],["name/823",[155,56.592]],["parent/823",[389,3.257]],["name/824",[156,56.592]],["parent/824",[389,3.257]],["name/825",[157,56.592]],["parent/825",[389,3.257]],["name/826",[158,56.592]],["parent/826",[389,3.257]],["name/827",[159,56.592]],["parent/827",[389,3.257]],["name/828",[160,56.592]],["parent/828",[389,3.257]],["name/829",[161,56.592]],["parent/829",[389,3.257]],["name/830",[162,56.592]],["parent/830",[389,3.257]],["name/831",[163,56.592]],["parent/831",[389,3.257]],["name/832",[164,56.592]],["parent/832",[389,3.257]],["name/833",[165,56.592]],["parent/833",[389,3.257]],["name/834",[166,54.229]],["parent/834",[389,3.257]],["name/835",[167,54.229]],["parent/835",[389,3.257]],["name/836",[170,56.592]],["parent/836",[389,3.257]],["name/837",[171,56.592]],["parent/837",[389,3.257]],["name/838",[172,56.592]],["parent/838",[389,3.257]],["name/839",[173,56.592]],["parent/839",[389,3.257]],["name/840",[174,56.592]],["parent/840",[389,3.257]],["name/841",[175,56.592]],["parent/841",[389,3.257]],["name/842",[390,50]],["parent/842",[]],["name/843",[58,41.929]],["parent/843",[390,4.899]],["name/844",[124,53.228]],["parent/844",[390,4.899]],["name/845",[125,53.228]],["parent/845",[390,4.899]],["name/846",[140,54.229]],["parent/846",[390,4.899]],["name/847",[141,54.229]],["parent/847",[390,4.899]],["name/848",[142,54.229]],["parent/848",[390,4.899]],["name/849",[143,54.229]],["parent/849",[390,4.899]],["name/850",[144,54.229]],["parent/850",[390,4.899]],["name/851",[145,54.229]],["parent/851",[390,4.899]],["name/852",[146,54.229]],["parent/852",[390,4.899]],["name/853",[147,54.229]],["parent/853",[390,4.899]],["name/854",[166,54.229]],["parent/854",[390,4.899]],["name/855",[167,54.229]],["parent/855",[390,4.899]],["name/856",[391,44.755]],["parent/856",[]],["name/857",[58,41.929]],["parent/857",[391,4.385]],["name/858",[392,72.687]],["parent/858",[391,4.385]],["name/859",[393,72.687]],["parent/859",[391,4.385]],["name/860",[394,72.687]],["parent/860",[391,4.385]],["name/861",[395,72.687]],["parent/861",[391,4.385]],["name/862",[396,72.687]],["parent/862",[391,4.385]],["name/863",[397,72.687]],["parent/863",[391,4.385]],["name/864",[398,72.687]],["parent/864",[391,4.385]],["name/865",[399,72.687]],["parent/865",[391,4.385]],["name/866",[400,72.687]],["parent/866",[391,4.385]],["name/867",[401,72.687]],["parent/867",[391,4.385]],["name/868",[402,72.687]],["parent/868",[391,4.385]],["name/869",[403,72.687]],["parent/869",[391,4.385]],["name/870",[404,72.687]],["parent/870",[391,4.385]],["name/871",[405,72.687]],["parent/871",[391,4.385]],["name/872",[406,72.687]],["parent/872",[391,4.385]],["name/873",[407,72.687]],["parent/873",[391,4.385]],["name/874",[408,72.687]],["parent/874",[391,4.385]],["name/875",[409,72.687]],["parent/875",[391,4.385]],["name/876",[410,72.687]],["parent/876",[391,4.385]],["name/877",[411,72.687]],["parent/877",[391,4.385]],["name/878",[412,72.687]],["parent/878",[391,4.385]],["name/879",[413,72.687]],["parent/879",[391,4.385]],["name/880",[414,61.701]],["parent/880",[]],["name/881",[58,41.929]],["parent/881",[414,6.046]],["name/882",[415,72.687]],["parent/882",[414,6.046]],["name/883",[416,72.687]],["parent/883",[414,6.046]],["name/884",[417,43.242]],["parent/884",[]],["name/885",[58,41.929]],["parent/885",[417,4.237]],["name/886",[88,67.579]],["parent/886",[417,4.237]],["name/887",[89,67.579]],["parent/887",[417,4.237]],["name/888",[418,72.687]],["parent/888",[417,4.237]],["name/889",[419,72.687]],["parent/889",[417,4.237]],["name/890",[420,72.687]],["parent/890",[417,4.237]],["name/891",[90,67.579]],["parent/891",[417,4.237]],["name/892",[91,67.579]],["parent/892",[417,4.237]],["name/893",[92,64.214]],["parent/893",[417,4.237]],["name/894",[93,64.214]],["parent/894",[417,4.237]],["name/895",[421,72.687]],["parent/895",[417,4.237]],["name/896",[422,72.687]],["parent/896",[417,4.237]],["name/897",[423,72.687]],["parent/897",[417,4.237]],["name/898",[424,72.687]],["parent/898",[417,4.237]],["name/899",[94,64.214]],["parent/899",[417,4.237]],["name/900",[95,64.214]],["parent/900",[417,4.237]],["name/901",[425,72.687]],["parent/901",[417,4.237]],["name/902",[426,72.687]],["parent/902",[417,4.237]],["name/903",[98,67.579]],["parent/903",[417,4.237]],["name/904",[99,67.579]],["parent/904",[417,4.237]],["name/905",[427,64.214]],["parent/905",[417,4.237]],["name/906",[100,67.579]],["parent/906",[417,4.237]],["name/907",[101,67.579]],["parent/907",[417,4.237]],["name/908",[428,72.687]],["parent/908",[417,4.237]],["name/909",[429,72.687]],["parent/909",[417,4.237]],["name/910",[430,72.687]],["parent/910",[417,4.237]],["name/911",[431,72.687]],["parent/911",[417,4.237]],["name/912",[432,50]],["parent/912",[]],["name/913",[58,41.929]],["parent/913",[432,4.899]],["name/914",[433,72.687]],["parent/914",[432,4.899]],["name/915",[434,67.579]],["parent/915",[432,4.899]],["name/916",[435,72.687]],["parent/916",[432,4.899]],["name/917",[436,72.687]],["parent/917",[432,4.899]],["name/918",[437,67.579]],["parent/918",[432,4.899]],["name/919",[438,72.687]],["parent/919",[432,4.899]],["name/920",[439,72.687]],["parent/920",[432,4.899]],["name/921",[440,72.687]],["parent/921",[432,4.899]],["name/922",[441,72.687]],["parent/922",[432,4.899]],["name/923",[442,72.687]],["parent/923",[432,4.899]],["name/924",[443,72.687]],["parent/924",[432,4.899]],["name/925",[444,72.687]],["parent/925",[432,4.899]],["name/926",[445,58.024]],["parent/926",[]],["name/927",[58,41.929]],["parent/927",[445,5.685]],["name/928",[434,67.579]],["parent/928",[445,5.685]],["name/929",[446,72.687]],["parent/929",[445,5.685]],["name/930",[437,67.579]],["parent/930",[445,5.685]],["name/931",[447,72.687]],["parent/931",[445,5.685]],["name/932",[448,55.341]],["parent/932",[]],["name/933",[58,41.929]],["parent/933",[448,5.423]],["name/934",[377,64.214]],["parent/934",[448,5.423]],["name/935",[378,64.214]],["parent/935",[448,5.423]],["name/936",[379,64.214]],["parent/936",[448,5.423]],["name/937",[380,64.214]],["parent/937",[448,5.423]],["name/938",[381,64.214]],["parent/938",[448,5.423]],["name/939",[382,64.214]],["parent/939",[448,5.423]],["name/940",[449,51.484]],["parent/940",[]],["name/941",[58,41.929]],["parent/941",[449,5.045]],["name/942",[230,55.341]],["parent/942",[449,5.045]],["name/943",[231,55.341]],["parent/943",[449,5.045]],["name/944",[377,64.214]],["parent/944",[449,5.045]],["name/945",[378,64.214]],["parent/945",[449,5.045]],["name/946",[232,56.592]],["parent/946",[449,5.045]],["name/947",[233,56.592]],["parent/947",[449,5.045]],["name/948",[450,72.687]],["parent/948",[449,5.045]],["name/949",[451,72.687]],["parent/949",[449,5.045]],["name/950",[452,72.687]],["parent/950",[449,5.045]],["name/951",[453,72.687]],["parent/951",[449,5.045]],["name/952",[454,52.318]],["parent/952",[]],["name/953",[58,41.929]],["parent/953",[454,5.126]],["name/954",[199,64.214]],["parent/954",[454,5.126]],["name/955",[230,55.341]],["parent/955",[454,5.126]],["name/956",[231,55.341]],["parent/956",[454,5.126]],["name/957",[232,56.592]],["parent/957",[454,5.126]],["name/958",[233,56.592]],["parent/958",[454,5.126]],["name/959",[150,49.333]],["parent/959",[454,5.126]],["name/960",[151,54.229]],["parent/960",[454,5.126]],["name/961",[455,67.579]],["parent/961",[454,5.126]],["name/962",[456,67.579]],["parent/962",[454,5.126]],["name/963",[457,54.229]],["parent/963",[]],["name/964",[58,41.929]],["parent/964",[457,5.314]],["name/965",[458,72.687]],["parent/965",[457,5.314]],["name/966",[459,72.687]],["parent/966",[457,5.314]],["name/967",[460,72.687]],["parent/967",[457,5.314]],["name/968",[461,72.687]],["parent/968",[457,5.314]],["name/969",[462,72.687]],["parent/969",[457,5.314]],["name/970",[463,72.687]],["parent/970",[457,5.314]],["name/971",[464,34.921]],["parent/971",[]],["name/972",[58,41.929]],["parent/972",[464,3.422]],["name/973",[105,56.592]],["parent/973",[464,3.422]],["name/974",[106,56.592]],["parent/974",[464,3.422]],["name/975",[107,56.592]],["parent/975",[464,3.422]],["name/976",[108,56.592]],["parent/976",[464,3.422]],["name/977",[109,56.592]],["parent/977",[464,3.422]],["name/978",[110,56.592]],["parent/978",[464,3.422]],["name/979",[111,56.592]],["parent/979",[464,3.422]],["name/980",[112,56.592]],["parent/980",[464,3.422]],["name/981",[113,56.592]],["parent/981",[464,3.422]],["name/982",[114,56.592]],["parent/982",[464,3.422]],["name/983",[115,56.592]],["parent/983",[464,3.422]],["name/984",[116,56.592]],["parent/984",[464,3.422]],["name/985",[117,56.592]],["parent/985",[464,3.422]],["name/986",[118,56.592]],["parent/986",[464,3.422]],["name/987",[119,56.592]],["parent/987",[464,3.422]],["name/988",[120,56.592]],["parent/988",[464,3.422]],["name/989",[121,56.592]],["parent/989",[464,3.422]],["name/990",[124,53.228]],["parent/990",[464,3.422]],["name/991",[125,53.228]],["parent/991",[464,3.422]],["name/992",[128,56.592]],["parent/992",[464,3.422]],["name/993",[129,56.592]],["parent/993",[464,3.422]],["name/994",[130,56.592]],["parent/994",[464,3.422]],["name/995",[131,56.592]],["parent/995",[464,3.422]],["name/996",[132,56.592]],["parent/996",[464,3.422]],["name/997",[133,56.592]],["parent/997",[464,3.422]],["name/998",[134,56.592]],["parent/998",[464,3.422]],["name/999",[135,56.592]],["parent/999",[464,3.422]],["name/1000",[136,56.592]],["parent/1000",[464,3.422]],["name/1001",[137,56.592]],["parent/1001",[464,3.422]],["name/1002",[140,54.229]],["parent/1002",[464,3.422]],["name/1003",[141,54.229]],["parent/1003",[464,3.422]],["name/1004",[142,54.229]],["parent/1004",[464,3.422]],["name/1005",[143,54.229]],["parent/1005",[464,3.422]],["name/1006",[144,54.229]],["parent/1006",[464,3.422]],["name/1007",[145,54.229]],["parent/1007",[464,3.422]],["name/1008",[146,54.229]],["parent/1008",[464,3.422]],["name/1009",[147,54.229]],["parent/1009",[464,3.422]],["name/1010",[148,56.592]],["parent/1010",[464,3.422]],["name/1011",[149,56.592]],["parent/1011",[464,3.422]],["name/1012",[150,49.333]],["parent/1012",[464,3.422]],["name/1013",[151,54.229]],["parent/1013",[464,3.422]],["name/1014",[152,56.592]],["parent/1014",[464,3.422]],["name/1015",[153,56.592]],["parent/1015",[464,3.422]],["name/1016",[154,56.592]],["parent/1016",[464,3.422]],["name/1017",[155,56.592]],["parent/1017",[464,3.422]],["name/1018",[156,56.592]],["parent/1018",[464,3.422]],["name/1019",[157,56.592]],["parent/1019",[464,3.422]],["name/1020",[158,56.592]],["parent/1020",[464,3.422]],["name/1021",[159,56.592]],["parent/1021",[464,3.422]],["name/1022",[160,56.592]],["parent/1022",[464,3.422]],["name/1023",[161,56.592]],["parent/1023",[464,3.422]],["name/1024",[162,56.592]],["parent/1024",[464,3.422]],["name/1025",[163,56.592]],["parent/1025",[464,3.422]],["name/1026",[164,56.592]],["parent/1026",[464,3.422]],["name/1027",[165,56.592]],["parent/1027",[464,3.422]],["name/1028",[166,54.229]],["parent/1028",[464,3.422]],["name/1029",[167,54.229]],["parent/1029",[464,3.422]],["name/1030",[170,56.592]],["parent/1030",[464,3.422]],["name/1031",[171,56.592]],["parent/1031",[464,3.422]],["name/1032",[172,56.592]],["parent/1032",[464,3.422]],["name/1033",[173,56.592]],["parent/1033",[464,3.422]],["name/1034",[174,56.592]],["parent/1034",[464,3.422]],["name/1035",[175,56.592]],["parent/1035",[464,3.422]],["name/1036",[465,36.399]],["parent/1036",[]],["name/1037",[58,41.929]],["parent/1037",[465,3.567]],["name/1038",[466,72.687]],["parent/1038",[465,3.567]],["name/1039",[467,72.687]],["parent/1039",[465,3.567]],["name/1040",[468,72.687]],["parent/1040",[465,3.567]],["name/1041",[469,72.687]],["parent/1041",[465,3.567]],["name/1042",[470,72.687]],["parent/1042",[465,3.567]],["name/1043",[471,72.687]],["parent/1043",[465,3.567]],["name/1044",[472,72.687]],["parent/1044",[465,3.567]],["name/1045",[473,72.687]],["parent/1045",[465,3.567]],["name/1046",[241,67.579]],["parent/1046",[465,3.567]],["name/1047",[242,67.579]],["parent/1047",[465,3.567]],["name/1048",[243,67.579]],["parent/1048",[465,3.567]],["name/1049",[244,67.579]],["parent/1049",[465,3.567]],["name/1050",[474,72.687]],["parent/1050",[465,3.567]],["name/1051",[475,72.687]],["parent/1051",[465,3.567]],["name/1052",[245,67.579]],["parent/1052",[465,3.567]],["name/1053",[246,67.579]],["parent/1053",[465,3.567]],["name/1054",[247,67.579]],["parent/1054",[465,3.567]],["name/1055",[248,67.579]],["parent/1055",[465,3.567]],["name/1056",[249,64.214]],["parent/1056",[465,3.567]],["name/1057",[250,67.579]],["parent/1057",[465,3.567]],["name/1058",[476,72.687]],["parent/1058",[465,3.567]],["name/1059",[477,72.687]],["parent/1059",[465,3.567]],["name/1060",[478,72.687]],["parent/1060",[465,3.567]],["name/1061",[479,72.687]],["parent/1061",[465,3.567]],["name/1062",[480,72.687]],["parent/1062",[465,3.567]],["name/1063",[481,72.687]],["parent/1063",[465,3.567]],["name/1064",[482,72.687]],["parent/1064",[465,3.567]],["name/1065",[483,72.687]],["parent/1065",[465,3.567]],["name/1066",[484,72.687]],["parent/1066",[465,3.567]],["name/1067",[485,72.687]],["parent/1067",[465,3.567]],["name/1068",[486,72.687]],["parent/1068",[465,3.567]],["name/1069",[487,72.687]],["parent/1069",[465,3.567]],["name/1070",[488,72.687]],["parent/1070",[465,3.567]],["name/1071",[489,72.687]],["parent/1071",[465,3.567]],["name/1072",[490,72.687]],["parent/1072",[465,3.567]],["name/1073",[491,72.687]],["parent/1073",[465,3.567]],["name/1074",[492,72.687]],["parent/1074",[465,3.567]],["name/1075",[493,72.687]],["parent/1075",[465,3.567]],["name/1076",[217,67.579]],["parent/1076",[465,3.567]],["name/1077",[218,67.579]],["parent/1077",[465,3.567]],["name/1078",[219,67.579]],["parent/1078",[465,3.567]],["name/1079",[220,67.579]],["parent/1079",[465,3.567]],["name/1080",[494,72.687]],["parent/1080",[465,3.567]],["name/1081",[495,72.687]],["parent/1081",[465,3.567]],["name/1082",[496,72.687]],["parent/1082",[465,3.567]],["name/1083",[497,72.687]],["parent/1083",[465,3.567]],["name/1084",[498,72.687]],["parent/1084",[465,3.567]],["name/1085",[499,72.687]],["parent/1085",[465,3.567]],["name/1086",[500,72.687]],["parent/1086",[465,3.567]],["name/1087",[501,72.687]],["parent/1087",[465,3.567]],["name/1088",[502,72.687]],["parent/1088",[465,3.567]],["name/1089",[503,72.687]],["parent/1089",[465,3.567]],["name/1090",[227,67.579]],["parent/1090",[465,3.567]],["name/1091",[228,67.579]],["parent/1091",[465,3.567]],["name/1092",[504,48.708]],["parent/1092",[]],["name/1093",[58,41.929]],["parent/1093",[504,4.773]],["name/1094",[199,64.214]],["parent/1094",[504,4.773]],["name/1095",[230,55.341]],["parent/1095",[504,4.773]],["name/1096",[231,55.341]],["parent/1096",[504,4.773]],["name/1097",[232,56.592]],["parent/1097",[504,4.773]],["name/1098",[233,56.592]],["parent/1098",[504,4.773]],["name/1099",[150,49.333]],["parent/1099",[504,4.773]],["name/1100",[151,54.229]],["parent/1100",[504,4.773]],["name/1101",[505,72.687]],["parent/1101",[504,4.773]],["name/1102",[506,72.687]],["parent/1102",[504,4.773]],["name/1103",[507,72.687]],["parent/1103",[504,4.773]],["name/1104",[455,67.579]],["parent/1104",[504,4.773]],["name/1105",[456,67.579]],["parent/1105",[504,4.773]],["name/1106",[508,72.687]],["parent/1106",[504,4.773]],["name/1107",[509,72.687]],["parent/1107",[504,4.773]],["name/1108",[510,48.12]],["parent/1108",[]],["name/1109",[511,64.214]],["parent/1109",[510,4.715]],["name/1110",[512,59.694]],["parent/1110",[]],["name/1111",[513,64.214]],["parent/1111",[512,5.849]],["name/1112",[514,64.214]],["parent/1112",[512,5.849]],["name/1113",[515,64.214]],["parent/1113",[512,5.849]],["name/1114",[516,64.214]],["parent/1114",[512,5.849]],["name/1115",[517,45.606]],["parent/1115",[]],["name/1116",[518,53.228]],["parent/1116",[517,4.469]],["name/1117",[519,54.229]],["parent/1117",[517,4.469]],["name/1118",[520,46.061]],["parent/1118",[517,4.469]],["name/1119",[521,49.333]],["parent/1119",[517,4.469]],["name/1120",[510,48.12]],["parent/1120",[517,4.469]],["name/1121",[522,49.333]],["parent/1121",[517,4.469]],["name/1122",[523,49.333]],["parent/1122",[517,4.469]],["name/1123",[524,48.708]],["parent/1123",[517,4.469]],["name/1124",[525,52.318]],["parent/1124",[517,4.469]],["name/1125",[526,53.228]],["parent/1125",[517,4.469]],["name/1126",[527,54.229]],["parent/1126",[517,4.469]],["name/1127",[528,45.172]],["parent/1127",[517,4.469]],["name/1128",[529,49.333]],["parent/1128",[517,4.469]],["name/1129",[530,48.12]],["parent/1129",[517,4.469]],["name/1130",[531,72.687]],["parent/1130",[517,4.469]],["name/1131",[532,72.687]],["parent/1131",[517,4.469]],["name/1132",[533,72.687]],["parent/1132",[517,4.469]],["name/1133",[534,72.687]],["parent/1133",[517,4.469]],["name/1134",[535,72.687]],["parent/1134",[517,4.469]],["name/1135",[536,72.687]],["parent/1135",[517,4.469]],["name/1136",[537,72.687]],["parent/1136",[517,4.469]],["name/1137",[538,53.228]],["parent/1137",[]],["name/1138",[25,56.592]],["parent/1138",[538,5.215]],["name/1139",[28,59.694]],["parent/1139",[538,5.215]],["name/1140",[539,67.579]],["parent/1140",[538,5.215]],["name/1141",[540,61.701]],["parent/1141",[538,5.215]],["name/1142",[541,67.579]],["parent/1142",[538,5.215]],["name/1143",[542,67.579]],["parent/1143",[538,5.215]],["name/1144",[543,67.579]],["parent/1144",[538,5.215]],["name/1145",[544,64.214]],["parent/1145",[538,5.215]],["name/1146",[545,58.024]],["parent/1146",[538,5.215]],["name/1147",[546,34.185]],["parent/1147",[]],["name/1148",[546,34.185]],["parent/1148",[546,3.35]],["name/1149",[547,67.579]],["parent/1149",[546,3.35]],["name/1150",[548,72.687]],["parent/1150",[546,3.35]],["name/1151",[549,72.687]],["parent/1151",[546,3.35]],["name/1152",[550,72.687]],["parent/1152",[546,3.35]],["name/1153",[551,72.687]],["parent/1153",[546,3.35]],["name/1154",[552,72.687]],["parent/1154",[546,3.35]],["name/1155",[553,72.687]],["parent/1155",[546,3.35]],["name/1156",[554,72.687]],["parent/1156",[546,3.35]],["name/1157",[555,72.687]],["parent/1157",[546,3.35]],["name/1158",[556,72.687]],["parent/1158",[546,3.35]],["name/1159",[557,72.687]],["parent/1159",[546,3.35]],["name/1160",[558,72.687]],["parent/1160",[546,3.35]],["name/1161",[559,72.687]],["parent/1161",[546,3.35]],["name/1162",[560,72.687]],["parent/1162",[546,3.35]],["name/1163",[561,72.687]],["parent/1163",[546,3.35]],["name/1164",[562,72.687]],["parent/1164",[546,3.35]],["name/1165",[563,72.687]],["parent/1165",[546,3.35]],["name/1166",[564,72.687]],["parent/1166",[546,3.35]],["name/1167",[565,72.687]],["parent/1167",[546,3.35]],["name/1168",[566,72.687]],["parent/1168",[546,3.35]],["name/1169",[567,72.687]],["parent/1169",[546,3.35]],["name/1170",[568,72.687]],["parent/1170",[546,3.35]],["name/1171",[569,72.687]],["parent/1171",[546,3.35]],["name/1172",[570,72.687]],["parent/1172",[546,3.35]],["name/1173",[571,72.687]],["parent/1173",[546,3.35]],["name/1174",[572,72.687]],["parent/1174",[546,3.35]],["name/1175",[573,72.687]],["parent/1175",[546,3.35]],["name/1176",[574,72.687]],["parent/1176",[546,3.35]],["name/1177",[575,72.687]],["parent/1177",[546,3.35]],["name/1178",[576,72.687]],["parent/1178",[546,3.35]],["name/1179",[577,72.687]],["parent/1179",[546,3.35]],["name/1180",[578,72.687]],["parent/1180",[546,3.35]],["name/1181",[579,72.687]],["parent/1181",[546,3.35]],["name/1182",[580,72.687]],["parent/1182",[546,3.35]],["name/1183",[581,72.687]],["parent/1183",[546,3.35]],["name/1184",[582,72.687]],["parent/1184",[546,3.35]],["name/1185",[583,72.687]],["parent/1185",[546,3.35]],["name/1186",[584,72.687]],["parent/1186",[546,3.35]],["name/1187",[585,72.687]],["parent/1187",[546,3.35]],["name/1188",[586,72.687]],["parent/1188",[546,3.35]],["name/1189",[587,72.687]],["parent/1189",[546,3.35]],["name/1190",[588,72.687]],["parent/1190",[546,3.35]],["name/1191",[589,72.687]],["parent/1191",[546,3.35]],["name/1192",[590,72.687]],["parent/1192",[546,3.35]],["name/1193",[591,72.687]],["parent/1193",[546,3.35]],["name/1194",[592,72.687]],["parent/1194",[546,3.35]],["name/1195",[593,72.687]],["parent/1195",[546,3.35]],["name/1196",[594,72.687]],["parent/1196",[546,3.35]],["name/1197",[595,72.687]],["parent/1197",[546,3.35]],["name/1198",[596,72.687]],["parent/1198",[546,3.35]],["name/1199",[597,72.687]],["parent/1199",[546,3.35]],["name/1200",[598,72.687]],["parent/1200",[546,3.35]],["name/1201",[599,72.687]],["parent/1201",[546,3.35]],["name/1202",[600,72.687]],["parent/1202",[546,3.35]],["name/1203",[601,72.687]],["parent/1203",[546,3.35]],["name/1204",[602,72.687]],["parent/1204",[546,3.35]],["name/1205",[603,72.687]],["parent/1205",[546,3.35]],["name/1206",[604,72.687]],["parent/1206",[546,3.35]],["name/1207",[605,72.687]],["parent/1207",[546,3.35]],["name/1208",[606,72.687]],["parent/1208",[546,3.35]],["name/1209",[607,72.687]],["parent/1209",[546,3.35]],["name/1210",[608,64.214]],["parent/1210",[546,3.35]],["name/1211",[609,72.687]],["parent/1211",[546,3.35]],["name/1212",[610,72.687]],["parent/1212",[546,3.35]],["name/1213",[611,72.687]],["parent/1213",[546,3.35]],["name/1214",[612,72.687]],["parent/1214",[546,3.35]],["name/1215",[613,72.687]],["parent/1215",[546,3.35]],["name/1216",[614,43.97]],["parent/1216",[]],["name/1217",[615,61.701]],["parent/1217",[614,4.308]],["name/1218",[616,72.687]],["parent/1218",[614,4.308]],["name/1219",[427,64.214]],["parent/1219",[614,4.308]],["name/1220",[617,72.687]],["parent/1220",[614,4.308]],["name/1221",[92,64.214]],["parent/1221",[614,4.308]],["name/1222",[93,64.214]],["parent/1222",[614,4.308]],["name/1223",[618,72.687]],["parent/1223",[614,4.308]],["name/1224",[619,72.687]],["parent/1224",[614,4.308]],["name/1225",[94,64.214]],["parent/1225",[614,4.308]],["name/1226",[95,64.214]],["parent/1226",[614,4.308]],["name/1227",[620,72.687]],["parent/1227",[614,4.308]],["name/1228",[621,72.687]],["parent/1228",[614,4.308]],["name/1229",[622,72.687]],["parent/1229",[614,4.308]],["name/1230",[623,72.687]],["parent/1230",[614,4.308]],["name/1231",[624,72.687]],["parent/1231",[614,4.308]],["name/1232",[625,72.687]],["parent/1232",[614,4.308]],["name/1233",[626,72.687]],["parent/1233",[614,4.308]],["name/1234",[627,72.687]],["parent/1234",[614,4.308]],["name/1235",[628,72.687]],["parent/1235",[614,4.308]],["name/1236",[629,72.687]],["parent/1236",[614,4.308]],["name/1237",[630,72.687]],["parent/1237",[614,4.308]],["name/1238",[631,72.687]],["parent/1238",[614,4.308]],["name/1239",[632,72.687]],["parent/1239",[614,4.308]],["name/1240",[633,72.687]],["parent/1240",[614,4.308]],["name/1241",[634,47.564]],["parent/1241",[]],["name/1242",[615,61.701]],["parent/1242",[634,4.66]],["name/1243",[614,43.97]],["parent/1243",[634,4.66]],["name/1244",[635,72.687]],["parent/1244",[634,4.66]],["name/1245",[636,72.687]],["parent/1245",[634,4.66]],["name/1246",[637,72.687]],["parent/1246",[634,4.66]],["name/1247",[638,72.687]],["parent/1247",[634,4.66]],["name/1248",[639,72.687]],["parent/1248",[634,4.66]],["name/1249",[640,72.687]],["parent/1249",[634,4.66]],["name/1250",[641,72.687]],["parent/1250",[634,4.66]],["name/1251",[642,72.687]],["parent/1251",[634,4.66]],["name/1252",[643,72.687]],["parent/1252",[634,4.66]],["name/1253",[644,72.687]],["parent/1253",[634,4.66]],["name/1254",[645,72.687]],["parent/1254",[634,4.66]],["name/1255",[646,72.687]],["parent/1255",[634,4.66]],["name/1256",[647,72.687]],["parent/1256",[634,4.66]],["name/1257",[648,72.687]],["parent/1257",[634,4.66]],["name/1258",[649,72.687]],["parent/1258",[634,4.66]],["name/1259",[650,42.242]],["parent/1259",[]],["name/1260",[651,64.214]],["parent/1260",[650,4.139]],["name/1261",[652,64.214]],["parent/1261",[650,4.139]],["name/1262",[516,64.214]],["parent/1262",[650,4.139]],["name/1263",[653,67.579]],["parent/1263",[650,4.139]],["name/1264",[654,67.579]],["parent/1264",[650,4.139]],["name/1265",[655,67.579]],["parent/1265",[650,4.139]],["name/1266",[656,67.579]],["parent/1266",[650,4.139]],["name/1267",[657,67.579]],["parent/1267",[650,4.139]],["name/1268",[658,67.579]],["parent/1268",[650,4.139]],["name/1269",[659,67.579]],["parent/1269",[650,4.139]],["name/1270",[660,72.687]],["parent/1270",[650,4.139]],["name/1271",[661,72.687]],["parent/1271",[650,4.139]],["name/1272",[662,72.687]],["parent/1272",[650,4.139]],["name/1273",[663,67.579]],["parent/1273",[650,4.139]],["name/1274",[664,67.579]],["parent/1274",[650,4.139]],["name/1275",[665,67.579]],["parent/1275",[650,4.139]],["name/1276",[666,67.579]],["parent/1276",[650,4.139]],["name/1277",[515,64.214]],["parent/1277",[650,4.139]],["name/1278",[513,64.214]],["parent/1278",[650,4.139]],["name/1279",[514,64.214]],["parent/1279",[650,4.139]],["name/1280",[667,67.579]],["parent/1280",[650,4.139]],["name/1281",[668,72.687]],["parent/1281",[650,4.139]],["name/1282",[545,58.024]],["parent/1282",[650,4.139]],["name/1283",[669,42.898]],["parent/1283",[650,4.139]],["name/1284",[670,67.579]],["parent/1284",[650,4.139]],["name/1285",[671,67.579]],["parent/1285",[650,4.139]],["name/1286",[672,61.701]],["parent/1286",[650,4.139]],["name/1287",[673,64.214]],["parent/1287",[650,4.139]],["name/1288",[674,67.579]],["parent/1288",[650,4.139]],["name/1289",[675,67.579]],["parent/1289",[650,4.139]],["name/1290",[676,46.537]],["parent/1290",[]],["name/1291",[677,72.687]],["parent/1291",[676,4.56]],["name/1292",[678,72.687]],["parent/1292",[676,4.56]],["name/1293",[679,72.687]],["parent/1293",[676,4.56]],["name/1294",[680,67.579]],["parent/1294",[676,4.56]],["name/1295",[681,64.214]],["parent/1295",[676,4.56]],["name/1296",[682,72.687]],["parent/1296",[676,4.56]],["name/1297",[683,72.687]],["parent/1297",[676,4.56]],["name/1298",[684,72.687]],["parent/1298",[676,4.56]],["name/1299",[685,72.687]],["parent/1299",[676,4.56]],["name/1300",[686,72.687]],["parent/1300",[676,4.56]],["name/1301",[687,72.687]],["parent/1301",[676,4.56]],["name/1302",[25,56.592]],["parent/1302",[676,4.56]],["name/1303",[28,59.694]],["parent/1303",[676,4.56]],["name/1304",[540,61.701]],["parent/1304",[676,4.56]],["name/1305",[688,72.687]],["parent/1305",[676,4.56]],["name/1306",[689,72.687]],["parent/1306",[676,4.56]],["name/1307",[528,45.172]],["parent/1307",[676,4.56]],["name/1308",[690,72.687]],["parent/1308",[676,4.56]],["name/1309",[691,72.687]],["parent/1309",[676,4.56]],["name/1310",[692,47.564]],["parent/1310",[]],["name/1311",[692,47.564]],["parent/1311",[692,4.66]],["name/1312",[427,64.214]],["parent/1312",[692,4.66]],["name/1313",[381,64.214]],["parent/1313",[692,4.66]],["name/1314",[382,64.214]],["parent/1314",[692,4.66]],["name/1315",[693,72.687]],["parent/1315",[692,4.66]],["name/1316",[694,72.687]],["parent/1316",[692,4.66]],["name/1317",[380,64.214]],["parent/1317",[692,4.66]],["name/1318",[379,64.214]],["parent/1318",[692,4.66]],["name/1319",[695,72.687]],["parent/1319",[692,4.66]],["name/1320",[696,72.687]],["parent/1320",[692,4.66]],["name/1321",[697,72.687]],["parent/1321",[692,4.66]],["name/1322",[698,72.687]],["parent/1322",[692,4.66]],["name/1323",[699,72.687]],["parent/1323",[692,4.66]],["name/1324",[700,72.687]],["parent/1324",[692,4.66]],["name/1325",[701,72.687]],["parent/1325",[692,4.66]],["name/1326",[702,72.687]],["parent/1326",[692,4.66]],["name/1327",[703,55.341]],["parent/1327",[]],["name/1328",[25,56.592]],["parent/1328",[703,5.423]],["name/1329",[704,72.687]],["parent/1329",[703,5.423]],["name/1330",[705,72.687]],["parent/1330",[703,5.423]],["name/1331",[706,72.687]],["parent/1331",[703,5.423]],["name/1332",[707,72.687]],["parent/1332",[703,5.423]],["name/1333",[708,72.687]],["parent/1333",[703,5.423]],["name/1334",[709,72.687]],["parent/1334",[703,5.423]],["name/1335",[710,64.214]],["parent/1335",[]],["name/1336",[711,64.214]],["parent/1336",[710,6.292]],["name/1337",[712,72.687]],["parent/1337",[710,6.292]],["name/1338",[713,47.564]],["parent/1338",[]],["name/1339",[714,54.229]],["parent/1339",[713,4.66]],["name/1340",[520,46.061]],["parent/1340",[713,4.66]],["name/1341",[521,49.333]],["parent/1341",[713,4.66]],["name/1342",[715,61.701]],["parent/1342",[713,4.66]],["name/1343",[711,64.214]],["parent/1343",[713,4.66]],["name/1344",[530,48.12]],["parent/1344",[713,4.66]],["name/1345",[716,56.592]],["parent/1345",[713,4.66]],["name/1346",[717,72.687]],["parent/1346",[713,4.66]],["name/1347",[718,72.687]],["parent/1347",[713,4.66]],["name/1348",[719,72.687]],["parent/1348",[713,4.66]],["name/1349",[720,64.214]],["parent/1349",[713,4.66]],["name/1350",[522,49.333]],["parent/1350",[713,4.66]],["name/1351",[523,49.333]],["parent/1351",[713,4.66]],["name/1352",[529,49.333]],["parent/1352",[713,4.66]],["name/1353",[524,48.708]],["parent/1353",[713,4.66]],["name/1354",[510,48.12]],["parent/1354",[713,4.66]],["name/1355",[528,45.172]],["parent/1355",[713,4.66]],["name/1356",[721,59.694]],["parent/1356",[]],["name/1357",[722,53.228]],["parent/1357",[721,5.849]],["name/1358",[723,72.687]],["parent/1358",[721,5.849]],["name/1359",[715,61.701]],["parent/1359",[721,5.849]],["name/1360",[724,67.579]],["parent/1360",[721,5.849]],["name/1361",[725,50.715]],["parent/1361",[]],["name/1362",[726,72.687]],["parent/1362",[725,4.969]],["name/1363",[727,72.687]],["parent/1363",[725,4.969]],["name/1364",[728,72.687]],["parent/1364",[725,4.969]],["name/1365",[729,72.687]],["parent/1365",[725,4.969]],["name/1366",[730,72.687]],["parent/1366",[725,4.969]],["name/1367",[731,72.687]],["parent/1367",[725,4.969]],["name/1368",[732,72.687]],["parent/1368",[725,4.969]],["name/1369",[733,72.687]],["parent/1369",[725,4.969]],["name/1370",[734,72.687]],["parent/1370",[725,4.969]],["name/1371",[735,72.687]],["parent/1371",[725,4.969]],["name/1372",[736,72.687]],["parent/1372",[725,4.969]],["name/1373",[737,72.687]],["parent/1373",[725,4.969]],["name/1374",[738,48.708]],["parent/1374",[]],["name/1375",[714,54.229]],["parent/1375",[738,4.773]],["name/1376",[715,61.701]],["parent/1376",[738,4.773]],["name/1377",[2,61.701]],["parent/1377",[738,4.773]],["name/1378",[739,72.687]],["parent/1378",[738,4.773]],["name/1379",[740,72.687]],["parent/1379",[738,4.773]],["name/1380",[741,72.687]],["parent/1380",[738,4.773]],["name/1381",[711,64.214]],["parent/1381",[738,4.773]],["name/1382",[742,72.687]],["parent/1382",[738,4.773]],["name/1383",[743,72.687]],["parent/1383",[738,4.773]],["name/1384",[744,72.687]],["parent/1384",[738,4.773]],["name/1385",[745,72.687]],["parent/1385",[738,4.773]],["name/1386",[746,72.687]],["parent/1386",[738,4.773]],["name/1387",[747,72.687]],["parent/1387",[738,4.773]],["name/1388",[748,72.687]],["parent/1388",[738,4.773]],["name/1389",[749,54.229]],["parent/1389",[]],["name/1390",[750,72.687]],["parent/1390",[749,5.314]],["name/1391",[751,72.687]],["parent/1391",[749,5.314]],["name/1392",[752,72.687]],["parent/1392",[749,5.314]],["name/1393",[753,72.687]],["parent/1393",[749,5.314]],["name/1394",[754,72.687]],["parent/1394",[749,5.314]],["name/1395",[755,72.687]],["parent/1395",[749,5.314]],["name/1396",[756,72.687]],["parent/1396",[749,5.314]],["name/1397",[545,58.024]],["parent/1397",[749,5.314]],["name/1398",[757,36.76]],["parent/1398",[]],["name/1399",[608,64.214]],["parent/1399",[757,3.602]],["name/1400",[758,72.687]],["parent/1400",[757,3.602]],["name/1401",[759,72.687]],["parent/1401",[757,3.602]],["name/1402",[760,72.687]],["parent/1402",[757,3.602]],["name/1403",[761,72.687]],["parent/1403",[757,3.602]],["name/1404",[762,72.687]],["parent/1404",[757,3.602]],["name/1405",[763,72.687]],["parent/1405",[757,3.602]],["name/1406",[764,72.687]],["parent/1406",[757,3.602]],["name/1407",[765,72.687]],["parent/1407",[757,3.602]],["name/1408",[766,72.687]],["parent/1408",[757,3.602]],["name/1409",[767,72.687]],["parent/1409",[757,3.602]],["name/1410",[768,72.687]],["parent/1410",[757,3.602]],["name/1411",[769,72.687]],["parent/1411",[757,3.602]],["name/1412",[770,72.687]],["parent/1412",[757,3.602]],["name/1413",[771,72.687]],["parent/1413",[757,3.602]],["name/1414",[772,72.687]],["parent/1414",[757,3.602]],["name/1415",[773,72.687]],["parent/1415",[757,3.602]],["name/1416",[774,72.687]],["parent/1416",[757,3.602]],["name/1417",[775,72.687]],["parent/1417",[757,3.602]],["name/1418",[776,72.687]],["parent/1418",[757,3.602]],["name/1419",[777,72.687]],["parent/1419",[757,3.602]],["name/1420",[778,72.687]],["parent/1420",[757,3.602]],["name/1421",[779,72.687]],["parent/1421",[757,3.602]],["name/1422",[780,72.687]],["parent/1422",[757,3.602]],["name/1423",[781,72.687]],["parent/1423",[757,3.602]],["name/1424",[782,72.687]],["parent/1424",[757,3.602]],["name/1425",[29,61.701]],["parent/1425",[757,3.602]],["name/1426",[783,72.687]],["parent/1426",[757,3.602]],["name/1427",[784,72.687]],["parent/1427",[757,3.602]],["name/1428",[785,72.687]],["parent/1428",[757,3.602]],["name/1429",[786,72.687]],["parent/1429",[757,3.602]],["name/1430",[787,72.687]],["parent/1430",[757,3.602]],["name/1431",[788,72.687]],["parent/1431",[757,3.602]],["name/1432",[789,72.687]],["parent/1432",[757,3.602]],["name/1433",[790,72.687]],["parent/1433",[757,3.602]],["name/1434",[791,72.687]],["parent/1434",[757,3.602]],["name/1435",[792,72.687]],["parent/1435",[757,3.602]],["name/1436",[793,72.687]],["parent/1436",[757,3.602]],["name/1437",[794,72.687]],["parent/1437",[757,3.602]],["name/1438",[795,72.687]],["parent/1438",[757,3.602]],["name/1439",[796,72.687]],["parent/1439",[757,3.602]],["name/1440",[797,72.687]],["parent/1440",[757,3.602]],["name/1441",[798,72.687]],["parent/1441",[757,3.602]],["name/1442",[799,72.687]],["parent/1442",[757,3.602]],["name/1443",[800,72.687]],["parent/1443",[757,3.602]],["name/1444",[801,72.687]],["parent/1444",[757,3.602]],["name/1445",[802,72.687]],["parent/1445",[757,3.602]],["name/1446",[803,72.687]],["parent/1446",[757,3.602]],["name/1447",[804,72.687]],["parent/1447",[757,3.602]],["name/1448",[805,72.687]],["parent/1448",[757,3.602]],["name/1449",[806,72.687]],["parent/1449",[757,3.602]],["name/1450",[807,72.687]],["parent/1450",[757,3.602]],["name/1451",[808,61.701]],["parent/1451",[]],["name/1452",[809,72.687]],["parent/1452",[808,6.046]],["name/1453",[810,72.687]],["parent/1453",[808,6.046]],["name/1454",[811,72.687]],["parent/1454",[808,6.046]],["name/1455",[669,42.898]],["parent/1455",[]],["name/1456",[669,42.898]],["parent/1456",[669,4.203]],["name/1457",[670,67.579]],["parent/1457",[669,4.203]],["name/1458",[671,67.579]],["parent/1458",[669,4.203]],["name/1459",[667,67.579]],["parent/1459",[669,4.203]],["name/1460",[663,67.579]],["parent/1460",[669,4.203]],["name/1461",[664,67.579]],["parent/1461",[669,4.203]],["name/1462",[665,67.579]],["parent/1462",[669,4.203]],["name/1463",[666,67.579]],["parent/1463",[669,4.203]],["name/1464",[651,64.214]],["parent/1464",[669,4.203]],["name/1465",[672,61.701]],["parent/1465",[669,4.203]],["name/1466",[652,64.214]],["parent/1466",[669,4.203]],["name/1467",[673,64.214]],["parent/1467",[669,4.203]],["name/1468",[516,64.214]],["parent/1468",[669,4.203]],["name/1469",[515,64.214]],["parent/1469",[669,4.203]],["name/1470",[513,64.214]],["parent/1470",[669,4.203]],["name/1471",[514,64.214]],["parent/1471",[669,4.203]],["name/1472",[653,67.579]],["parent/1472",[669,4.203]],["name/1473",[654,67.579]],["parent/1473",[669,4.203]],["name/1474",[655,67.579]],["parent/1474",[669,4.203]],["name/1475",[674,67.579]],["parent/1475",[669,4.203]],["name/1476",[656,67.579]],["parent/1476",[669,4.203]],["name/1477",[657,67.579]],["parent/1477",[669,4.203]],["name/1478",[658,67.579]],["parent/1478",[669,4.203]],["name/1479",[659,67.579]],["parent/1479",[669,4.203]],["name/1480",[675,67.579]],["parent/1480",[669,4.203]],["name/1481",[812,43.242]],["parent/1481",[]],["name/1482",[714,54.229]],["parent/1482",[812,4.237]],["name/1483",[2,61.701]],["parent/1483",[812,4.237]],["name/1484",[813,72.687]],["parent/1484",[812,4.237]],["name/1485",[25,56.592]],["parent/1485",[812,4.237]],["name/1486",[814,72.687]],["parent/1486",[812,4.237]],["name/1487",[815,72.687]],["parent/1487",[812,4.237]],["name/1488",[27,67.579]],["parent/1488",[812,4.237]],["name/1489",[816,72.687]],["parent/1489",[812,4.237]],["name/1490",[26,67.579]],["parent/1490",[812,4.237]],["name/1491",[817,72.687]],["parent/1491",[812,4.237]],["name/1492",[818,72.687]],["parent/1492",[812,4.237]],["name/1493",[24,67.579]],["parent/1493",[812,4.237]],["name/1494",[819,72.687]],["parent/1494",[812,4.237]],["name/1495",[820,72.687]],["parent/1495",[812,4.237]],["name/1496",[28,59.694]],["parent/1496",[812,4.237]],["name/1497",[821,72.687]],["parent/1497",[812,4.237]],["name/1498",[29,61.701]],["parent/1498",[812,4.237]],["name/1499",[822,72.687]],["parent/1499",[812,4.237]],["name/1500",[823,39.729]],["parent/1500",[812,4.237]],["name/1501",[824,67.579]],["parent/1501",[812,4.237]],["name/1502",[823,39.729]],["parent/1502",[812,4.237]],["name/1503",[824,67.579]],["parent/1503",[812,4.237]],["name/1504",[825,64.214]],["parent/1504",[812,4.237]],["name/1505",[826,72.687]],["parent/1505",[812,4.237]],["name/1506",[827,64.214]],["parent/1506",[812,4.237]],["name/1507",[828,72.687]],["parent/1507",[812,4.237]],["name/1508",[530,48.12]],["parent/1508",[812,4.237]],["name/1509",[829,39.729]],["parent/1509",[]],["name/1510",[519,54.229]],["parent/1510",[829,3.893]],["name/1511",[520,46.061]],["parent/1511",[829,3.893]],["name/1512",[521,49.333]],["parent/1512",[829,3.893]],["name/1513",[528,45.172]],["parent/1513",[829,3.893]],["name/1514",[525,52.318]],["parent/1514",[829,3.893]],["name/1515",[526,53.228]],["parent/1515",[829,3.893]],["name/1516",[527,54.229]],["parent/1516",[829,3.893]],["name/1517",[510,48.12]],["parent/1517",[829,3.893]],["name/1518",[522,49.333]],["parent/1518",[829,3.893]],["name/1519",[523,49.333]],["parent/1519",[829,3.893]],["name/1520",[529,49.333]],["parent/1520",[829,3.893]],["name/1521",[524,48.708]],["parent/1521",[829,3.893]],["name/1522",[830,72.687]],["parent/1522",[829,3.893]],["name/1523",[318,67.579]],["parent/1523",[829,3.893]],["name/1524",[831,67.579]],["parent/1524",[829,3.893]],["name/1525",[832,67.579]],["parent/1525",[829,3.893]],["name/1526",[833,67.579]],["parent/1526",[829,3.893]],["name/1527",[834,72.687]],["parent/1527",[829,3.893]],["name/1528",[835,72.687]],["parent/1528",[829,3.893]],["name/1529",[836,67.579]],["parent/1529",[829,3.893]],["name/1530",[837,64.214]],["parent/1530",[829,3.893]],["name/1531",[838,61.701]],["parent/1531",[829,3.893]],["name/1532",[839,61.701]],["parent/1532",[829,3.893]],["name/1533",[231,55.341]],["parent/1533",[829,3.893]],["name/1534",[230,55.341]],["parent/1534",[829,3.893]],["name/1535",[840,55.341]],["parent/1535",[829,3.893]],["name/1536",[841,67.579]],["parent/1536",[829,3.893]],["name/1537",[842,72.687]],["parent/1537",[829,3.893]],["name/1538",[843,72.687]],["parent/1538",[829,3.893]],["name/1539",[518,53.228]],["parent/1539",[829,3.893]],["name/1540",[844,72.687]],["parent/1540",[829,3.893]],["name/1541",[845,72.687]],["parent/1541",[829,3.893]],["name/1542",[846,67.579]],["parent/1542",[829,3.893]],["name/1543",[847,67.579]],["parent/1543",[829,3.893]],["name/1544",[827,64.214]],["parent/1544",[829,3.893]],["name/1545",[848,67.579]],["parent/1545",[829,3.893]],["name/1546",[849,67.579]],["parent/1546",[829,3.893]],["name/1547",[850,67.579]],["parent/1547",[829,3.893]],["name/1548",[851,72.687]],["parent/1548",[829,3.893]],["name/1549",[852,45.606]],["parent/1549",[]],["name/1550",[520,46.061]],["parent/1550",[852,4.469]],["name/1551",[521,49.333]],["parent/1551",[852,4.469]],["name/1552",[529,49.333]],["parent/1552",[852,4.469]],["name/1553",[523,49.333]],["parent/1553",[852,4.469]],["name/1554",[528,45.172]],["parent/1554",[852,4.469]],["name/1555",[510,48.12]],["parent/1555",[852,4.469]],["name/1556",[522,49.333]],["parent/1556",[852,4.469]],["name/1557",[524,48.708]],["parent/1557",[852,4.469]],["name/1558",[853,67.579]],["parent/1558",[852,4.469]],["name/1559",[854,72.687]],["parent/1559",[852,4.469]],["name/1560",[855,72.687]],["parent/1560",[852,4.469]],["name/1561",[840,55.341]],["parent/1561",[852,4.469]],["name/1562",[856,67.579]],["parent/1562",[852,4.469]],["name/1563",[857,72.687]],["parent/1563",[852,4.469]],["name/1564",[858,67.579]],["parent/1564",[852,4.469]],["name/1565",[859,72.687]],["parent/1565",[852,4.469]],["name/1566",[860,67.579]],["parent/1566",[852,4.469]],["name/1567",[861,67.579]],["parent/1567",[852,4.469]],["name/1568",[862,43.97]],["parent/1568",[852,4.469]],["name/1569",[2,61.701]],["parent/1569",[852,4.469]],["name/1570",[863,67.579]],["parent/1570",[852,4.469]],["name/1571",[864,46.061]],["parent/1571",[]],["name/1572",[865,72.687]],["parent/1572",[864,4.513]],["name/1573",[866,72.687]],["parent/1573",[864,4.513]],["name/1574",[262,54.229]],["parent/1574",[864,4.513]],["name/1575",[867,72.687]],["parent/1575",[864,4.513]],["name/1576",[868,72.687]],["parent/1576",[864,4.513]],["name/1577",[869,72.687]],["parent/1577",[864,4.513]],["name/1578",[870,58.024]],["parent/1578",[864,4.513]],["name/1579",[530,48.12]],["parent/1579",[864,4.513]],["name/1580",[871,72.687]],["parent/1580",[864,4.513]],["name/1581",[872,72.687]],["parent/1581",[864,4.513]],["name/1582",[873,72.687]],["parent/1582",[864,4.513]],["name/1583",[874,72.687]],["parent/1583",[864,4.513]],["name/1584",[875,72.687]],["parent/1584",[864,4.513]],["name/1585",[876,72.687]],["parent/1585",[864,4.513]],["name/1586",[528,45.172]],["parent/1586",[864,4.513]],["name/1587",[877,58.024]],["parent/1587",[864,4.513]],["name/1588",[716,56.592]],["parent/1588",[864,4.513]],["name/1589",[150,49.333]],["parent/1589",[864,4.513]],["name/1590",[878,67.579]],["parent/1590",[864,4.513]],["name/1591",[879,58.024]],["parent/1591",[864,4.513]],["name/1592",[880,61.701]],["parent/1592",[]],["name/1593",[881,67.579]],["parent/1593",[880,6.046]],["name/1594",[882,72.687]],["parent/1594",[880,6.046]],["name/1595",[883,72.687]],["parent/1595",[880,6.046]],["name/1596",[884,50.715]],["parent/1596",[]],["name/1597",[714,54.229]],["parent/1597",[884,4.969]],["name/1598",[885,72.687]],["parent/1598",[884,4.969]],["name/1599",[886,72.687]],["parent/1599",[884,4.969]],["name/1600",[827,64.214]],["parent/1600",[884,4.969]],["name/1601",[528,45.172]],["parent/1601",[884,4.969]],["name/1602",[825,64.214]],["parent/1602",[884,4.969]],["name/1603",[825,64.214]],["parent/1603",[884,4.969]],["name/1604",[887,67.579]],["parent/1604",[884,4.969]],["name/1605",[887,67.579]],["parent/1605",[884,4.969]],["name/1606",[720,64.214]],["parent/1606",[884,4.969]],["name/1607",[530,48.12]],["parent/1607",[884,4.969]],["name/1608",[888,67.579]],["parent/1608",[884,4.969]],["name/1609",[889,47.564]],["parent/1609",[]],["name/1610",[520,46.061]],["parent/1610",[889,4.66]],["name/1611",[521,49.333]],["parent/1611",[889,4.66]],["name/1612",[528,45.172]],["parent/1612",[889,4.66]],["name/1613",[510,48.12]],["parent/1613",[889,4.66]],["name/1614",[524,48.708]],["parent/1614",[889,4.66]],["name/1615",[522,49.333]],["parent/1615",[889,4.66]],["name/1616",[523,49.333]],["parent/1616",[889,4.66]],["name/1617",[529,49.333]],["parent/1617",[889,4.66]],["name/1618",[890,72.687]],["parent/1618",[889,4.66]],["name/1619",[891,72.687]],["parent/1619",[889,4.66]],["name/1620",[892,64.214]],["parent/1620",[889,4.66]],["name/1621",[893,72.687]],["parent/1621",[889,4.66]],["name/1622",[894,72.687]],["parent/1622",[889,4.66]],["name/1623",[895,72.687]],["parent/1623",[889,4.66]],["name/1624",[545,58.024]],["parent/1624",[889,4.66]],["name/1625",[896,72.687]],["parent/1625",[889,4.66]],["name/1626",[897,72.687]],["parent/1626",[889,4.66]],["name/1627",[898,39.014]],["parent/1627",[]],["name/1628",[520,46.061]],["parent/1628",[898,3.823]],["name/1629",[521,49.333]],["parent/1629",[898,3.823]],["name/1630",[528,45.172]],["parent/1630",[898,3.823]],["name/1631",[510,48.12]],["parent/1631",[898,3.823]],["name/1632",[522,49.333]],["parent/1632",[898,3.823]],["name/1633",[523,49.333]],["parent/1633",[898,3.823]],["name/1634",[529,49.333]],["parent/1634",[898,3.823]],["name/1635",[524,48.708]],["parent/1635",[898,3.823]],["name/1636",[853,67.579]],["parent/1636",[898,3.823]],["name/1637",[833,67.579]],["parent/1637",[898,3.823]],["name/1638",[899,72.687]],["parent/1638",[898,3.823]],["name/1639",[150,49.333]],["parent/1639",[898,3.823]],["name/1640",[900,72.687]],["parent/1640",[898,3.823]],["name/1641",[837,64.214]],["parent/1641",[898,3.823]],["name/1642",[838,61.701]],["parent/1642",[898,3.823]],["name/1643",[839,61.701]],["parent/1643",[898,3.823]],["name/1644",[901,67.579]],["parent/1644",[898,3.823]],["name/1645",[902,72.687]],["parent/1645",[898,3.823]],["name/1646",[903,72.687]],["parent/1646",[898,3.823]],["name/1647",[840,55.341]],["parent/1647",[898,3.823]],["name/1648",[856,67.579]],["parent/1648",[898,3.823]],["name/1649",[904,72.687]],["parent/1649",[898,3.823]],["name/1650",[905,72.687]],["parent/1650",[898,3.823]],["name/1651",[877,58.024]],["parent/1651",[898,3.823]],["name/1652",[716,56.592]],["parent/1652",[898,3.823]],["name/1653",[836,67.579]],["parent/1653",[898,3.823]],["name/1654",[860,67.579]],["parent/1654",[898,3.823]],["name/1655",[862,43.97]],["parent/1655",[898,3.823]],["name/1656",[906,72.687]],["parent/1656",[898,3.823]],["name/1657",[907,72.687]],["parent/1657",[898,3.823]],["name/1658",[908,72.687]],["parent/1658",[898,3.823]],["name/1659",[909,72.687]],["parent/1659",[898,3.823]],["name/1660",[910,72.687]],["parent/1660",[898,3.823]],["name/1661",[911,72.687]],["parent/1661",[898,3.823]],["name/1662",[912,72.687]],["parent/1662",[898,3.823]],["name/1663",[861,67.579]],["parent/1663",[898,3.823]],["name/1664",[847,67.579]],["parent/1664",[898,3.823]],["name/1665",[457,54.229]],["parent/1665",[898,3.823]],["name/1666",[863,67.579]],["parent/1666",[898,3.823]],["name/1667",[913,72.687]],["parent/1667",[898,3.823]],["name/1668",[914,72.687]],["parent/1668",[898,3.823]],["name/1669",[879,58.024]],["parent/1669",[898,3.823]],["name/1670",[915,41.046]],["parent/1670",[]],["name/1671",[518,53.228]],["parent/1671",[915,4.022]],["name/1672",[519,54.229]],["parent/1672",[915,4.022]],["name/1673",[528,45.172]],["parent/1673",[915,4.022]],["name/1674",[525,52.318]],["parent/1674",[915,4.022]],["name/1675",[526,53.228]],["parent/1675",[915,4.022]],["name/1676",[527,54.229]],["parent/1676",[915,4.022]],["name/1677",[916,72.687]],["parent/1677",[915,4.022]],["name/1678",[917,72.687]],["parent/1678",[915,4.022]],["name/1679",[918,72.687]],["parent/1679",[915,4.022]],["name/1680",[919,72.687]],["parent/1680",[915,4.022]],["name/1681",[831,67.579]],["parent/1681",[915,4.022]],["name/1682",[832,67.579]],["parent/1682",[915,4.022]],["name/1683",[840,55.341]],["parent/1683",[915,4.022]],["name/1684",[841,67.579]],["parent/1684",[915,4.022]],["name/1685",[858,67.579]],["parent/1685",[915,4.022]],["name/1686",[920,72.687]],["parent/1686",[915,4.022]],["name/1687",[870,58.024]],["parent/1687",[915,4.022]],["name/1688",[524,48.708]],["parent/1688",[915,4.022]],["name/1689",[921,72.687]],["parent/1689",[915,4.022]],["name/1690",[922,67.579]],["parent/1690",[915,4.022]],["name/1691",[530,48.12]],["parent/1691",[915,4.022]],["name/1692",[923,72.687]],["parent/1692",[915,4.022]],["name/1693",[924,72.687]],["parent/1693",[915,4.022]],["name/1694",[925,72.687]],["parent/1694",[915,4.022]],["name/1695",[926,72.687]],["parent/1695",[915,4.022]],["name/1696",[927,72.687]],["parent/1696",[915,4.022]],["name/1697",[928,72.687]],["parent/1697",[915,4.022]],["name/1698",[849,67.579]],["parent/1698",[915,4.022]],["name/1699",[929,72.687]],["parent/1699",[915,4.022]],["name/1700",[846,67.579]],["parent/1700",[915,4.022]],["name/1701",[848,67.579]],["parent/1701",[915,4.022]],["name/1702",[850,67.579]],["parent/1702",[915,4.022]],["name/1703",[930,72.687]],["parent/1703",[915,4.022]],["name/1704",[931,72.687]],["parent/1704",[915,4.022]],["name/1705",[932,46.061]],["parent/1705",[]],["name/1706",[881,67.579]],["parent/1706",[932,4.513]],["name/1707",[933,72.687]],["parent/1707",[932,4.513]],["name/1708",[43,67.579]],["parent/1708",[932,4.513]],["name/1709",[934,72.687]],["parent/1709",[932,4.513]],["name/1710",[935,72.687]],["parent/1710",[932,4.513]],["name/1711",[936,72.687]],["parent/1711",[932,4.513]],["name/1712",[937,72.687]],["parent/1712",[932,4.513]],["name/1713",[938,72.687]],["parent/1713",[932,4.513]],["name/1714",[939,72.687]],["parent/1714",[932,4.513]],["name/1715",[940,72.687]],["parent/1715",[932,4.513]],["name/1716",[941,72.687]],["parent/1716",[932,4.513]],["name/1717",[942,72.687]],["parent/1717",[932,4.513]],["name/1718",[943,72.687]],["parent/1718",[932,4.513]],["name/1719",[944,67.579]],["parent/1719",[932,4.513]],["name/1720",[945,67.579]],["parent/1720",[932,4.513]],["name/1721",[946,72.687]],["parent/1721",[932,4.513]],["name/1722",[947,67.579]],["parent/1722",[932,4.513]],["name/1723",[948,72.687]],["parent/1723",[932,4.513]],["name/1724",[949,72.687]],["parent/1724",[932,4.513]],["name/1725",[950,72.687]],["parent/1725",[932,4.513]],["name/1726",[951,48.12]],["parent/1726",[]],["name/1727",[511,64.214]],["parent/1727",[951,4.715]],["name/1728",[520,46.061]],["parent/1728",[951,4.715]],["name/1729",[521,49.333]],["parent/1729",[951,4.715]],["name/1730",[952,72.687]],["parent/1730",[951,4.715]],["name/1731",[525,52.318]],["parent/1731",[951,4.715]],["name/1732",[518,53.228]],["parent/1732",[951,4.715]],["name/1733",[953,72.687]],["parent/1733",[951,4.715]],["name/1734",[954,72.687]],["parent/1734",[951,4.715]],["name/1735",[955,72.687]],["parent/1735",[951,4.715]],["name/1736",[956,72.687]],["parent/1736",[951,4.715]],["name/1737",[522,49.333]],["parent/1737",[951,4.715]],["name/1738",[523,49.333]],["parent/1738",[951,4.715]],["name/1739",[529,49.333]],["parent/1739",[951,4.715]],["name/1740",[524,48.708]],["parent/1740",[951,4.715]],["name/1741",[510,48.12]],["parent/1741",[951,4.715]],["name/1742",[528,45.172]],["parent/1742",[951,4.715]],["name/1743",[957,46.537]],["parent/1743",[]],["name/1744",[958,72.687]],["parent/1744",[957,4.56]],["name/1745",[959,72.687]],["parent/1745",[957,4.56]],["name/1746",[960,72.687]],["parent/1746",[957,4.56]],["name/1747",[547,67.579]],["parent/1747",[957,4.56]],["name/1748",[961,72.687]],["parent/1748",[957,4.56]],["name/1749",[962,72.687]],["parent/1749",[957,4.56]],["name/1750",[839,61.701]],["parent/1750",[957,4.56]],["name/1751",[963,72.687]],["parent/1751",[957,4.56]],["name/1752",[964,72.687]],["parent/1752",[957,4.56]],["name/1753",[965,72.687]],["parent/1753",[957,4.56]],["name/1754",[966,72.687]],["parent/1754",[957,4.56]],["name/1755",[525,52.318]],["parent/1755",[957,4.56]],["name/1756",[967,72.687]],["parent/1756",[957,4.56]],["name/1757",[608,64.214]],["parent/1757",[957,4.56]],["name/1758",[615,61.701]],["parent/1758",[957,4.56]],["name/1759",[968,72.687]],["parent/1759",[957,4.56]],["name/1760",[969,72.687]],["parent/1760",[957,4.56]],["name/1761",[970,72.687]],["parent/1761",[957,4.56]],["name/1762",[971,72.687]],["parent/1762",[957,4.56]],["name/1763",[972,52.318]],["parent/1763",[]],["name/1764",[973,72.687]],["parent/1764",[972,5.126]],["name/1765",[945,67.579]],["parent/1765",[972,5.126]],["name/1766",[947,67.579]],["parent/1766",[972,5.126]],["name/1767",[944,67.579]],["parent/1767",[972,5.126]],["name/1768",[974,72.687]],["parent/1768",[972,5.126]],["name/1769",[975,72.687]],["parent/1769",[972,5.126]],["name/1770",[976,72.687]],["parent/1770",[972,5.126]],["name/1771",[977,72.687]],["parent/1771",[972,5.126]],["name/1772",[978,72.687]],["parent/1772",[972,5.126]],["name/1773",[979,72.687]],["parent/1773",[972,5.126]],["name/1774",[980,49.333]],["parent/1774",[]],["name/1775",[25,56.592]],["parent/1775",[980,4.834]],["name/1776",[28,59.694]],["parent/1776",[980,4.834]],["name/1777",[540,61.701]],["parent/1777",[980,4.834]],["name/1778",[544,64.214]],["parent/1778",[980,4.834]],["name/1779",[545,58.024]],["parent/1779",[980,4.834]],["name/1780",[981,67.579]],["parent/1780",[980,4.834]],["name/1781",[539,67.579]],["parent/1781",[980,4.834]],["name/1782",[541,67.579]],["parent/1782",[980,4.834]],["name/1783",[543,67.579]],["parent/1783",[980,4.834]],["name/1784",[542,67.579]],["parent/1784",[980,4.834]],["name/1785",[530,48.12]],["parent/1785",[980,4.834]],["name/1786",[982,72.687]],["parent/1786",[980,4.834]],["name/1787",[983,72.687]],["parent/1787",[980,4.834]],["name/1788",[984,72.687]],["parent/1788",[980,4.834]],["name/1789",[985,67.579]],["parent/1789",[]],["name/1790",[986,72.687]],["parent/1790",[985,6.622]],["name/1791",[987,67.579]],["parent/1791",[]],["name/1792",[714,54.229]],["parent/1792",[987,6.622]],["name/1793",[722,53.228]],["parent/1793",[]],["name/1794",[988,64.214]],["parent/1794",[722,5.215]],["name/1795",[840,55.341]],["parent/1795",[722,5.215]],["name/1796",[724,67.579]],["parent/1796",[722,5.215]],["name/1797",[989,72.687]],["parent/1797",[722,5.215]],["name/1798",[990,72.687]],["parent/1798",[722,5.215]],["name/1799",[991,72.687]],["parent/1799",[722,5.215]],["name/1800",[992,72.687]],["parent/1800",[722,5.215]],["name/1801",[672,61.701]],["parent/1801",[722,5.215]],["name/1802",[993,48.708]],["parent/1802",[]],["name/1803",[520,46.061]],["parent/1803",[993,4.773]],["name/1804",[521,49.333]],["parent/1804",[993,4.773]],["name/1805",[528,45.172]],["parent/1805",[993,4.773]],["name/1806",[510,48.12]],["parent/1806",[993,4.773]],["name/1807",[522,49.333]],["parent/1807",[993,4.773]],["name/1808",[523,49.333]],["parent/1808",[993,4.773]],["name/1809",[529,49.333]],["parent/1809",[993,4.773]],["name/1810",[524,48.708]],["parent/1810",[993,4.773]],["name/1811",[994,72.687]],["parent/1811",[993,4.773]],["name/1812",[995,72.687]],["parent/1812",[993,4.773]],["name/1813",[988,64.214]],["parent/1813",[993,4.773]],["name/1814",[996,72.687]],["parent/1814",[993,4.773]],["name/1815",[997,72.687]],["parent/1815",[993,4.773]],["name/1816",[998,72.687]],["parent/1816",[993,4.773]],["name/1817",[999,72.687]],["parent/1817",[993,4.773]],["name/1818",[1000,51.484]],["parent/1818",[]],["name/1819",[1001,72.687]],["parent/1819",[1000,5.045]],["name/1820",[518,53.228]],["parent/1820",[1000,5.045]],["name/1821",[519,54.229]],["parent/1821",[1000,5.045]],["name/1822",[715,61.701]],["parent/1822",[1000,5.045]],["name/1823",[528,45.172]],["parent/1823",[1000,5.045]],["name/1824",[525,52.318]],["parent/1824",[1000,5.045]],["name/1825",[526,53.228]],["parent/1825",[1000,5.045]],["name/1826",[527,54.229]],["parent/1826",[1000,5.045]],["name/1827",[196,53.228]],["parent/1827",[1000,5.045]],["name/1828",[988,64.214]],["parent/1828",[1000,5.045]],["name/1829",[530,48.12]],["parent/1829",[1000,5.045]],["name/1830",[1002,49.333]],["parent/1830",[]],["name/1831",[1003,72.687]],["parent/1831",[1002,4.834]],["name/1832",[25,56.592]],["parent/1832",[1002,4.834]],["name/1833",[1004,72.687]],["parent/1833",[1002,4.834]],["name/1834",[1005,72.687]],["parent/1834",[1002,4.834]],["name/1835",[981,67.579]],["parent/1835",[1002,4.834]],["name/1836",[1006,72.687]],["parent/1836",[1002,4.834]],["name/1837",[1007,72.687]],["parent/1837",[1002,4.834]],["name/1838",[1008,72.687]],["parent/1838",[1002,4.834]],["name/1839",[1009,72.687]],["parent/1839",[1002,4.834]],["name/1840",[1010,72.687]],["parent/1840",[1002,4.834]],["name/1841",[540,61.701]],["parent/1841",[1002,4.834]],["name/1842",[544,64.214]],["parent/1842",[1002,4.834]],["name/1843",[545,58.024]],["parent/1843",[1002,4.834]],["name/1844",[1011,72.687]],["parent/1844",[1002,4.834]],["name/1845",[1012,64.214]],["parent/1845",[]],["name/1846",[1013,67.579]],["parent/1846",[1012,6.292]],["name/1847",[892,64.214]],["parent/1847",[1012,6.292]],["name/1848",[1014,61.701]],["parent/1848",[]],["name/1849",[714,54.229]],["parent/1849",[1014,6.046]],["name/1850",[31,67.579]],["parent/1850",[1014,6.046]],["name/1851",[530,48.12]],["parent/1851",[1014,6.046]],["name/1852",[1015,56.592]],["parent/1852",[]],["name/1853",[714,54.229]],["parent/1853",[1015,5.545]],["name/1854",[1016,72.687]],["parent/1854",[1015,5.545]],["name/1855",[1017,72.687]],["parent/1855",[1015,5.545]],["name/1856",[720,64.214]],["parent/1856",[1015,5.545]],["name/1857",[530,48.12]],["parent/1857",[1015,5.545]],["name/1858",[888,67.579]],["parent/1858",[1015,5.545]],["name/1859",[862,43.97]],["parent/1859",[]],["name/1860",[518,53.228]],["parent/1860",[862,4.308]],["name/1861",[519,54.229]],["parent/1861",[862,4.308]],["name/1862",[520,46.061]],["parent/1862",[862,4.308]],["name/1863",[521,49.333]],["parent/1863",[862,4.308]],["name/1864",[528,45.172]],["parent/1864",[862,4.308]],["name/1865",[510,48.12]],["parent/1865",[862,4.308]],["name/1866",[522,49.333]],["parent/1866",[862,4.308]],["name/1867",[523,49.333]],["parent/1867",[862,4.308]],["name/1868",[529,49.333]],["parent/1868",[862,4.308]],["name/1869",[524,48.708]],["parent/1869",[862,4.308]],["name/1870",[525,52.318]],["parent/1870",[862,4.308]],["name/1871",[526,53.228]],["parent/1871",[862,4.308]],["name/1872",[527,54.229]],["parent/1872",[862,4.308]],["name/1873",[1018,72.687]],["parent/1873",[862,4.308]],["name/1874",[922,67.579]],["parent/1874",[862,4.308]],["name/1875",[877,58.024]],["parent/1875",[862,4.308]],["name/1876",[716,56.592]],["parent/1876",[862,4.308]],["name/1877",[530,48.12]],["parent/1877",[862,4.308]],["name/1878",[870,58.024]],["parent/1878",[862,4.308]],["name/1879",[1019,72.687]],["parent/1879",[862,4.308]],["name/1880",[150,49.333]],["parent/1880",[862,4.308]],["name/1881",[878,67.579]],["parent/1881",[862,4.308]],["name/1882",[879,58.024]],["parent/1882",[862,4.308]],["name/1883",[520,46.061]],["parent/1883",[]],["name/1884",[1020,72.687]],["parent/1884",[520,4.513]],["name/1885",[1021,72.687]],["parent/1885",[520,4.513]],["name/1886",[1022,72.687]],["parent/1886",[520,4.513]],["name/1887",[1023,72.687]],["parent/1887",[520,4.513]],["name/1888",[530,48.12]],["parent/1888",[520,4.513]],["name/1889",[1024,55.341]],["parent/1889",[]],["name/1890",[1024,55.341]],["parent/1890",[1024,5.423]],["name/1891",[651,64.214]],["parent/1891",[1024,5.423]],["name/1892",[672,61.701]],["parent/1892",[1024,5.423]],["name/1893",[652,64.214]],["parent/1893",[1024,5.423]],["name/1894",[673,64.214]],["parent/1894",[1024,5.423]],["name/1895",[669,42.898]],["parent/1895",[1024,5.423]],["name/1896",[1025,56.592]],["parent/1896",[]],["name/1897",[1025,56.592]],["parent/1897",[1025,5.545]],["name/1898",[526,53.228]],["parent/1898",[1025,5.545]],["name/1899",[1026,72.687]],["parent/1899",[1025,5.545]],["name/1900",[1027,72.687]],["parent/1900",[1025,5.545]],["name/1901",[1028,72.687]],["parent/1901",[1025,5.545]],["name/1902",[1029,54.229]],["parent/1902",[]],["name/1903",[528,45.172]],["parent/1903",[1029,5.314]],["name/1904",[510,48.12]],["parent/1904",[1029,5.314]],["name/1905",[522,49.333]],["parent/1905",[1029,5.314]],["name/1906",[523,49.333]],["parent/1906",[1029,5.314]],["name/1907",[529,49.333]],["parent/1907",[1029,5.314]],["name/1908",[524,48.708]],["parent/1908",[1029,5.314]],["name/1909",[520,46.061]],["parent/1909",[1029,5.314]],["name/1910",[521,49.333]],["parent/1910",[1029,5.314]],["name/1911",[1030,48.708]],["parent/1911",[]],["name/1912",[520,46.061]],["parent/1912",[1030,4.773]],["name/1913",[521,49.333]],["parent/1913",[1030,4.773]],["name/1914",[1031,72.687]],["parent/1914",[1030,4.773]],["name/1915",[1032,72.687]],["parent/1915",[1030,4.773]],["name/1916",[1033,72.687]],["parent/1916",[1030,4.773]],["name/1917",[1034,72.687]],["parent/1917",[1030,4.773]],["name/1918",[1035,72.687]],["parent/1918",[1030,4.773]],["name/1919",[1036,72.687]],["parent/1919",[1030,4.773]],["name/1920",[511,64.214]],["parent/1920",[1030,4.773]],["name/1921",[528,45.172]],["parent/1921",[1030,4.773]],["name/1922",[510,48.12]],["parent/1922",[1030,4.773]],["name/1923",[522,49.333]],["parent/1923",[1030,4.773]],["name/1924",[529,49.333]],["parent/1924",[1030,4.773]],["name/1925",[523,49.333]],["parent/1925",[1030,4.773]],["name/1926",[524,48.708]],["parent/1926",[1030,4.773]],["name/1927",[1037,56.592]],["parent/1927",[]],["name/1928",[1038,72.687]],["parent/1928",[1037,5.545]],["name/1929",[1039,72.687]],["parent/1929",[1037,5.545]],["name/1930",[1040,72.687]],["parent/1930",[1037,5.545]],["name/1931",[1041,72.687]],["parent/1931",[1037,5.545]],["name/1932",[29,61.701]],["parent/1932",[1037,5.545]],["name/1933",[615,61.701]],["parent/1933",[1037,5.545]],["name/1934",[1042,38.787]],["parent/1934",[]],["name/1935",[518,53.228]],["parent/1935",[1042,3.8]],["name/1936",[519,54.229]],["parent/1936",[1042,3.8]],["name/1937",[520,46.061]],["parent/1937",[1042,3.8]],["name/1938",[521,49.333]],["parent/1938",[1042,3.8]],["name/1939",[1043,64.214]],["parent/1939",[1042,3.8]],["name/1940",[1044,64.214]],["parent/1940",[1042,3.8]],["name/1941",[1045,64.214]],["parent/1941",[1042,3.8]],["name/1942",[1046,61.701]],["parent/1942",[1042,3.8]],["name/1943",[1047,61.701]],["parent/1943",[1042,3.8]],["name/1944",[840,55.341]],["parent/1944",[1042,3.8]],["name/1945",[1048,64.214]],["parent/1945",[1042,3.8]],["name/1946",[1049,64.214]],["parent/1946",[1042,3.8]],["name/1947",[1050,64.214]],["parent/1947",[1042,3.8]],["name/1948",[1051,64.214]],["parent/1948",[1042,3.8]],["name/1949",[1052,64.214]],["parent/1949",[1042,3.8]],["name/1950",[530,48.12]],["parent/1950",[1042,3.8]],["name/1951",[877,58.024]],["parent/1951",[1042,3.8]],["name/1952",[716,56.592]],["parent/1952",[1042,3.8]],["name/1953",[150,49.333]],["parent/1953",[1042,3.8]],["name/1954",[1053,64.214]],["parent/1954",[1042,3.8]],["name/1955",[528,45.172]],["parent/1955",[1042,3.8]],["name/1956",[510,48.12]],["parent/1956",[1042,3.8]],["name/1957",[522,49.333]],["parent/1957",[1042,3.8]],["name/1958",[523,49.333]],["parent/1958",[1042,3.8]],["name/1959",[529,49.333]],["parent/1959",[1042,3.8]],["name/1960",[524,48.708]],["parent/1960",[1042,3.8]],["name/1961",[525,52.318]],["parent/1961",[1042,3.8]],["name/1962",[526,53.228]],["parent/1962",[1042,3.8]],["name/1963",[527,54.229]],["parent/1963",[1042,3.8]],["name/1964",[1054,64.214]],["parent/1964",[1042,3.8]],["name/1965",[1055,64.214]],["parent/1965",[1042,3.8]],["name/1966",[1056,64.214]],["parent/1966",[1042,3.8]],["name/1967",[1057,64.214]],["parent/1967",[1042,3.8]],["name/1968",[1058,64.214]],["parent/1968",[1042,3.8]],["name/1969",[870,58.024]],["parent/1969",[1042,3.8]],["name/1970",[1059,64.214]],["parent/1970",[1042,3.8]],["name/1971",[837,64.214]],["parent/1971",[1042,3.8]],["name/1972",[838,61.701]],["parent/1972",[1042,3.8]],["name/1973",[839,61.701]],["parent/1973",[1042,3.8]],["name/1974",[1060,72.687]],["parent/1974",[1042,3.8]],["name/1975",[1061,72.687]],["parent/1975",[1042,3.8]],["name/1976",[1062,72.687]],["parent/1976",[1042,3.8]],["name/1977",[879,58.024]],["parent/1977",[1042,3.8]],["name/1978",[1063,51.484]],["parent/1978",[]],["name/1979",[1064,72.687]],["parent/1979",[1063,5.045]],["name/1980",[1065,72.687]],["parent/1980",[1063,5.045]],["name/1981",[1066,72.687]],["parent/1981",[1063,5.045]],["name/1982",[1067,72.687]],["parent/1982",[1063,5.045]],["name/1983",[1068,72.687]],["parent/1983",[1063,5.045]],["name/1984",[1069,72.687]],["parent/1984",[1063,5.045]],["name/1985",[1070,72.687]],["parent/1985",[1063,5.045]],["name/1986",[1071,72.687]],["parent/1986",[1063,5.045]],["name/1987",[1072,72.687]],["parent/1987",[1063,5.045]],["name/1988",[1073,72.687]],["parent/1988",[1063,5.045]],["name/1989",[1074,58.024]],["parent/1989",[]],["name/1990",[1075,72.687]],["parent/1990",[1074,5.685]],["name/1991",[1076,72.687]],["parent/1991",[1074,5.685]],["name/1992",[901,67.579]],["parent/1992",[1074,5.685]],["name/1993",[1077,67.579]],["parent/1993",[1074,5.685]],["name/1994",[838,61.701]],["parent/1994",[1074,5.685]],["name/1995",[1078,55.341]],["parent/1995",[]],["name/1996",[1013,67.579]],["parent/1996",[1078,5.423]],["name/1997",[1079,72.687]],["parent/1997",[1078,5.423]],["name/1998",[1077,67.579]],["parent/1998",[1078,5.423]],["name/1999",[892,64.214]],["parent/1999",[1078,5.423]],["name/2000",[1080,72.687]],["parent/2000",[1078,5.423]],["name/2001",[1081,72.687]],["parent/2001",[1078,5.423]],["name/2002",[1082,72.687]],["parent/2002",[1078,5.423]],["name/2003",[1083,67.579]],["parent/2003",[]],["name/2004",[528,45.172]],["parent/2004",[1083,6.622]],["name/2005",[1084,53.228]],["parent/2005",[]],["name/2006",[520,46.061]],["parent/2006",[1084,5.215]],["name/2007",[521,49.333]],["parent/2007",[1084,5.215]],["name/2008",[528,45.172]],["parent/2008",[1084,5.215]],["name/2009",[510,48.12]],["parent/2009",[1084,5.215]],["name/2010",[522,49.333]],["parent/2010",[1084,5.215]],["name/2011",[523,49.333]],["parent/2011",[1084,5.215]],["name/2012",[529,49.333]],["parent/2012",[1084,5.215]],["name/2013",[524,48.708]],["parent/2013",[1084,5.215]],["name/2014",[1085,72.687]],["parent/2014",[1084,5.215]],["name/2015",[1086,41.046]],["parent/2015",[]],["name/2016",[714,54.229]],["parent/2016",[1086,4.022]],["name/2017",[1086,41.046]],["parent/2017",[1086,4.022]],["name/2018",[1087,72.687]],["parent/2018",[1086,4.022]],["name/2019",[1088,72.687]],["parent/2019",[1086,4.022]],["name/2020",[1089,72.687]],["parent/2020",[1086,4.022]],["name/2021",[1090,72.687]],["parent/2021",[1086,4.022]],["name/2022",[1091,72.687]],["parent/2022",[1086,4.022]],["name/2023",[1092,72.687]],["parent/2023",[1086,4.022]],["name/2024",[1093,72.687]],["parent/2024",[1086,4.022]],["name/2025",[1094,72.687]],["parent/2025",[1086,4.022]],["name/2026",[757,36.76]],["parent/2026",[1086,4.022]],["name/2027",[738,48.708]],["parent/2027",[1086,4.022]],["name/2028",[1095,72.687]],["parent/2028",[1086,4.022]],["name/2029",[1063,51.484]],["parent/2029",[1086,4.022]],["name/2030",[1096,72.687]],["parent/2030",[1086,4.022]],["name/2031",[1097,72.687]],["parent/2031",[1086,4.022]],["name/2032",[1098,72.687]],["parent/2032",[1086,4.022]],["name/2033",[1099,72.687]],["parent/2033",[1086,4.022]],["name/2034",[1100,72.687]],["parent/2034",[1086,4.022]],["name/2035",[680,67.579]],["parent/2035",[1086,4.022]],["name/2036",[530,48.12]],["parent/2036",[1086,4.022]],["name/2037",[1101,72.687]],["parent/2037",[1086,4.022]],["name/2038",[1102,72.687]],["parent/2038",[1086,4.022]],["name/2039",[1103,72.687]],["parent/2039",[1086,4.022]],["name/2040",[249,64.214]],["parent/2040",[1086,4.022]],["name/2041",[681,64.214]],["parent/2041",[1086,4.022]],["name/2042",[1104,72.687]],["parent/2042",[1086,4.022]],["name/2043",[1105,72.687]],["parent/2043",[1086,4.022]],["name/2044",[528,45.172]],["parent/2044",[1086,4.022]],["name/2045",[1106,72.687]],["parent/2045",[1086,4.022]],["name/2046",[1107,72.687]],["parent/2046",[1086,4.022]],["name/2047",[1108,72.687]],["parent/2047",[1086,4.022]],["name/2048",[1109,72.687]],["parent/2048",[1086,4.022]],["name/2049",[823,39.729]],["parent/2049",[]],["name/2050",[518,53.228]],["parent/2050",[823,3.893]],["name/2051",[519,54.229]],["parent/2051",[823,3.893]],["name/2052",[520,46.061]],["parent/2052",[823,3.893]],["name/2053",[521,49.333]],["parent/2053",[823,3.893]],["name/2054",[1043,64.214]],["parent/2054",[823,3.893]],["name/2055",[1044,64.214]],["parent/2055",[823,3.893]],["name/2056",[1045,64.214]],["parent/2056",[823,3.893]],["name/2057",[1046,61.701]],["parent/2057",[823,3.893]],["name/2058",[1047,61.701]],["parent/2058",[823,3.893]],["name/2059",[840,55.341]],["parent/2059",[823,3.893]],["name/2060",[1048,64.214]],["parent/2060",[823,3.893]],["name/2061",[1049,64.214]],["parent/2061",[823,3.893]],["name/2062",[1050,64.214]],["parent/2062",[823,3.893]],["name/2063",[1051,64.214]],["parent/2063",[823,3.893]],["name/2064",[1052,64.214]],["parent/2064",[823,3.893]],["name/2065",[530,48.12]],["parent/2065",[823,3.893]],["name/2066",[877,58.024]],["parent/2066",[823,3.893]],["name/2067",[716,56.592]],["parent/2067",[823,3.893]],["name/2068",[150,49.333]],["parent/2068",[823,3.893]],["name/2069",[1053,64.214]],["parent/2069",[823,3.893]],["name/2070",[528,45.172]],["parent/2070",[823,3.893]],["name/2071",[510,48.12]],["parent/2071",[823,3.893]],["name/2072",[522,49.333]],["parent/2072",[823,3.893]],["name/2073",[523,49.333]],["parent/2073",[823,3.893]],["name/2074",[529,49.333]],["parent/2074",[823,3.893]],["name/2075",[524,48.708]],["parent/2075",[823,3.893]],["name/2076",[525,52.318]],["parent/2076",[823,3.893]],["name/2077",[526,53.228]],["parent/2077",[823,3.893]],["name/2078",[527,54.229]],["parent/2078",[823,3.893]],["name/2079",[1054,64.214]],["parent/2079",[823,3.893]],["name/2080",[1055,64.214]],["parent/2080",[823,3.893]],["name/2081",[1056,64.214]],["parent/2081",[823,3.893]],["name/2082",[1057,64.214]],["parent/2082",[823,3.893]],["name/2083",[1058,64.214]],["parent/2083",[823,3.893]],["name/2084",[870,58.024]],["parent/2084",[823,3.893]],["name/2085",[1059,64.214]],["parent/2085",[823,3.893]],["name/2086",[879,58.024]],["parent/2086",[823,3.893]],["name/2087",[1110,40.235]],["parent/2087",[]],["name/2088",[518,53.228]],["parent/2088",[1110,3.942]],["name/2089",[519,54.229]],["parent/2089",[1110,3.942]],["name/2090",[520,46.061]],["parent/2090",[1110,3.942]],["name/2091",[521,49.333]],["parent/2091",[1110,3.942]],["name/2092",[528,45.172]],["parent/2092",[1110,3.942]],["name/2093",[510,48.12]],["parent/2093",[1110,3.942]],["name/2094",[522,49.333]],["parent/2094",[1110,3.942]],["name/2095",[523,49.333]],["parent/2095",[1110,3.942]],["name/2096",[529,49.333]],["parent/2096",[1110,3.942]],["name/2097",[524,48.708]],["parent/2097",[1110,3.942]],["name/2098",[525,52.318]],["parent/2098",[1110,3.942]],["name/2099",[526,53.228]],["parent/2099",[1110,3.942]],["name/2100",[527,54.229]],["parent/2100",[1110,3.942]],["name/2101",[1043,64.214]],["parent/2101",[1110,3.942]],["name/2102",[1044,64.214]],["parent/2102",[1110,3.942]],["name/2103",[1045,64.214]],["parent/2103",[1110,3.942]],["name/2104",[1046,61.701]],["parent/2104",[1110,3.942]],["name/2105",[1047,61.701]],["parent/2105",[1110,3.942]],["name/2106",[840,55.341]],["parent/2106",[1110,3.942]],["name/2107",[1054,64.214]],["parent/2107",[1110,3.942]],["name/2108",[1055,64.214]],["parent/2108",[1110,3.942]],["name/2109",[1056,64.214]],["parent/2109",[1110,3.942]],["name/2110",[1057,64.214]],["parent/2110",[1110,3.942]],["name/2111",[1058,64.214]],["parent/2111",[1110,3.942]],["name/2112",[1048,64.214]],["parent/2112",[1110,3.942]],["name/2113",[1049,64.214]],["parent/2113",[1110,3.942]],["name/2114",[870,58.024]],["parent/2114",[1110,3.942]],["name/2115",[1059,64.214]],["parent/2115",[1110,3.942]],["name/2116",[1050,64.214]],["parent/2116",[1110,3.942]],["name/2117",[1051,64.214]],["parent/2117",[1110,3.942]],["name/2118",[1052,64.214]],["parent/2118",[1110,3.942]],["name/2119",[530,48.12]],["parent/2119",[1110,3.942]],["name/2120",[877,58.024]],["parent/2120",[1110,3.942]],["name/2121",[716,56.592]],["parent/2121",[1110,3.942]],["name/2122",[150,49.333]],["parent/2122",[1110,3.942]],["name/2123",[1053,64.214]],["parent/2123",[1110,3.942]],["name/2124",[879,58.024]],["parent/2124",[1110,3.942]],["name/2125",[1111,49.333]],["parent/2125",[]],["name/2126",[1112,72.687]],["parent/2126",[1111,4.834]],["name/2127",[1113,72.687]],["parent/2127",[1111,4.834]],["name/2128",[1114,72.687]],["parent/2128",[1111,4.834]],["name/2129",[1115,72.687]],["parent/2129",[1111,4.834]],["name/2130",[1116,72.687]],["parent/2130",[1111,4.834]],["name/2131",[1117,72.687]],["parent/2131",[1111,4.834]],["name/2132",[1118,72.687]],["parent/2132",[1111,4.834]],["name/2133",[1119,72.687]],["parent/2133",[1111,4.834]],["name/2134",[1120,72.687]],["parent/2134",[1111,4.834]],["name/2135",[1121,72.687]],["parent/2135",[1111,4.834]],["name/2136",[1122,72.687]],["parent/2136",[1111,4.834]],["name/2137",[1123,72.687]],["parent/2137",[1111,4.834]],["name/2138",[1046,61.701]],["parent/2138",[1111,4.834]],["name/2139",[1047,61.701]],["parent/2139",[1111,4.834]],["name/2140",[1124,61.701]],["parent/2140",[]],["name/2141",[714,54.229]],["parent/2141",[1124,6.046]],["name/2142",[681,64.214]],["parent/2142",[1124,6.046]],["name/2143",[530,48.12]],["parent/2143",[1124,6.046]],["name/2144",[1125,56.592]],["parent/2144",[]],["name/2145",[528,45.172]],["parent/2145",[1125,5.545]],["name/2146",[525,52.318]],["parent/2146",[1125,5.545]],["name/2147",[518,53.228]],["parent/2147",[1125,5.545]],["name/2148",[526,53.228]],["parent/2148",[1125,5.545]],["name/2149",[519,54.229]],["parent/2149",[1125,5.545]],["name/2150",[527,54.229]],["parent/2150",[1125,5.545]]],"invertedIndex":[["absoluteuri",{"_index":836,"name":{"1529":{},"1653":{}},"parent":{}}],["accept",{"_index":1060,"name":{"1974":{}},"parent":{}}],["acceptmorevalues",{"_index":644,"name":{"1253":{}},"parent":{}}],["actualport",{"_index":888,"name":{"1608":{},"1858":{}},"parent":{}}],["add",{"_index":1007,"name":{"1837":{}},"parent":{}}],["addall",{"_index":1008,"name":{"1838":{}},"parent":{}}],["addandget",{"_index":707,"name":{"1332":{}},"parent":{}}],["addargument",{"_index":625,"name":{"1232":{}},"parent":{}}],["addarguments",{"_index":626,"name":{"1233":{}},"parent":{}}],["addcertpath",{"_index":446,"name":{"929":{}},"parent":{}}],["addcertvalue",{"_index":447,"name":{"931":{}},"parent":{}}],["addchoice",{"_index":420,"name":{"890":{}},"parent":{}}],["addclosehook",{"_index":690,"name":{"1308":{}},"parent":{}}],["addcookie",{"_index":930,"name":{"1703":{}},"parent":{}}],["addcrlpath",{"_index":106,"name":{"109":{},"279":{},"388":{},"553":{},"689":{},"774":{},"974":{}},"parent":{}}],["addcrlvalue",{"_index":108,"name":{"111":{},"281":{},"390":{},"555":{},"691":{},"776":{},"976":{}},"parent":{}}],["addenabledciphersuite",{"_index":110,"name":{"113":{},"283":{},"398":{},"561":{},"693":{},"778":{},"978":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":113,"name":{"116":{},"286":{},"401":{},"564":{},"696":{},"781":{},"981":{}},"parent":{}}],["addheader",{"_index":199,"name":{"217":{},"954":{},"1094":{}},"parent":{}}],["addinboundinterceptor",{"_index":745,"name":{"1385":{}},"parent":{}}],["addoption",{"_index":621,"name":{"1228":{}},"parent":{}}],["addoptions",{"_index":622,"name":{"1229":{}},"parent":{}}],["addoutboundinterceptor",{"_index":743,"name":{"1383":{}},"parent":{}}],["address",{"_index":988,"name":{"1794":{},"1813":{},"1828":{}},"parent":{}}],["addressresolveroptions",{"_index":57,"name":{"58":{}},"parent":{"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{}}}],["addsearchdomain",{"_index":83,"name":{"84":{}},"parent":{}}],["addserver",{"_index":86,"name":{"87":{}},"parent":{}}],["addsubprotocol",{"_index":507,"name":{"1103":{}},"parent":{}}],["addwebsocketsubprotocol",{"_index":374,"name":{"661":{}},"parent":{}}],["all",{"_index":660,"name":{"1270":{}},"parent":{}}],["allarguments",{"_index":635,"name":{"1244":{}},"parent":{}}],["any",{"_index":661,"name":{"1271":{}},"parent":{}}],["append",{"_index":961,"name":{"1748":{}},"parent":{}}],["appendarrayelement",{"_index":979,"name":{"1773":{}},"parent":{}}],["appendbuffer",{"_index":571,"name":{"1173":{}},"parent":{}}],["appendbyte",{"_index":572,"name":{"1174":{}},"parent":{}}],["appendbytes",{"_index":611,"name":{"1213":{}},"parent":{}}],["appenddouble",{"_index":587,"name":{"1189":{}},"parent":{}}],["appendfloat",{"_index":586,"name":{"1188":{}},"parent":{}}],["appendint",{"_index":574,"name":{"1176":{}},"parent":{}}],["appendintle",{"_index":575,"name":{"1177":{}},"parent":{}}],["appendlong",{"_index":580,"name":{"1182":{}},"parent":{}}],["appendlongle",{"_index":581,"name":{"1183":{}},"parent":{}}],["appendmedium",{"_index":578,"name":{"1180":{}},"parent":{}}],["appendmediumle",{"_index":579,"name":{"1181":{}},"parent":{}}],["appendshort",{"_index":582,"name":{"1184":{}},"parent":{}}],["appendshortle",{"_index":583,"name":{"1185":{}},"parent":{}}],["appendstring",{"_index":588,"name":{"1190":{}},"parent":{}}],["appendunsignedbyte",{"_index":573,"name":{"1175":{}},"parent":{}}],["appendunsignedint",{"_index":576,"name":{"1178":{}},"parent":{}}],["appendunsignedintle",{"_index":577,"name":{"1179":{}},"parent":{}}],["appendunsignedshort",{"_index":584,"name":{"1186":{}},"parent":{}}],["appendunsignedshortle",{"_index":585,"name":{"1187":{}},"parent":{}}],["argument",{"_index":87,"name":{"88":{}},"parent":{"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{}}}],["arrayeventmode",{"_index":955,"name":{"1735":{}},"parent":{}}],["arrayvalue",{"_index":948,"name":{"1723":{}},"parent":{}}],["arrayvaluemode",{"_index":956,"name":{"1736":{}},"parent":{}}],["asyncfile",{"_index":517,"name":{"1115":{}},"parent":{"1116":{},"1117":{},"1118":{},"1119":{},"1120":{},"1121":{},"1122":{},"1123":{},"1124":{},"1125":{},"1126":{},"1127":{},"1128":{},"1129":{},"1130":{},"1131":{},"1132":{},"1133":{},"1134":{},"1135":{},"1136":{}}}],["asyncmap",{"_index":538,"name":{"1137":{}},"parent":{"1138":{},"1139":{},"1140":{},"1141":{},"1142":{},"1143":{},"1144":{},"1145":{},"1146":{}}}],["asyncresult",{"_index":512,"name":{"1110":{}},"parent":{"1111":{},"1112":{},"1113":{},"1114":{}}}],["badkey",{"_index":21,"name":{"22":{}},"parent":{}}],["badsig",{"_index":20,"name":{"21":{}},"parent":{}}],["badtime",{"_index":22,"name":{"23":{}},"parent":{}}],["badvers",{"_index":19,"name":{"20":{}},"parent":{}}],["binarydata",{"_index":1122,"name":{"2136":{}},"parent":{}}],["binaryframe",{"_index":1112,"name":{"2126":{}},"parent":{}}],["binaryhandlerid",{"_index":1043,"name":{"1939":{},"2054":{},"2101":{}},"parent":{}}],["binarymessagehandler",{"_index":1051,"name":{"1948":{},"2063":{},"2117":{}},"parent":{}}],["binaryvalue",{"_index":943,"name":{"1718":{}},"parent":{}}],["blockmulticastgroup",{"_index":719,"name":{"1348":{}},"parent":{}}],["body",{"_index":724,"name":{"1360":{},"1796":{}},"parent":{}}],["bodyendhandler",{"_index":927,"name":{"1696":{}},"parent":{}}],["bodyhandler",{"_index":860,"name":{"1566":{},"1654":{}},"parent":{}}],["bodystream",{"_index":994,"name":{"1811":{}},"parent":{}}],["booleanvalue",{"_index":940,"name":{"1715":{}},"parent":{}}],["buffer",{"_index":546,"name":{"1147":{},"1148":{}},"parent":{"1148":{},"1149":{},"1150":{},"1151":{},"1152":{},"1153":{},"1154":{},"1155":{},"1156":{},"1157":{},"1158":{},"1159":{},"1160":{},"1161":{},"1162":{},"1163":{},"1164":{},"1165":{},"1166":{},"1167":{},"1168":{},"1169":{},"1170":{},"1171":{},"1172":{},"1173":{},"1174":{},"1175":{},"1176":{},"1177":{},"1178":{},"1179":{},"1180":{},"1181":{},"1182":{},"1183":{},"1184":{},"1185":{},"1186":{},"1187":{},"1188":{},"1189":{},"1190":{},"1191":{},"1192":{},"1193":{},"1194":{},"1195":{},"1196":{},"1197":{},"1198":{},"1199":{},"1200":{},"1201":{},"1202":{},"1203":{},"1204":{},"1205":{},"1206":{},"1207":{},"1208":{},"1209":{},"1210":{},"1211":{},"1212":{},"1213":{},"1214":{},"1215":{}}}],["bytesread",{"_index":902,"name":{"1645":{}},"parent":{}}],["byteswritten",{"_index":928,"name":{"1697":{}},"parent":{}}],["cancel",{"_index":1085,"name":{"2014":{}},"parent":{}}],["canceltimer",{"_index":1100,"name":{"2034":{}},"parent":{}}],["caseinsensitivemultimap",{"_index":1003,"name":{"1831":{}},"parent":{}}],["cause",{"_index":515,"name":{"1113":{},"1277":{},"1469":{}},"parent":{}}],["certificatepath",{"_index":1041,"name":{"1931":{}},"parent":{}}],["charset",{"_index":895,"name":{"1623":{}},"parent":{}}],["chmod",{"_index":765,"name":{"1407":{}},"parent":{}}],["chmodblocking",{"_index":766,"name":{"1408":{}},"parent":{}}],["chmodrecursive",{"_index":767,"name":{"1409":{}},"parent":{}}],["chmodrecursiveblocking",{"_index":768,"name":{"1410":{}},"parent":{}}],["chown",{"_index":769,"name":{"1411":{}},"parent":{}}],["chownblocking",{"_index":770,"name":{"1412":{}},"parent":{}}],["clear",{"_index":544,"name":{"1145":{},"1778":{},"1842":{}},"parent":{}}],["cli",{"_index":614,"name":{"1216":{},"1243":{}},"parent":{"1217":{},"1218":{},"1219":{},"1220":{},"1221":{},"1222":{},"1223":{},"1224":{},"1225":{},"1226":{},"1227":{},"1228":{},"1229":{},"1230":{},"1231":{},"1232":{},"1233":{},"1234":{},"1235":{},"1236":{},"1237":{},"1238":{},"1239":{},"1240":{}}}],["clientauth",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{}}}],["clientoptionsbase",{"_index":102,"name":{"104":{}},"parent":{"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{}}}],["close",{"_index":530,"name":{"1129":{},"1344":{},"1508":{},"1579":{},"1607":{},"1691":{},"1785":{},"1829":{},"1851":{},"1857":{},"1877":{},"1888":{},"1950":{},"2036":{},"2065":{},"2119":{},"2143":{}},"parent":{}}],["closed",{"_index":924,"name":{"1693":{}},"parent":{}}],["closehandler",{"_index":870,"name":{"1578":{},"1687":{},"1878":{},"1969":{},"2084":{},"2114":{}},"parent":{}}],["closereason",{"_index":1047,"name":{"1943":{},"2058":{},"2105":{},"2139":{}},"parent":{}}],["closestatuscode",{"_index":1046,"name":{"1942":{},"2057":{},"2104":{},"2138":{}},"parent":{}}],["clusteredvertx",{"_index":1087,"name":{"2018":{}},"parent":{}}],["commandline",{"_index":634,"name":{"1241":{}},"parent":{"1242":{},"1243":{},"1244":{},"1245":{},"1246":{},"1247":{},"1248":{},"1249":{},"1250":{},"1251":{},"1252":{},"1253":{},"1254":{},"1255":{},"1256":{},"1257":{},"1258":{}}}],["compareandset",{"_index":709,"name":{"1334":{}},"parent":{}}],["complete",{"_index":651,"name":{"1260":{},"1464":{},"1891":{}},"parent":{}}],["completer",{"_index":656,"name":{"1266":{},"1476":{}},"parent":{}}],["completionhandler",{"_index":998,"name":{"1816":{}},"parent":{}}],["compose",{"_index":654,"name":{"1264":{},"1473":{}},"parent":{}}],["compositefuture",{"_index":650,"name":{"1259":{}},"parent":{"1260":{},"1261":{},"1262":{},"1263":{},"1264":{},"1265":{},"1266":{},"1267":{},"1268":{},"1269":{},"1270":{},"1271":{},"1272":{},"1273":{},"1274":{},"1275":{},"1276":{},"1277":{},"1278":{},"1279":{},"1280":{},"1281":{},"1282":{},"1283":{},"1284":{},"1285":{},"1286":{},"1287":{},"1288":{},"1289":{}}}],["config",{"_index":683,"name":{"1297":{}},"parent":{}}],["connect",{"_index":31,"name":{"32":{},"1850":{}},"parent":{}}],["connecthandler",{"_index":1017,"name":{"1855":{}},"parent":{}}],["connection",{"_index":847,"name":{"1543":{},"1664":{}},"parent":{}}],["connectionhandler",{"_index":827,"name":{"1506":{},"1544":{},"1600":{}},"parent":{}}],["connectstream",{"_index":1016,"name":{"1854":{}},"parent":{}}],["constructor",{"_index":58,"name":{"59":{},"89":{},"105":{},"180":{},"190":{},"214":{},"223":{},"249":{},"261":{},"352":{},"360":{},"368":{},"382":{},"537":{},"671":{},"673":{},"681":{},"685":{},"766":{},"843":{},"857":{},"881":{},"885":{},"913":{},"927":{},"933":{},"941":{},"953":{},"964":{},"972":{},"1037":{},"1093":{}},"parent":{}}],["consumer",{"_index":740,"name":{"1379":{}},"parent":{}}],["contains",{"_index":1005,"name":{"1834":{}},"parent":{}}],["containskey",{"_index":982,"name":{"1786":{}},"parent":{}}],["containsvalue",{"_index":983,"name":{"1787":{}},"parent":{}}],["contenttransferencoding",{"_index":894,"name":{"1622":{}},"parent":{}}],["contenttype",{"_index":893,"name":{"1621":{}},"parent":{}}],["context",{"_index":676,"name":{"1290":{}},"parent":{"1291":{},"1292":{},"1293":{},"1294":{},"1295":{},"1296":{},"1297":{},"1298":{},"1299":{},"1300":{},"1301":{},"1302":{},"1303":{},"1304":{},"1305":{},"1306":{},"1307":{},"1308":{},"1309":{}}}],["continuationframe",{"_index":1116,"name":{"2130":{}},"parent":{}}],["continuehandler",{"_index":842,"name":{"1537":{}},"parent":{}}],["cookie",{"_index":692,"name":{"1310":{},"1311":{}},"parent":{"1311":{},"1312":{},"1313":{},"1314":{},"1315":{},"1316":{},"1317":{},"1318":{},"1319":{},"1320":{},"1321":{},"1322":{},"1323":{},"1324":{},"1325":{},"1326":{}}}],["cookiecount",{"_index":914,"name":{"1668":{}},"parent":{}}],["cookies",{"_index":859,"name":{"1565":{}},"parent":{}}],["cookiesamesite",{"_index":4,"name":{"4":{}},"parent":{"5":{},"6":{},"7":{}}}],["copy",{"_index":608,"name":{"1210":{},"1399":{},"1757":{}},"parent":{}}],["copyblocking",{"_index":758,"name":{"1400":{}},"parent":{}}],["copyoptions",{"_index":176,"name":{"179":{}},"parent":{"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{}}}],["copyrecursive",{"_index":759,"name":{"1401":{}},"parent":{}}],["copyrecursiveblocking",{"_index":760,"name":{"1402":{}},"parent":{}}],["counter",{"_index":703,"name":{"1327":{}},"parent":{"1328":{},"1329":{},"1330":{},"1331":{},"1332":{},"1333":{},"1334":{}}}],["create",{"_index":615,"name":{"1217":{},"1242":{},"1758":{},"1933":{}},"parent":{}}],["createdatagramsocket",{"_index":1094,"name":{"2025":{}},"parent":{}}],["creatednsclient",{"_index":1095,"name":{"2028":{}},"parent":{}}],["createfile",{"_index":798,"name":{"1441":{}},"parent":{}}],["createfileblocking",{"_index":799,"name":{"1442":{}},"parent":{}}],["createhttpclient",{"_index":1093,"name":{"2024":{}},"parent":{}}],["createhttpserver",{"_index":1092,"name":{"2023":{}},"parent":{}}],["createnetclient",{"_index":1091,"name":{"2022":{}},"parent":{}}],["createnetserver",{"_index":1090,"name":{"2021":{}},"parent":{}}],["createsharedworkerexecutor",{"_index":1104,"name":{"2042":{}},"parent":{}}],["createtempdirectory",{"_index":804,"name":{"1447":{}},"parent":{}}],["createtempdirectoryblocking",{"_index":805,"name":{"1448":{}},"parent":{}}],["createtempfile",{"_index":806,"name":{"1449":{}},"parent":{}}],["createtempfileblocking",{"_index":807,"name":{"1450":{}},"parent":{}}],["creationtime",{"_index":750,"name":{"1390":{}},"parent":{}}],["currentcontext",{"_index":1088,"name":{"2019":{}},"parent":{}}],["customframehandler",{"_index":861,"name":{"1567":{},"1663":{}},"parent":{}}],["data",{"_index":712,"name":{"1337":{}},"parent":{}}],["datagrampacket",{"_index":710,"name":{"1335":{}},"parent":{"1336":{},"1337":{}}}],["datagramsocket",{"_index":713,"name":{"1338":{}},"parent":{"1339":{},"1340":{},"1341":{},"1342":{},"1343":{},"1344":{},"1345":{},"1346":{},"1347":{},"1348":{},"1349":{},"1350":{},"1351":{},"1352":{},"1353":{},"1354":{},"1355":{}}}],["datagramsocketoptions",{"_index":185,"name":{"189":{}},"parent":{"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{}}}],["decrementandget",{"_index":706,"name":{"1331":{}},"parent":{}}],["default_write_queue_max_size",{"_index":1001,"name":{"1819":{}},"parent":{}}],["delete",{"_index":29,"name":{"30":{},"1425":{},"1498":{},"1932":{}},"parent":{}}],["deleteabs",{"_index":822,"name":{"1499":{}},"parent":{}}],["deleteblocking",{"_index":783,"name":{"1426":{}},"parent":{}}],["deleterecursive",{"_index":784,"name":{"1427":{}},"parent":{}}],["deleterecursiveblocking",{"_index":785,"name":{"1428":{}},"parent":{}}],["delimitedmode",{"_index":1034,"name":{"1917":{}},"parent":{}}],["deliverycontext",{"_index":721,"name":{"1356":{}},"parent":{"1357":{},"1358":{},"1359":{},"1360":{}}}],["deliveryoptions",{"_index":196,"name":{"213":{},"1827":{}},"parent":{"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{}}}],["deploymentid",{"_index":682,"name":{"1296":{}},"parent":{}}],["deploymentids",{"_index":1103,"name":{"2039":{}},"parent":{}}],["deploymentoptions",{"_index":204,"name":{"222":{}},"parent":{"223":{},"224":{},"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{},"245":{},"246":{},"247":{}}}],["deployverticle",{"_index":1101,"name":{"2037":{}},"parent":{}}],["dnsclient",{"_index":725,"name":{"1361":{}},"parent":{"1362":{},"1363":{},"1364":{},"1365":{},"1366":{},"1367":{},"1368":{},"1369":{},"1370":{},"1371":{},"1372":{},"1373":{}}}],["dnsclientoptions",{"_index":229,"name":{"248":{}},"parent":{"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{},"258":{},"259":{}}}],["dnsresponsecode",{"_index":7,"name":{"8":{}},"parent":{"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{}}}],["domainsocketaddress",{"_index":1076,"name":{"1991":{}},"parent":{}}],["doublevalue",{"_index":938,"name":{"1713":{}},"parent":{}}],["drainhandler",{"_index":527,"name":{"1126":{},"1516":{},"1676":{},"1826":{},"1872":{},"1963":{},"2078":{},"2100":{},"2150":{}},"parent":{}}],["encode",{"_index":702,"name":{"1326":{}},"parent":{}}],["end",{"_index":518,"name":{"1116":{},"1539":{},"1671":{},"1732":{},"1820":{},"1860":{},"1935":{},"2050":{},"2088":{},"2147":{}},"parent":{}}],["end_array",{"_index":42,"name":{"43":{}},"parent":{}}],["end_object",{"_index":40,"name":{"41":{}},"parent":{}}],["ended",{"_index":923,"name":{"1692":{}},"parent":{}}],["endhandler",{"_index":524,"name":{"1123":{},"1353":{},"1521":{},"1557":{},"1614":{},"1635":{},"1688":{},"1740":{},"1810":{},"1869":{},"1908":{},"1926":{},"1960":{},"2013":{},"2075":{},"2097":{}},"parent":{}}],["endoncomplete",{"_index":1022,"name":{"1886":{}},"parent":{}}],["endonfailure",{"_index":1020,"name":{"1884":{}},"parent":{}}],["endonsuccess",{"_index":1021,"name":{"1885":{}},"parent":{}}],["entries",{"_index":1011,"name":{"1844":{}},"parent":{}}],["eventbus",{"_index":738,"name":{"1374":{},"2027":{}},"parent":{"1375":{},"1376":{},"1377":{},"1378":{},"1379":{},"1380":{},"1381":{},"1382":{},"1383":{},"1384":{},"1385":{},"1386":{},"1387":{},"1388":{}}}],["eventbusoptions",{"_index":236,"name":{"260":{}},"parent":{"261":{},"262":{},"263":{},"264":{},"265":{},"266":{},"267":{},"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{},"285":{},"286":{},"287":{},"288":{},"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{},"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"322":{},"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{},"331":{},"332":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"344":{},"345":{},"346":{},"347":{},"348":{},"349":{},"350":{}}}],["exceptionhandler",{"_index":528,"name":{"1127":{},"1307":{},"1355":{},"1513":{},"1554":{},"1586":{},"1601":{},"1612":{},"1630":{},"1673":{},"1742":{},"1805":{},"1823":{},"1864":{},"1903":{},"1921":{},"1955":{},"2004":{},"2008":{},"2044":{},"2070":{},"2092":{},"2145":{}},"parent":{}}],["executeblocking",{"_index":681,"name":{"1295":{},"2041":{},"2142":{}},"parent":{}}],["exists",{"_index":800,"name":{"1443":{}},"parent":{}}],["existsblocking",{"_index":801,"name":{"1444":{}},"parent":{}}],["fail",{"_index":672,"name":{"1286":{},"1465":{},"1801":{},"1892":{}},"parent":{}}],["failed",{"_index":514,"name":{"1112":{},"1279":{},"1471":{}},"parent":{}}],["failedfuture",{"_index":671,"name":{"1285":{},"1458":{}},"parent":{}}],["fetch",{"_index":529,"name":{"1128":{},"1352":{},"1520":{},"1552":{},"1617":{},"1634":{},"1739":{},"1809":{},"1868":{},"1907":{},"1924":{},"1959":{},"2012":{},"2074":{},"2096":{}},"parent":{}}],["fieldname",{"_index":933,"name":{"1707":{}},"parent":{}}],["file",{"_index":897,"name":{"1626":{}},"parent":{}}],["filename",{"_index":891,"name":{"1619":{}},"parent":{}}],["fileprops",{"_index":749,"name":{"1389":{}},"parent":{"1390":{},"1391":{},"1392":{},"1393":{},"1394":{},"1395":{},"1396":{},"1397":{}}}],["filesystem",{"_index":757,"name":{"1398":{},"2026":{}},"parent":{"1399":{},"1400":{},"1401":{},"1402":{},"1403":{},"1404":{},"1405":{},"1406":{},"1407":{},"1408":{},"1409":{},"1410":{},"1411":{},"1412":{},"1413":{},"1414":{},"1415":{},"1416":{},"1417":{},"1418":{},"1419":{},"1420":{},"1421":{},"1422":{},"1423":{},"1424":{},"1425":{},"1426":{},"1427":{},"1428":{},"1429":{},"1430":{},"1431":{},"1432":{},"1433":{},"1434":{},"1435":{},"1436":{},"1437":{},"1438":{},"1439":{},"1440":{},"1441":{},"1442":{},"1443":{},"1444":{},"1445":{},"1446":{},"1447":{},"1448":{},"1449":{},"1450":{}}}],["filesystemoptions",{"_index":255,"name":{"351":{}},"parent":{"352":{},"353":{},"354":{},"355":{},"356":{},"357":{},"358":{}}}],["filesystemprops",{"_index":808,"name":{"1451":{}},"parent":{"1452":{},"1453":{},"1454":{}}}],["fixedsizemode",{"_index":1035,"name":{"1918":{}},"parent":{}}],["flags",{"_index":882,"name":{"1594":{}},"parent":{}}],["flatmap",{"_index":653,"name":{"1263":{},"1472":{}},"parent":{}}],["floatvalue",{"_index":937,"name":{"1712":{}},"parent":{}}],["flush",{"_index":532,"name":{"1131":{}},"parent":{}}],["formattributes",{"_index":909,"name":{"1659":{}},"parent":{}}],["formerror",{"_index":9,"name":{"10":{}},"parent":{}}],["framehandler",{"_index":1059,"name":{"1970":{},"2085":{},"2115":{}},"parent":{}}],["from",{"_index":968,"name":{"1759":{}},"parent":{}}],["fromuri",{"_index":971,"name":{"1762":{}},"parent":{}}],["fsprops",{"_index":802,"name":{"1445":{}},"parent":{}}],["fspropsblocking",{"_index":803,"name":{"1446":{}},"parent":{}}],["future",{"_index":669,"name":{"1283":{},"1455":{},"1456":{},"1895":{}},"parent":{"1456":{},"1457":{},"1458":{},"1459":{},"1460":{},"1461":{},"1462":{},"1463":{},"1464":{},"1465":{},"1466":{},"1467":{},"1468":{},"1469":{},"1470":{},"1471":{},"1472":{},"1473":{},"1474":{},"1475":{},"1476":{},"1477":{},"1478":{},"1479":{},"1480":{}}}],["get",{"_index":25,"name":{"26":{},"1138":{},"1302":{},"1328":{},"1485":{},"1775":{},"1832":{}},"parent":{}}],["getabs",{"_index":814,"name":{"1486":{}},"parent":{}}],["getacceptbacklog",{"_index":237,"name":{"262":{},"538":{},"767":{}},"parent":{}}],["getaddressresolveroptions",{"_index":466,"name":{"1038":{}},"parent":{}}],["getall",{"_index":1004,"name":{"1833":{}},"parent":{}}],["getalpnversions",{"_index":283,"name":{"383":{},"542":{}},"parent":{}}],["getandadd",{"_index":708,"name":{"1333":{}},"parent":{}}],["getandincrement",{"_index":705,"name":{"1330":{}},"parent":{}}],["getargname",{"_index":88,"name":{"90":{},"886":{}},"parent":{}}],["getargument",{"_index":629,"name":{"1236":{}},"parent":{}}],["getarguments",{"_index":624,"name":{"1231":{}},"parent":{}}],["getargumentvalue",{"_index":637,"name":{"1246":{}},"parent":{}}],["getarrayelement",{"_index":976,"name":{"1770":{}},"parent":{}}],["getasyncmap",{"_index":1065,"name":{"1980":{}},"parent":{}}],["getblockedthreadcheckinterval",{"_index":468,"name":{"1040":{}},"parent":{}}],["getblockedthreadcheckintervalunit",{"_index":470,"name":{"1042":{}},"parent":{}}],["getbuffer",{"_index":569,"name":{"1171":{}},"parent":{}}],["getbyte",{"_index":551,"name":{"1153":{}},"parent":{}}],["getbytebuf",{"_index":613,"name":{"1215":{}},"parent":{}}],["getbytes",{"_index":610,"name":{"1212":{}},"parent":{}}],["getcachemaxtimetolive",{"_index":59,"name":{"60":{}},"parent":{}}],["getcachemintimetolive",{"_index":61,"name":{"62":{}},"parent":{}}],["getcachenegativetimetolive",{"_index":63,"name":{"64":{}},"parent":{}}],["getcertpaths",{"_index":434,"name":{"915":{},"928":{}},"parent":{}}],["getcertvalues",{"_index":437,"name":{"918":{},"930":{}},"parent":{}}],["getchoices",{"_index":418,"name":{"888":{}},"parent":{}}],["getclientauth",{"_index":239,"name":{"264":{},"544":{},"769":{}},"parent":{}}],["getclusterhost",{"_index":472,"name":{"1044":{}},"parent":{}}],["getclusterpinginterval",{"_index":241,"name":{"266":{},"1046":{}},"parent":{}}],["getclusterpingreplyinterval",{"_index":243,"name":{"268":{},"1048":{}},"parent":{}}],["getclusterport",{"_index":474,"name":{"1050":{}},"parent":{}}],["getclusterpublichost",{"_index":245,"name":{"270":{},"1052":{}},"parent":{}}],["getclusterpublicport",{"_index":247,"name":{"272":{},"1054":{}},"parent":{}}],["getclusterwidemap",{"_index":1064,"name":{"1979":{}},"parent":{}}],["getcodecname",{"_index":197,"name":{"215":{}},"parent":{}}],["getcompressionlevel",{"_index":354,"name":{"548":{}},"parent":{}}],["getconfig",{"_index":205,"name":{"224":{}},"parent":{}}],["getconnecttimeout",{"_index":103,"name":{"106":{},"276":{},"385":{},"686":{}},"parent":{}}],["getcookie",{"_index":913,"name":{"1667":{}},"parent":{}}],["getcounter",{"_index":1071,"name":{"1986":{}},"parent":{}}],["getcrlpaths",{"_index":105,"name":{"108":{},"278":{},"387":{},"552":{},"688":{},"773":{},"973":{}},"parent":{}}],["getcrlvalues",{"_index":107,"name":{"110":{},"280":{},"389":{},"554":{},"690":{},"775":{},"975":{}},"parent":{}}],["getdebugdata",{"_index":263,"name":{"361":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":285,"name":{"391":{},"556":{}},"parent":{}}],["getdefaulthost",{"_index":287,"name":{"393":{}},"parent":{}}],["getdefaultport",{"_index":289,"name":{"395":{}},"parent":{}}],["getdefaultvalue",{"_index":90,"name":{"92":{},"891":{}},"parent":{}}],["getdependency",{"_index":458,"name":{"965":{}},"parent":{}}],["getdescription",{"_index":92,"name":{"94":{},"893":{},"1221":{}},"parent":{}}],["getdomain",{"_index":694,"name":{"1316":{}},"parent":{}}],["getdouble",{"_index":559,"name":{"1161":{}},"parent":{}}],["getenabledciphersuites",{"_index":109,"name":{"112":{},"282":{},"397":{},"560":{},"692":{},"777":{},"977":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":111,"name":{"114":{},"284":{},"399":{},"562":{},"694":{},"779":{},"979":{}},"parent":{}}],["geterrorcode",{"_index":265,"name":{"363":{}},"parent":{}}],["geteventbusoptions",{"_index":476,"name":{"1058":{}},"parent":{}}],["geteventlooppoolsize",{"_index":478,"name":{"1060":{}},"parent":{}}],["getextraclasspath",{"_index":207,"name":{"226":{}},"parent":{}}],["getfilecachedir",{"_index":258,"name":{"355":{}},"parent":{}}],["getfilesystemoptions",{"_index":482,"name":{"1064":{}},"parent":{}}],["getfloat",{"_index":560,"name":{"1162":{}},"parent":{}}],["getformattribute",{"_index":910,"name":{"1660":{}},"parent":{}}],["gethagroup",{"_index":486,"name":{"1068":{}},"parent":{}}],["getheader",{"_index":856,"name":{"1562":{},"1648":{}},"parent":{}}],["getheadertablesize",{"_index":270,"name":{"369":{}},"parent":{}}],["gethost",{"_index":230,"name":{"250":{},"287":{},"567":{},"782":{},"942":{},"955":{},"1095":{},"1534":{}},"parent":{}}],["gethostnameverificationalgorithm",{"_index":387,"name":{"697":{}},"parent":{}}],["gethostspath",{"_index":65,"name":{"66":{}},"parent":{}}],["gethostsvalue",{"_index":67,"name":{"68":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":295,"name":{"406":{},"569":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":297,"name":{"408":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":299,"name":{"410":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":301,"name":{"412":{}},"parent":{}}],["getidletimeout",{"_index":114,"name":{"117":{},"289":{},"414":{},"571":{},"699":{},"784":{},"982":{}},"parent":{}}],["getidletimeoutunit",{"_index":116,"name":{"119":{},"291":{},"416":{},"573":{},"701":{},"786":{},"984":{}},"parent":{}}],["getindex",{"_index":96,"name":{"98":{}},"parent":{}}],["getinitialsettings",{"_index":303,"name":{"418":{},"575":{}},"parent":{}}],["getinitialwindowsize",{"_index":272,"name":{"371":{}},"parent":{}}],["getinstancecount",{"_index":689,"name":{"1306":{}},"parent":{}}],["getinstances",{"_index":211,"name":{"230":{}},"parent":{}}],["getint",{"_index":553,"name":{"1155":{}},"parent":{}}],["getinternalblockingpoolsize",{"_index":488,"name":{"1070":{}},"parent":{}}],["getintle",{"_index":554,"name":{"1156":{}},"parent":{}}],["getisolatedclasses",{"_index":213,"name":{"232":{}},"parent":{}}],["getisolationgroup",{"_index":215,"name":{"234":{}},"parent":{}}],["getjdksslengineoptions",{"_index":118,"name":{"121":{},"293":{},"420":{},"577":{},"703":{},"788":{},"986":{}},"parent":{}}],["getkeepalivetimeout",{"_index":307,"name":{"424":{}},"parent":{}}],["getkeypaths",{"_index":440,"name":{"921":{}},"parent":{}}],["getkeystoreoptions",{"_index":120,"name":{"123":{},"295":{},"426":{},"579":{},"705":{},"790":{},"988":{}},"parent":{}}],["getkeyvalues",{"_index":443,"name":{"924":{}},"parent":{}}],["getlaststreamid",{"_index":267,"name":{"365":{}},"parent":{}}],["getlocaladdress",{"_index":122,"name":{"125":{},"428":{},"707":{}},"parent":{}}],["getlocalasyncmap",{"_index":1066,"name":{"1981":{}},"parent":{}}],["getlocalcounter",{"_index":1072,"name":{"1987":{}},"parent":{}}],["getlocallock",{"_index":1069,"name":{"1984":{}},"parent":{}}],["getlocallockwithtimeout",{"_index":1070,"name":{"1985":{}},"parent":{}}],["getlocalmap",{"_index":1073,"name":{"1988":{}},"parent":{}}],["getlock",{"_index":1067,"name":{"1982":{}},"parent":{}}],["getlockwithtimeout",{"_index":1068,"name":{"1983":{}},"parent":{}}],["getlogactivity",{"_index":124,"name":{"127":{},"195":{},"252":{},"297":{},"430":{},"581":{},"709":{},"792":{},"844":{},"990":{}},"parent":{}}],["getlong",{"_index":557,"name":{"1159":{}},"parent":{}}],["getlongle",{"_index":558,"name":{"1160":{}},"parent":{}}],["getlongname",{"_index":425,"name":{"901":{}},"parent":{}}],["getmaxbufferedmessages",{"_index":997,"name":{"1815":{}},"parent":{}}],["getmaxchunksize",{"_index":309,"name":{"432":{},"583":{}},"parent":{}}],["getmaxconcurrentstreams",{"_index":274,"name":{"373":{}},"parent":{}}],["getmaxeventloopexecutetime",{"_index":490,"name":{"1072":{}},"parent":{}}],["getmaxeventloopexecutetimeunit",{"_index":492,"name":{"1074":{}},"parent":{}}],["getmaxframesize",{"_index":276,"name":{"375":{}},"parent":{}}],["getmaxheaderlistsize",{"_index":278,"name":{"377":{}},"parent":{}}],["getmaxheadersize",{"_index":311,"name":{"434":{},"585":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":313,"name":{"436":{},"587":{}},"parent":{}}],["getmaxpoolsize",{"_index":315,"name":{"438":{}},"parent":{}}],["getmaxqueries",{"_index":69,"name":{"70":{}},"parent":{}}],["getmaxredirects",{"_index":317,"name":{"440":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":319,"name":{"442":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":321,"name":{"444":{},"448":{},"589":{},"593":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":323,"name":{"446":{},"450":{},"591":{},"595":{}},"parent":{}}],["getmaxworkerexecutetime",{"_index":217,"name":{"236":{},"1076":{}},"parent":{}}],["getmaxworkerexecutetimeunit",{"_index":219,"name":{"238":{},"1078":{}},"parent":{}}],["getmedium",{"_index":565,"name":{"1167":{}},"parent":{}}],["getmediumle",{"_index":566,"name":{"1168":{}},"parent":{}}],["getmetricsname",{"_index":126,"name":{"129":{},"452":{},"711":{}},"parent":{}}],["getmetricsoptions",{"_index":494,"name":{"1080":{}},"parent":{}}],["getmulticastnetworkinterface",{"_index":192,"name":{"199":{}},"parent":{}}],["getmulticasttimetolive",{"_index":194,"name":{"201":{}},"parent":{}}],["getname",{"_index":427,"name":{"905":{},"1219":{},"1312":{}},"parent":{}}],["getndots",{"_index":71,"name":{"72":{}},"parent":{}}],["getnow",{"_index":815,"name":{"1487":{}},"parent":{}}],["getobjectparameter",{"_index":975,"name":{"1769":{}},"parent":{}}],["getopensslengineoptions",{"_index":128,"name":{"131":{},"299":{},"454":{},"597":{},"713":{},"794":{},"992":{}},"parent":{}}],["getoption",{"_index":628,"name":{"1235":{}},"parent":{}}],["getoptions",{"_index":620,"name":{"1227":{}},"parent":{}}],["getoptionvalue",{"_index":636,"name":{"1245":{}},"parent":{}}],["getorcreatecontext",{"_index":1089,"name":{"2020":{}},"parent":{}}],["getordefault",{"_index":984,"name":{"1788":{}},"parent":{}}],["getparam",{"_index":905,"name":{"1650":{}},"parent":{}}],["getpassword",{"_index":377,"name":{"674":{},"934":{},"944":{}},"parent":{}}],["getpath",{"_index":379,"name":{"676":{},"936":{},"1318":{}},"parent":{}}],["getpemkeycertoptions",{"_index":130,"name":{"133":{},"301":{},"456":{},"599":{},"715":{},"796":{},"994":{}},"parent":{}}],["getpemtrustoptions",{"_index":132,"name":{"135":{},"303":{},"458":{},"601":{},"717":{},"798":{},"996":{}},"parent":{}}],["getperframewebsocketcompressionsupported",{"_index":362,"name":{"603":{},"605":{}},"parent":{}}],["getpermessagewebsocketcompressionsupported",{"_index":364,"name":{"607":{},"609":{}},"parent":{}}],["getperms",{"_index":402,"name":{"868":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":134,"name":{"137":{},"305":{},"460":{},"611":{},"719":{},"800":{},"998":{}},"parent":{}}],["getpfxtrustoptions",{"_index":136,"name":{"139":{},"307":{},"462":{},"613":{},"721":{},"802":{},"1000":{}},"parent":{}}],["getpipelininglimit",{"_index":327,"name":{"466":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":329,"name":{"468":{}},"parent":{}}],["getport",{"_index":232,"name":{"254":{},"309":{},"615":{},"804":{},"946":{},"957":{},"1097":{}},"parent":{}}],["getprefernativetransport",{"_index":496,"name":{"1082":{}},"parent":{}}],["getpriority",{"_index":632,"name":{"1239":{}},"parent":{}}],["getprotocolversion",{"_index":331,"name":{"470":{}},"parent":{}}],["getproxyoptions",{"_index":138,"name":{"141":{},"472":{},"723":{}},"parent":{}}],["getquerytimeout",{"_index":75,"name":{"76":{},"256":{}},"parent":{}}],["getquorumsize",{"_index":498,"name":{"1084":{}},"parent":{}}],["getrawmethod",{"_index":834,"name":{"1527":{}},"parent":{}}],["getrawvalueforargument",{"_index":645,"name":{"1254":{}},"parent":{}}],["getrawvalueforoption",{"_index":643,"name":{"1252":{}},"parent":{}}],["getrawvalues",{"_index":640,"name":{"1249":{}},"parent":{}}],["getrawvaluesforargument",{"_index":642,"name":{"1251":{}},"parent":{}}],["getrawvaluesforoption",{"_index":641,"name":{"1250":{}},"parent":{}}],["getrdflag",{"_index":77,"name":{"78":{}},"parent":{}}],["getreceivebuffersize",{"_index":140,"name":{"143":{},"203":{},"311":{},"474":{},"617":{},"725":{},"806":{},"846":{},"1002":{}},"parent":{}}],["getreconnectattempts",{"_index":251,"name":{"313":{},"727":{}},"parent":{}}],["getreconnectinterval",{"_index":253,"name":{"315":{},"729":{}},"parent":{}}],["getsamesite",{"_index":701,"name":{"1325":{}},"parent":{}}],["getsearchdomains",{"_index":81,"name":{"82":{}},"parent":{}}],["getsendbuffersize",{"_index":146,"name":{"149":{},"209":{},"321":{},"480":{},"623":{},"735":{},"812":{},"852":{},"1008":{}},"parent":{}}],["getsendtimeout",{"_index":202,"name":{"220":{}},"parent":{}}],["getservers",{"_index":84,"name":{"85":{}},"parent":{}}],["getshort",{"_index":561,"name":{"1163":{}},"parent":{}}],["getshortle",{"_index":562,"name":{"1164":{}},"parent":{}}],["getshortname",{"_index":428,"name":{"908":{}},"parent":{}}],["getsolinger",{"_index":148,"name":{"151":{},"323":{},"484":{},"627":{},"737":{},"816":{},"1010":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":152,"name":{"155":{},"327":{},"488":{},"631":{},"741":{},"820":{},"1014":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":154,"name":{"157":{},"329":{},"490":{},"633":{},"743":{},"822":{},"1016":{}},"parent":{}}],["getstatuscode",{"_index":916,"name":{"1677":{}},"parent":{}}],["getstatusmessage",{"_index":918,"name":{"1679":{}},"parent":{}}],["getstreampriority",{"_index":851,"name":{"1548":{}},"parent":{}}],["getstring",{"_index":570,"name":{"1172":{}},"parent":{}}],["getsubprotocols",{"_index":505,"name":{"1101":{}},"parent":{}}],["getsummary",{"_index":618,"name":{"1223":{}},"parent":{}}],["gettrafficclass",{"_index":166,"name":{"169":{},"211":{},"341":{},"502":{},"645":{},"755":{},"834":{},"854":{},"1028":{}},"parent":{}}],["gettrailer",{"_index":857,"name":{"1563":{}},"parent":{}}],["gettruststoreoptions",{"_index":170,"name":{"173":{},"345":{},"506":{},"647":{},"759":{},"836":{},"1030":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":338,"name":{"512":{},"514":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":340,"name":{"516":{},"517":{}},"parent":{}}],["gettype",{"_index":450,"name":{"948":{}},"parent":{}}],["getunsignedbyte",{"_index":552,"name":{"1154":{}},"parent":{}}],["getunsignedint",{"_index":555,"name":{"1157":{}},"parent":{}}],["getunsignedintle",{"_index":556,"name":{"1158":{}},"parent":{}}],["getunsignedmedium",{"_index":567,"name":{"1169":{}},"parent":{}}],["getunsignedmediumle",{"_index":568,"name":{"1170":{}},"parent":{}}],["getunsignedshort",{"_index":563,"name":{"1165":{}},"parent":{}}],["getunsignedshortle",{"_index":564,"name":{"1166":{}},"parent":{}}],["geturi",{"_index":455,"name":{"961":{},"1104":{}},"parent":{}}],["geturiwithoutfragment",{"_index":970,"name":{"1761":{}},"parent":{}}],["getusername",{"_index":452,"name":{"950":{}},"parent":{}}],["getvalue",{"_index":381,"name":{"678":{},"938":{},"1313":{}},"parent":{}}],["getversion",{"_index":508,"name":{"1106":{}},"parent":{}}],["getwarningexceptiontime",{"_index":500,"name":{"1086":{}},"parent":{}}],["getwarningexceptiontimeunit",{"_index":502,"name":{"1088":{}},"parent":{}}],["getwebsocketallowservernocontext",{"_index":368,"name":{"653":{},"662":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":343,"name":{"524":{},"530":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":345,"name":{"526":{},"532":{},"655":{},"664":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":347,"name":{"528":{},"534":{}},"parent":{}}],["getwebsocketpreferredclientnocontext",{"_index":370,"name":{"657":{},"666":{}},"parent":{}}],["getwebsocketsubprotocols",{"_index":372,"name":{"659":{},"668":{}},"parent":{}}],["getweight",{"_index":462,"name":{"969":{}},"parent":{}}],["getwindowsize",{"_index":865,"name":{"1572":{}},"parent":{}}],["getworkerpoolname",{"_index":225,"name":{"244":{}},"parent":{}}],["getworkerpoolsize",{"_index":227,"name":{"246":{},"1090":{}},"parent":{}}],["getwritepos",{"_index":536,"name":{"1135":{}},"parent":{}}],["goaway",{"_index":262,"name":{"359":{},"1574":{}},"parent":{"360":{},"361":{},"362":{},"363":{},"364":{},"365":{},"366":{}}}],["goawayhandler",{"_index":867,"name":{"1575":{}},"parent":{}}],["handle",{"_index":511,"name":{"1109":{},"1727":{},"1920":{}},"parent":{}}],["handler",{"_index":510,"name":{"1108":{},"1120":{},"1354":{},"1517":{},"1555":{},"1613":{},"1631":{},"1741":{},"1806":{},"1865":{},"1904":{},"1922":{},"1956":{},"2009":{},"2071":{},"2093":{}},"parent":{"1109":{}}}],["head",{"_index":26,"name":{"27":{},"1490":{}},"parent":{}}],["headabs",{"_index":817,"name":{"1491":{}},"parent":{}}],["headers",{"_index":840,"name":{"1535":{},"1561":{},"1647":{},"1683":{},"1795":{},"1944":{},"2059":{},"2106":{}},"parent":{}}],["headersendhandler",{"_index":926,"name":{"1695":{}},"parent":{}}],["headnow",{"_index":818,"name":{"1492":{}},"parent":{}}],["headwritten",{"_index":925,"name":{"1694":{}},"parent":{}}],["host",{"_index":901,"name":{"1644":{},"1992":{}},"parent":{}}],["http",{"_index":45,"name":{"46":{}},"parent":{}}],["http2settings",{"_index":269,"name":{"367":{}},"parent":{"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{}}}],["http_1_0",{"_index":35,"name":{"36":{}},"parent":{}}],["http_1_1",{"_index":36,"name":{"37":{}},"parent":{}}],["http_2",{"_index":37,"name":{"38":{}},"parent":{}}],["httpclient",{"_index":812,"name":{"1481":{}},"parent":{"1482":{},"1483":{},"1484":{},"1485":{},"1486":{},"1487":{},"1488":{},"1489":{},"1490":{},"1491":{},"1492":{},"1493":{},"1494":{},"1495":{},"1496":{},"1497":{},"1498":{},"1499":{},"1500":{},"1501":{},"1502":{},"1503":{},"1504":{},"1505":{},"1506":{},"1507":{},"1508":{}}}],["httpclientoptions",{"_index":282,"name":{"381":{}},"parent":{"382":{},"383":{},"384":{},"385":{},"386":{},"387":{},"388":{},"389":{},"390":{},"391":{},"392":{},"393":{},"394":{},"395":{},"396":{},"397":{},"398":{},"399":{},"400":{},"401":{},"402":{},"403":{},"404":{},"405":{},"406":{},"407":{},"408":{},"409":{},"410":{},"411":{},"412":{},"413":{},"414":{},"415":{},"416":{},"417":{},"418":{},"419":{},"420":{},"421":{},"422":{},"423":{},"424":{},"425":{},"426":{},"427":{},"428":{},"429":{},"430":{},"431":{},"432":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"440":{},"441":{},"442":{},"443":{},"444":{},"445":{},"446":{},"447":{},"448":{},"449":{},"450":{},"451":{},"452":{},"453":{},"454":{},"455":{},"456":{},"457":{},"458":{},"459":{},"460":{},"461":{},"462":{},"463":{},"464":{},"465":{},"466":{},"467":{},"468":{},"469":{},"470":{},"471":{},"472":{},"473":{},"474":{},"475":{},"476":{},"477":{},"478":{},"479":{},"480":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"495":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"504":{},"505":{},"506":{},"507":{},"508":{},"509":{},"510":{},"511":{},"512":{},"513":{},"514":{},"515":{},"516":{},"517":{},"518":{},"519":{},"520":{},"521":{},"522":{},"523":{},"524":{},"525":{},"526":{},"527":{},"528":{},"529":{},"530":{},"531":{},"532":{},"533":{},"534":{},"535":{}}}],["httpclientrequest",{"_index":829,"name":{"1509":{}},"parent":{"1510":{},"1511":{},"1512":{},"1513":{},"1514":{},"1515":{},"1516":{},"1517":{},"1518":{},"1519":{},"1520":{},"1521":{},"1522":{},"1523":{},"1524":{},"1525":{},"1526":{},"1527":{},"1528":{},"1529":{},"1530":{},"1531":{},"1532":{},"1533":{},"1534":{},"1535":{},"1536":{},"1537":{},"1538":{},"1539":{},"1540":{},"1541":{},"1542":{},"1543":{},"1544":{},"1545":{},"1546":{},"1547":{},"1548":{}}}],["httpclientresponse",{"_index":852,"name":{"1549":{}},"parent":{"1550":{},"1551":{},"1552":{},"1553":{},"1554":{},"1555":{},"1556":{},"1557":{},"1558":{},"1559":{},"1560":{},"1561":{},"1562":{},"1563":{},"1564":{},"1565":{},"1566":{},"1567":{},"1568":{},"1569":{},"1570":{}}}],["httpconnection",{"_index":864,"name":{"1571":{}},"parent":{"1572":{},"1573":{},"1574":{},"1575":{},"1576":{},"1577":{},"1578":{},"1579":{},"1580":{},"1581":{},"1582":{},"1583":{},"1584":{},"1585":{},"1586":{},"1587":{},"1588":{},"1589":{},"1590":{},"1591":{}}}],["httpframe",{"_index":880,"name":{"1592":{}},"parent":{"1593":{},"1594":{},"1595":{}}}],["httpmethod",{"_index":23,"name":{"24":{}},"parent":{"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{}}}],["httpserver",{"_index":884,"name":{"1596":{}},"parent":{"1597":{},"1598":{},"1599":{},"1600":{},"1601":{},"1602":{},"1603":{},"1604":{},"1605":{},"1606":{},"1607":{},"1608":{}}}],["httpserverfileupload",{"_index":889,"name":{"1609":{}},"parent":{"1610":{},"1611":{},"1612":{},"1613":{},"1614":{},"1615":{},"1616":{},"1617":{},"1618":{},"1619":{},"1620":{},"1621":{},"1622":{},"1623":{},"1624":{},"1625":{},"1626":{}}}],["httpserveroptions",{"_index":349,"name":{"536":{}},"parent":{"537":{},"538":{},"539":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"548":{},"549":{},"550":{},"551":{},"552":{},"553":{},"554":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"566":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"601":{},"602":{},"603":{},"604":{},"605":{},"606":{},"607":{},"608":{},"609":{},"610":{},"611":{},"612":{},"613":{},"614":{},"615":{},"616":{},"617":{},"618":{},"619":{},"620":{},"621":{},"622":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{},"631":{},"632":{},"633":{},"634":{},"635":{},"636":{},"637":{},"638":{},"639":{},"640":{},"641":{},"642":{},"643":{},"644":{},"645":{},"646":{},"647":{},"648":{},"649":{},"650":{},"651":{},"652":{},"653":{},"654":{},"655":{},"656":{},"657":{},"658":{},"659":{},"660":{},"661":{},"662":{},"663":{},"664":{},"665":{},"666":{},"667":{},"668":{},"669":{}}}],["httpserverrequest",{"_index":898,"name":{"1627":{}},"parent":{"1628":{},"1629":{},"1630":{},"1631":{},"1632":{},"1633":{},"1634":{},"1635":{},"1636":{},"1637":{},"1638":{},"1639":{},"1640":{},"1641":{},"1642":{},"1643":{},"1644":{},"1645":{},"1646":{},"1647":{},"1648":{},"1649":{},"1650":{},"1651":{},"1652":{},"1653":{},"1654":{},"1655":{},"1656":{},"1657":{},"1658":{},"1659":{},"1660":{},"1661":{},"1662":{},"1663":{},"1664":{},"1665":{},"1666":{},"1667":{},"1668":{},"1669":{}}}],["httpserverresponse",{"_index":915,"name":{"1670":{}},"parent":{"1671":{},"1672":{},"1673":{},"1674":{},"1675":{},"1676":{},"1677":{},"1678":{},"1679":{},"1680":{},"1681":{},"1682":{},"1683":{},"1684":{},"1685":{},"1686":{},"1687":{},"1688":{},"1689":{},"1690":{},"1691":{},"1692":{},"1693":{},"1694":{},"1695":{},"1696":{},"1697":{},"1698":{},"1699":{},"1700":{},"1701":{},"1702":{},"1703":{},"1704":{}}}],["httpversion",{"_index":34,"name":{"35":{}},"parent":{"36":{},"37":{},"38":{}}}],["incrementandget",{"_index":704,"name":{"1329":{}},"parent":{}}],["indicatedservername",{"_index":878,"name":{"1590":{},"1881":{}},"parent":{}}],["inetsocketaddress",{"_index":1075,"name":{"1990":{}},"parent":{}}],["instantvalue",{"_index":950,"name":{"1725":{}},"parent":{}}],["integervalue",{"_index":935,"name":{"1710":{}},"parent":{}}],["isacceptunmaskedframes",{"_index":350,"name":{"540":{}},"parent":{}}],["isappend",{"_index":392,"name":{"858":{}},"parent":{}}],["isargumentassigned",{"_index":646,"name":{"1255":{}},"parent":{}}],["isarray",{"_index":947,"name":{"1722":{},"1766":{}},"parent":{}}],["isaskingforhelp",{"_index":649,"name":{"1258":{}},"parent":{}}],["isatomicmove",{"_index":177,"name":{"181":{}},"parent":{}}],["isbinary",{"_index":1118,"name":{"2132":{}},"parent":{}}],["isboolean",{"_index":939,"name":{"1714":{}},"parent":{}}],["isbroadcast",{"_index":186,"name":{"191":{}},"parent":{}}],["ischunked",{"_index":832,"name":{"1525":{},"1682":{}},"parent":{}}],["isclasspathresolvingenabled",{"_index":256,"name":{"353":{}},"parent":{}}],["isclientauthrequired",{"_index":352,"name":{"546":{},"771":{}},"parent":{}}],["isclose",{"_index":1120,"name":{"2134":{}},"parent":{}}],["isclosed",{"_index":1053,"name":{"1954":{},"2069":{},"2123":{}},"parent":{}}],["isclustered",{"_index":249,"name":{"274":{},"1056":{},"2040":{}},"parent":{}}],["iscomplete",{"_index":667,"name":{"1280":{},"1459":{}},"parent":{}}],["iscompressionsupported",{"_index":356,"name":{"550":{}},"parent":{}}],["iscontinuation",{"_index":1119,"name":{"2133":{}},"parent":{}}],["iscopyattributes",{"_index":179,"name":{"183":{}},"parent":{}}],["iscreate",{"_index":394,"name":{"860":{}},"parent":{}}],["iscreatenew",{"_index":396,"name":{"862":{}},"parent":{}}],["isdecompressionsupported",{"_index":358,"name":{"558":{}},"parent":{}}],["isdeleteonclose",{"_index":398,"name":{"864":{}},"parent":{}}],["isdirectory",{"_index":753,"name":{"1393":{}},"parent":{}}],["isdsync",{"_index":400,"name":{"866":{}},"parent":{}}],["isempty",{"_index":981,"name":{"1780":{},"1835":{}},"parent":{}}],["isenabled",{"_index":384,"name":{"682":{}},"parent":{}}],["isended",{"_index":912,"name":{"1662":{}},"parent":{}}],["iseventloopcontext",{"_index":685,"name":{"1299":{}},"parent":{}}],["isexclusive",{"_index":460,"name":{"967":{}},"parent":{}}],["isexpectmultipart",{"_index":907,"name":{"1657":{}},"parent":{}}],["isfilecachingenabled",{"_index":260,"name":{"357":{}},"parent":{}}],["isfileresolvercachingenabled",{"_index":480,"name":{"1062":{}},"parent":{}}],["isfinal",{"_index":1123,"name":{"2137":{}},"parent":{}}],["isflag",{"_index":421,"name":{"895":{}},"parent":{}}],["isflagenabled",{"_index":638,"name":{"1247":{}},"parent":{}}],["isforcesni",{"_index":291,"name":{"402":{}},"parent":{}}],["isha",{"_index":209,"name":{"228":{}},"parent":{}}],["ishaenabled",{"_index":484,"name":{"1066":{}},"parent":{}}],["ishandle100continueautomatically",{"_index":360,"name":{"565":{}},"parent":{}}],["ishelp",{"_index":423,"name":{"897":{}},"parent":{}}],["ishidden",{"_index":94,"name":{"96":{},"899":{},"1225":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":293,"name":{"404":{}},"parent":{}}],["ishttponly",{"_index":699,"name":{"1323":{}},"parent":{}}],["isipv6",{"_index":188,"name":{"193":{}},"parent":{}}],["iskeepalive",{"_index":305,"name":{"422":{}},"parent":{}}],["islocalonly",{"_index":200,"name":{"218":{}},"parent":{}}],["islocalpointer",{"_index":959,"name":{"1745":{}},"parent":{}}],["isloopbackmodedisabled",{"_index":190,"name":{"197":{}},"parent":{}}],["ismetricsenabled",{"_index":714,"name":{"1339":{},"1375":{},"1482":{},"1597":{},"1792":{},"1849":{},"1853":{},"2016":{},"2141":{}},"parent":{}}],["ismultithreaded",{"_index":221,"name":{"240":{}},"parent":{}}],["ismultithreadedworkercontext",{"_index":687,"name":{"1301":{}},"parent":{}}],["ismultivalued",{"_index":98,"name":{"100":{},"903":{}},"parent":{}}],["isnativetransportenabled",{"_index":1105,"name":{"2043":{}},"parent":{}}],["isnofollowlinks",{"_index":181,"name":{"185":{}},"parent":{}}],["isnull",{"_index":944,"name":{"1719":{},"1767":{}},"parent":{}}],["isnumber",{"_index":934,"name":{"1709":{}},"parent":{}}],["isobject",{"_index":945,"name":{"1720":{},"1765":{}},"parent":{}}],["isoneventloopthread",{"_index":678,"name":{"1292":{}},"parent":{}}],["isonvertxthread",{"_index":679,"name":{"1293":{}},"parent":{}}],["isonworkerthread",{"_index":677,"name":{"1291":{}},"parent":{}}],["isoptionassigned",{"_index":639,"name":{"1248":{}},"parent":{}}],["isoptresourceenabled",{"_index":73,"name":{"74":{}},"parent":{}}],["isother",{"_index":754,"name":{"1394":{}},"parent":{}}],["isparent",{"_index":960,"name":{"1746":{}},"parent":{}}],["ispipelining",{"_index":325,"name":{"464":{}},"parent":{}}],["ispushenabled",{"_index":280,"name":{"379":{}},"parent":{}}],["isread",{"_index":404,"name":{"870":{}},"parent":{}}],["isrecursiondesired",{"_index":234,"name":{"258":{}},"parent":{}}],["isregistered",{"_index":995,"name":{"1812":{}},"parent":{}}],["isregularfile",{"_index":755,"name":{"1395":{}},"parent":{}}],["isreplaceexisting",{"_index":183,"name":{"187":{}},"parent":{}}],["isrequired",{"_index":100,"name":{"102":{},"906":{}},"parent":{}}],["isreuseaddress",{"_index":142,"name":{"145":{},"205":{},"317":{},"476":{},"619":{},"731":{},"808":{},"848":{},"1004":{}},"parent":{}}],["isreuseport",{"_index":144,"name":{"147":{},"207":{},"319":{},"478":{},"621":{},"733":{},"810":{},"850":{},"1006":{}},"parent":{}}],["isrootpointer",{"_index":958,"name":{"1744":{}},"parent":{}}],["isrotateservers",{"_index":79,"name":{"80":{}},"parent":{}}],["issecure",{"_index":697,"name":{"1321":{}},"parent":{}}],["isseenincommandline",{"_index":647,"name":{"1256":{}},"parent":{}}],["issend",{"_index":990,"name":{"1798":{}},"parent":{}}],["issendunmaskedframes",{"_index":333,"name":{"482":{}},"parent":{}}],["issessioncacheenabled",{"_index":415,"name":{"882":{}},"parent":{}}],["issinglevalued",{"_index":430,"name":{"910":{}},"parent":{}}],["issizeavailable",{"_index":896,"name":{"1625":{}},"parent":{}}],["issni",{"_index":366,"name":{"625":{},"814":{}},"parent":{}}],["issparse",{"_index":406,"name":{"872":{}},"parent":{}}],["isssl",{"_index":150,"name":{"153":{},"325":{},"486":{},"629":{},"739":{},"818":{},"959":{},"1012":{},"1099":{},"1589":{},"1639":{},"1880":{},"1953":{},"2068":{},"2122":{}},"parent":{}}],["isstring",{"_index":941,"name":{"1716":{}},"parent":{}}],["issymboliclink",{"_index":756,"name":{"1396":{}},"parent":{}}],["issync",{"_index":408,"name":{"874":{}},"parent":{}}],["istcpcork",{"_index":156,"name":{"159":{},"331":{},"492":{},"635":{},"745":{},"824":{},"1018":{}},"parent":{}}],["istcpfastopen",{"_index":158,"name":{"161":{},"333":{},"494":{},"637":{},"747":{},"826":{},"1020":{}},"parent":{}}],["istcpkeepalive",{"_index":160,"name":{"163":{},"335":{},"496":{},"639":{},"749":{},"828":{},"1022":{}},"parent":{}}],["istcpnodelay",{"_index":162,"name":{"165":{},"337":{},"498":{},"641":{},"751":{},"830":{},"1024":{}},"parent":{}}],["istcpquickack",{"_index":164,"name":{"167":{},"339":{},"500":{},"643":{},"753":{},"832":{},"1026":{}},"parent":{}}],["istext",{"_index":1117,"name":{"2131":{}},"parent":{}}],["istruncateexisting",{"_index":410,"name":{"876":{}},"parent":{}}],["istrustall",{"_index":168,"name":{"171":{},"343":{},"504":{},"757":{}},"parent":{}}],["istryusecompression",{"_index":335,"name":{"508":{}},"parent":{}}],["isusealpn",{"_index":172,"name":{"175":{},"347":{},"518":{},"649":{},"761":{},"838":{},"1032":{}},"parent":{}}],["isusepooledbuffers",{"_index":174,"name":{"177":{},"349":{},"520":{},"651":{},"763":{},"840":{},"1034":{}},"parent":{}}],["isvalid",{"_index":648,"name":{"1257":{}},"parent":{}}],["isverifyhost",{"_index":341,"name":{"522":{}},"parent":{}}],["isworker",{"_index":223,"name":{"242":{}},"parent":{}}],["isworkercontext",{"_index":686,"name":{"1300":{}},"parent":{}}],["iswrite",{"_index":412,"name":{"878":{}},"parent":{}}],["jdksslengineoptions",{"_index":375,"name":{"670":{}},"parent":{"671":{}}}],["jksoptions",{"_index":376,"name":{"672":{}},"parent":{"673":{},"674":{},"675":{},"676":{},"677":{},"678":{},"679":{}}}],["join",{"_index":662,"name":{"1272":{}},"parent":{}}],["json_iterator",{"_index":973,"name":{"1764":{}},"parent":{}}],["jsonevent",{"_index":932,"name":{"1705":{}},"parent":{"1706":{},"1707":{},"1708":{},"1709":{},"1710":{},"1711":{},"1712":{},"1713":{},"1714":{},"1715":{},"1716":{},"1717":{},"1718":{},"1719":{},"1720":{},"1721":{},"1722":{},"1723":{},"1724":{},"1725":{}}}],["jsoneventtype",{"_index":38,"name":{"39":{}},"parent":{"40":{},"41":{},"42":{},"43":{},"44":{}}}],["jsonparser",{"_index":951,"name":{"1726":{}},"parent":{"1727":{},"1728":{},"1729":{},"1730":{},"1731":{},"1732":{},"1733":{},"1734":{},"1735":{},"1736":{},"1737":{},"1738":{},"1739":{},"1740":{},"1741":{},"1742":{}}}],["jsonpointer",{"_index":957,"name":{"1743":{}},"parent":{"1744":{},"1745":{},"1746":{},"1747":{},"1748":{},"1749":{},"1750":{},"1751":{},"1752":{},"1753":{},"1754":{},"1755":{},"1756":{},"1757":{},"1758":{},"1759":{},"1760":{},"1761":{},"1762":{}}}],["jsonpointeriterator",{"_index":972,"name":{"1763":{}},"parent":{"1764":{},"1765":{},"1766":{},"1767":{},"1768":{},"1769":{},"1770":{},"1771":{},"1772":{},"1773":{}}}],["keycertoptions",{"_index":1038,"name":{"1928":{}},"parent":{}}],["lastaccesstime",{"_index":751,"name":{"1391":{}},"parent":{}}],["lastmodifiedtime",{"_index":752,"name":{"1392":{}},"parent":{}}],["lax",{"_index":6,"name":{"7":{}},"parent":{}}],["length",{"_index":607,"name":{"1209":{}},"parent":{}}],["link",{"_index":775,"name":{"1417":{}},"parent":{}}],["linkblocking",{"_index":776,"name":{"1418":{}},"parent":{}}],["listen",{"_index":720,"name":{"1349":{},"1606":{},"1856":{}},"parent":{}}],["listenmulticastgroup",{"_index":717,"name":{"1346":{}},"parent":{}}],["localaddress",{"_index":716,"name":{"1345":{},"1588":{},"1652":{},"1876":{},"1952":{},"2067":{},"2121":{}},"parent":{}}],["localconsumer",{"_index":741,"name":{"1380":{}},"parent":{}}],["localmap",{"_index":980,"name":{"1774":{}},"parent":{"1775":{},"1776":{},"1777":{},"1778":{},"1779":{},"1780":{},"1781":{},"1782":{},"1783":{},"1784":{},"1785":{},"1786":{},"1787":{},"1788":{}}}],["lock",{"_index":985,"name":{"1789":{}},"parent":{"1790":{}}}],["longvalue",{"_index":936,"name":{"1711":{}},"parent":{}}],["lookup",{"_index":726,"name":{"1362":{}},"parent":{}}],["lookup4",{"_index":727,"name":{"1363":{}},"parent":{}}],["lookup6",{"_index":728,"name":{"1364":{}},"parent":{}}],["lprops",{"_index":773,"name":{"1415":{}},"parent":{}}],["lpropsblocking",{"_index":774,"name":{"1416":{}},"parent":{}}],["map",{"_index":655,"name":{"1265":{},"1474":{}},"parent":{}}],["mapempty",{"_index":674,"name":{"1288":{},"1475":{}},"parent":{}}],["mapto",{"_index":949,"name":{"1724":{}},"parent":{}}],["maxrecordsize",{"_index":1036,"name":{"1919":{}},"parent":{}}],["measured",{"_index":987,"name":{"1791":{}},"parent":{"1792":{}}}],["message",{"_index":722,"name":{"1357":{},"1793":{}},"parent":{"1794":{},"1795":{},"1796":{},"1797":{},"1798":{},"1799":{},"1800":{},"1801":{}}}],["messageconsumer",{"_index":993,"name":{"1802":{}},"parent":{"1803":{},"1804":{},"1805":{},"1806":{},"1807":{},"1808":{},"1809":{},"1810":{},"1811":{},"1812":{},"1813":{},"1814":{},"1815":{},"1816":{},"1817":{}}}],["messageproducer",{"_index":1000,"name":{"1818":{}},"parent":{"1819":{},"1820":{},"1821":{},"1822":{},"1823":{},"1824":{},"1825":{},"1826":{},"1827":{},"1828":{},"1829":{}}}],["method",{"_index":833,"name":{"1526":{},"1637":{}},"parent":{}}],["metricsoptions",{"_index":383,"name":{"680":{}},"parent":{"681":{},"682":{},"683":{}}}],["mkdir",{"_index":786,"name":{"1429":{}},"parent":{}}],["mkdirblocking",{"_index":787,"name":{"1430":{}},"parent":{}}],["mkdirs",{"_index":788,"name":{"1431":{}},"parent":{}}],["mkdirsblocking",{"_index":789,"name":{"1432":{}},"parent":{}}],["move",{"_index":761,"name":{"1403":{}},"parent":{}}],["moveblocking",{"_index":762,"name":{"1404":{}},"parent":{}}],["multimap",{"_index":1002,"name":{"1830":{}},"parent":{"1831":{},"1832":{},"1833":{},"1834":{},"1835":{},"1836":{},"1837":{},"1838":{},"1839":{},"1840":{},"1841":{},"1842":{},"1843":{},"1844":{}}}],["mxrecord",{"_index":1012,"name":{"1845":{}},"parent":{"1846":{},"1847":{}}}],["name",{"_index":892,"name":{"1620":{},"1847":{},"1999":{}},"parent":{}}],["names",{"_index":1006,"name":{"1836":{}},"parent":{}}],["netclient",{"_index":1014,"name":{"1848":{}},"parent":{"1849":{},"1850":{},"1851":{}}}],["netclientoptions",{"_index":386,"name":{"684":{}},"parent":{"685":{},"686":{},"687":{},"688":{},"689":{},"690":{},"691":{},"692":{},"693":{},"694":{},"695":{},"696":{},"697":{},"698":{},"699":{},"700":{},"701":{},"702":{},"703":{},"704":{},"705":{},"706":{},"707":{},"708":{},"709":{},"710":{},"711":{},"712":{},"713":{},"714":{},"715":{},"716":{},"717":{},"718":{},"719":{},"720":{},"721":{},"722":{},"723":{},"724":{},"725":{},"726":{},"727":{},"728":{},"729":{},"730":{},"731":{},"732":{},"733":{},"734":{},"735":{},"736":{},"737":{},"738":{},"739":{},"740":{},"741":{},"742":{},"743":{},"744":{},"745":{},"746":{},"747":{},"748":{},"749":{},"750":{},"751":{},"752":{},"753":{},"754":{},"755":{},"756":{},"757":{},"758":{},"759":{},"760":{},"761":{},"762":{},"763":{},"764":{}}}],["netserver",{"_index":1015,"name":{"1852":{}},"parent":{"1853":{},"1854":{},"1855":{},"1856":{},"1857":{},"1858":{}}}],["netserveroptions",{"_index":389,"name":{"765":{}},"parent":{"766":{},"767":{},"768":{},"769":{},"770":{},"771":{},"772":{},"773":{},"774":{},"775":{},"776":{},"777":{},"778":{},"779":{},"780":{},"781":{},"782":{},"783":{},"784":{},"785":{},"786":{},"787":{},"788":{},"789":{},"790":{},"791":{},"792":{},"793":{},"794":{},"795":{},"796":{},"797":{},"798":{},"799":{},"800":{},"801":{},"802":{},"803":{},"804":{},"805":{},"806":{},"807":{},"808":{},"809":{},"810":{},"811":{},"812":{},"813":{},"814":{},"815":{},"816":{},"817":{},"818":{},"819":{},"820":{},"821":{},"822":{},"823":{},"824":{},"825":{},"826":{},"827":{},"828":{},"829":{},"830":{},"831":{},"832":{},"833":{},"834":{},"835":{},"836":{},"837":{},"838":{},"839":{},"840":{},"841":{}}}],["netsocket",{"_index":862,"name":{"1568":{},"1655":{},"1859":{}},"parent":{"1860":{},"1861":{},"1862":{},"1863":{},"1864":{},"1865":{},"1866":{},"1867":{},"1868":{},"1869":{},"1870":{},"1871":{},"1872":{},"1873":{},"1874":{},"1875":{},"1876":{},"1877":{},"1878":{},"1879":{},"1880":{},"1881":{},"1882":{}}}],["nettyeventloopgroup",{"_index":1109,"name":{"2048":{}},"parent":{}}],["networkoptions",{"_index":390,"name":{"842":{}},"parent":{"843":{},"844":{},"845":{},"846":{},"847":{},"848":{},"849":{},"850":{},"851":{},"852":{},"853":{},"854":{},"855":{}}}],["newdelimited",{"_index":1032,"name":{"1915":{}},"parent":{}}],["newfixed",{"_index":1033,"name":{"1916":{}},"parent":{}}],["newparser",{"_index":952,"name":{"1730":{}},"parent":{}}],["next",{"_index":723,"name":{"1358":{}},"parent":{}}],["no_handlers",{"_index":50,"name":{"51":{}},"parent":{}}],["noerror",{"_index":8,"name":{"9":{}},"parent":{}}],["none",{"_index":1,"name":{"1":{},"5":{}},"parent":{}}],["notauth",{"_index":17,"name":{"18":{}},"parent":{}}],["notimpl",{"_index":12,"name":{"13":{}},"parent":{}}],["notzone",{"_index":18,"name":{"19":{}},"parent":{}}],["numberpumped",{"_index":1028,"name":{"1901":{}},"parent":{}}],["nxdomain",{"_index":11,"name":{"12":{}},"parent":{}}],["nxrrset",{"_index":16,"name":{"17":{}},"parent":{}}],["objectcontainskey",{"_index":974,"name":{"1768":{}},"parent":{}}],["objecteventmode",{"_index":953,"name":{"1733":{}},"parent":{}}],["objectvalue",{"_index":946,"name":{"1721":{}},"parent":{}}],["objectvaluemode",{"_index":954,"name":{"1734":{}},"parent":{}}],["oncomplete",{"_index":664,"name":{"1274":{},"1461":{}},"parent":{}}],["onfailure",{"_index":666,"name":{"1276":{},"1463":{}},"parent":{}}],["onsuccess",{"_index":665,"name":{"1275":{},"1462":{}},"parent":{}}],["open",{"_index":796,"name":{"1439":{}},"parent":{}}],["openblocking",{"_index":797,"name":{"1440":{}},"parent":{}}],["openoptions",{"_index":391,"name":{"856":{}},"parent":{"857":{},"858":{},"859":{},"860":{},"861":{},"862":{},"863":{},"864":{},"865":{},"866":{},"867":{},"868":{},"869":{},"870":{},"871":{},"872":{},"873":{},"874":{},"875":{},"876":{},"877":{},"878":{},"879":{}}}],["opensslengineoptions",{"_index":414,"name":{"880":{}},"parent":{"881":{},"882":{},"883":{}}}],["option",{"_index":417,"name":{"884":{}},"parent":{"885":{},"886":{},"887":{},"888":{},"889":{},"890":{},"891":{},"892":{},"893":{},"894":{},"895":{},"896":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"903":{},"904":{},"905":{},"906":{},"907":{},"908":{},"909":{},"910":{},"911":{}}}],["options",{"_index":24,"name":{"25":{},"1493":{}},"parent":{}}],["optionsabs",{"_index":819,"name":{"1494":{}},"parent":{}}],["optionsnow",{"_index":820,"name":{"1495":{}},"parent":{}}],["other",{"_index":33,"name":{"34":{}},"parent":{}}],["otherwise",{"_index":658,"name":{"1268":{},"1478":{}},"parent":{}}],["otherwiseempty",{"_index":659,"name":{"1269":{},"1479":{}},"parent":{}}],["owner",{"_index":688,"name":{"1305":{}},"parent":{}}],["params",{"_index":904,"name":{"1649":{}},"parent":{}}],["parent",{"_index":962,"name":{"1749":{}},"parent":{}}],["parse",{"_index":616,"name":{"1218":{}},"parent":{}}],["patch",{"_index":32,"name":{"33":{}},"parent":{}}],["path",{"_index":838,"name":{"1531":{},"1642":{},"1972":{},"1994":{}},"parent":{}}],["pause",{"_index":522,"name":{"1121":{},"1350":{},"1518":{},"1556":{},"1615":{},"1632":{},"1737":{},"1807":{},"1866":{},"1905":{},"1923":{},"1957":{},"2010":{},"2072":{},"2094":{}},"parent":{}}],["payload",{"_index":883,"name":{"1595":{}},"parent":{}}],["pemkeycertoptions",{"_index":432,"name":{"912":{}},"parent":{"913":{},"914":{},"915":{},"916":{},"917":{},"918":{},"919":{},"920":{},"921":{},"922":{},"923":{},"924":{},"925":{}}}],["pemtrustoptions",{"_index":445,"name":{"926":{}},"parent":{"927":{},"928":{},"929":{},"930":{},"931":{}}}],["periodicstream",{"_index":1099,"name":{"2033":{}},"parent":{}}],["pfxoptions",{"_index":448,"name":{"932":{}},"parent":{"933":{},"934":{},"935":{},"936":{},"937":{},"938":{},"939":{}}}],["ping",{"_index":875,"name":{"1584":{}},"parent":{}}],["pingframe",{"_index":1114,"name":{"2128":{}},"parent":{}}],["pinghandler",{"_index":876,"name":{"1585":{}},"parent":{}}],["pipe",{"_index":520,"name":{"1118":{},"1340":{},"1511":{},"1550":{},"1610":{},"1628":{},"1728":{},"1803":{},"1862":{},"1883":{},"1909":{},"1912":{},"1937":{},"2006":{},"2052":{},"2090":{}},"parent":{"1884":{},"1885":{},"1886":{},"1887":{},"1888":{}}}],["pipeto",{"_index":521,"name":{"1119":{},"1341":{},"1512":{},"1551":{},"1611":{},"1629":{},"1729":{},"1804":{},"1863":{},"1910":{},"1913":{},"1938":{},"2007":{},"2053":{},"2091":{}},"parent":{}}],["pongframe",{"_index":1115,"name":{"2129":{}},"parent":{}}],["ponghandler",{"_index":1052,"name":{"1949":{},"2064":{},"2118":{}},"parent":{}}],["port",{"_index":1077,"name":{"1993":{},"1998":{}},"parent":{}}],["post",{"_index":27,"name":{"28":{},"1488":{}},"parent":{}}],["postabs",{"_index":816,"name":{"1489":{}},"parent":{}}],["priority",{"_index":1013,"name":{"1846":{},"1996":{}},"parent":{}}],["privatekeypath",{"_index":1040,"name":{"1930":{}},"parent":{}}],["processargs",{"_index":684,"name":{"1298":{}},"parent":{}}],["promise",{"_index":1024,"name":{"1889":{},"1890":{}},"parent":{"1890":{},"1891":{},"1892":{},"1893":{},"1894":{},"1895":{}}}],["props",{"_index":771,"name":{"1413":{}},"parent":{}}],["propsblocking",{"_index":772,"name":{"1414":{}},"parent":{}}],["protocol",{"_index":1080,"name":{"2000":{}},"parent":{}}],["proxyoptions",{"_index":449,"name":{"940":{}},"parent":{"941":{},"942":{},"943":{},"944":{},"945":{},"946":{},"947":{},"948":{},"949":{},"950":{},"951":{}}}],["proxytype",{"_index":44,"name":{"45":{}},"parent":{"46":{},"47":{},"48":{}}}],["publish",{"_index":739,"name":{"1378":{}},"parent":{}}],["publisher",{"_index":742,"name":{"1382":{}},"parent":{}}],["pump",{"_index":1025,"name":{"1896":{},"1897":{}},"parent":{"1897":{},"1898":{},"1899":{},"1900":{},"1901":{}}}],["push",{"_index":929,"name":{"1699":{}},"parent":{}}],["pushhandler",{"_index":845,"name":{"1541":{}},"parent":{}}],["put",{"_index":28,"name":{"29":{},"1139":{},"1303":{},"1496":{},"1776":{}},"parent":{}}],["putabs",{"_index":821,"name":{"1497":{}},"parent":{}}],["putheader",{"_index":841,"name":{"1536":{},"1684":{}},"parent":{}}],["putifabsent",{"_index":539,"name":{"1140":{},"1781":{}},"parent":{}}],["puttrailer",{"_index":920,"name":{"1686":{}},"parent":{}}],["query",{"_index":839,"name":{"1532":{},"1643":{},"1750":{},"1973":{}},"parent":{}}],["queryjson",{"_index":964,"name":{"1752":{}},"parent":{}}],["queryjsonordefault",{"_index":965,"name":{"1753":{}},"parent":{}}],["queryordefault",{"_index":963,"name":{"1751":{}},"parent":{}}],["rawmethod",{"_index":899,"name":{"1638":{}},"parent":{}}],["read",{"_index":531,"name":{"1130":{}},"parent":{}}],["readdir",{"_index":790,"name":{"1433":{}},"parent":{}}],["readdirblocking",{"_index":791,"name":{"1434":{}},"parent":{}}],["readfile",{"_index":792,"name":{"1435":{}},"parent":{}}],["readfileblocking",{"_index":793,"name":{"1436":{}},"parent":{}}],["readstream",{"_index":1029,"name":{"1902":{}},"parent":{"1903":{},"1904":{},"1905":{},"1906":{},"1907":{},"1908":{},"1909":{},"1910":{}}}],["readsymlink",{"_index":781,"name":{"1423":{}},"parent":{}}],["readsymlinkblocking",{"_index":782,"name":{"1424":{}},"parent":{}}],["recipient_failure",{"_index":51,"name":{"52":{}},"parent":{}}],["recordparser",{"_index":1030,"name":{"1911":{}},"parent":{"1912":{},"1913":{},"1914":{},"1915":{},"1916":{},"1917":{},"1918":{},"1919":{},"1920":{},"1921":{},"1922":{},"1923":{},"1924":{},"1925":{},"1926":{}}}],["recover",{"_index":657,"name":{"1267":{},"1477":{}},"parent":{}}],["redirecthandler",{"_index":828,"name":{"1507":{}},"parent":{}}],["refused",{"_index":13,"name":{"14":{}},"parent":{}}],["registercodec",{"_index":747,"name":{"1387":{}},"parent":{}}],["registerverticlefactory",{"_index":1106,"name":{"2045":{}},"parent":{}}],["reject",{"_index":1061,"name":{"1975":{}},"parent":{}}],["release",{"_index":986,"name":{"1790":{}},"parent":{}}],["remoteaddress",{"_index":877,"name":{"1587":{},"1651":{},"1875":{},"1951":{},"2066":{},"2120":{}},"parent":{}}],["remotesettings",{"_index":873,"name":{"1582":{}},"parent":{}}],["remotesettingshandler",{"_index":874,"name":{"1583":{}},"parent":{}}],["remove",{"_index":540,"name":{"1141":{},"1304":{},"1777":{},"1841":{}},"parent":{}}],["removeargument",{"_index":631,"name":{"1238":{}},"parent":{}}],["removeclosehook",{"_index":691,"name":{"1309":{}},"parent":{}}],["removecookie",{"_index":931,"name":{"1704":{}},"parent":{}}],["removeifpresent",{"_index":541,"name":{"1142":{},"1782":{}},"parent":{}}],["removeinboundinterceptor",{"_index":746,"name":{"1386":{}},"parent":{}}],["removeoption",{"_index":630,"name":{"1237":{}},"parent":{}}],["removeoutboundinterceptor",{"_index":744,"name":{"1384":{}},"parent":{}}],["replace",{"_index":542,"name":{"1143":{},"1784":{}},"parent":{}}],["replaceifpresent",{"_index":543,"name":{"1144":{},"1783":{}},"parent":{}}],["reply",{"_index":991,"name":{"1799":{}},"parent":{}}],["replyaddress",{"_index":989,"name":{"1797":{}},"parent":{}}],["replyandrequest",{"_index":992,"name":{"1800":{}},"parent":{}}],["replyfailure",{"_index":48,"name":{"49":{}},"parent":{"50":{},"51":{},"52":{}}}],["request",{"_index":2,"name":{"2":{},"1377":{},"1483":{},"1569":{}},"parent":{}}],["requestabs",{"_index":813,"name":{"1484":{}},"parent":{}}],["requesthandler",{"_index":886,"name":{"1599":{}},"parent":{}}],["requestoptions",{"_index":454,"name":{"952":{}},"parent":{"953":{},"954":{},"955":{},"956":{},"957":{},"958":{},"959":{},"960":{},"961":{},"962":{}}}],["requeststream",{"_index":885,"name":{"1598":{}},"parent":{}}],["required",{"_index":3,"name":{"3":{}},"parent":{}}],["reset",{"_index":846,"name":{"1542":{},"1700":{}},"parent":{}}],["resolvea",{"_index":729,"name":{"1365":{}},"parent":{}}],["resolveaaaa",{"_index":730,"name":{"1366":{}},"parent":{}}],["resolvecname",{"_index":731,"name":{"1367":{}},"parent":{}}],["resolvemx",{"_index":732,"name":{"1368":{}},"parent":{}}],["resolvens",{"_index":735,"name":{"1371":{}},"parent":{}}],["resolveptr",{"_index":734,"name":{"1370":{}},"parent":{}}],["resolvesrv",{"_index":736,"name":{"1372":{}},"parent":{}}],["resolvetxt",{"_index":733,"name":{"1369":{}},"parent":{}}],["response",{"_index":903,"name":{"1646":{}},"parent":{}}],["result",{"_index":516,"name":{"1114":{},"1262":{},"1468":{}},"parent":{}}],["resultat",{"_index":668,"name":{"1281":{}},"parent":{}}],["resume",{"_index":523,"name":{"1122":{},"1351":{},"1519":{},"1553":{},"1616":{},"1633":{},"1738":{},"1808":{},"1867":{},"1906":{},"1925":{},"1958":{},"2011":{},"2073":{},"2095":{}},"parent":{}}],["reverselookup",{"_index":737,"name":{"1373":{}},"parent":{}}],["runoncontext",{"_index":680,"name":{"1294":{},"2035":{}},"parent":{}}],["scheme",{"_index":900,"name":{"1640":{}},"parent":{}}],["selfsignedcertificate",{"_index":1037,"name":{"1927":{}},"parent":{"1928":{},"1929":{},"1930":{},"1931":{},"1932":{},"1933":{}}}],["send",{"_index":715,"name":{"1342":{},"1359":{},"1376":{},"1822":{}},"parent":{}}],["sender",{"_index":711,"name":{"1336":{},"1343":{},"1381":{}},"parent":{}}],["sendfile",{"_index":922,"name":{"1690":{},"1874":{}},"parent":{}}],["sendhead",{"_index":843,"name":{"1538":{}},"parent":{}}],["serverwebsocket",{"_index":1042,"name":{"1934":{}},"parent":{"1935":{},"1936":{},"1937":{},"1938":{},"1939":{},"1940":{},"1941":{},"1942":{},"1943":{},"1944":{},"1945":{},"1946":{},"1947":{},"1948":{},"1949":{},"1950":{},"1951":{},"1952":{},"1953":{},"1954":{},"1955":{},"1956":{},"1957":{},"1958":{},"1959":{},"1960":{},"1961":{},"1962":{},"1963":{},"1964":{},"1965":{},"1966":{},"1967":{},"1968":{},"1969":{},"1970":{},"1971":{},"1972":{},"1973":{},"1974":{},"1975":{},"1976":{},"1977":{}}}],["servfail",{"_index":10,"name":{"11":{}},"parent":{}}],["service",{"_index":1081,"name":{"2001":{}},"parent":{}}],["set",{"_index":1009,"name":{"1839":{}},"parent":{}}],["setacceptbacklog",{"_index":238,"name":{"263":{},"539":{},"768":{}},"parent":{}}],["setacceptunmaskedframes",{"_index":351,"name":{"541":{}},"parent":{}}],["setaddressresolveroptions",{"_index":467,"name":{"1039":{}},"parent":{}}],["setall",{"_index":1010,"name":{"1840":{}},"parent":{}}],["setalpnversions",{"_index":284,"name":{"384":{},"543":{}},"parent":{}}],["setappend",{"_index":393,"name":{"859":{}},"parent":{}}],["setargname",{"_index":89,"name":{"91":{},"887":{}},"parent":{}}],["setarguments",{"_index":627,"name":{"1234":{}},"parent":{}}],["setatomicmove",{"_index":178,"name":{"182":{}},"parent":{}}],["setblockedthreadcheckinterval",{"_index":469,"name":{"1041":{}},"parent":{}}],["setblockedthreadcheckintervalunit",{"_index":471,"name":{"1043":{}},"parent":{}}],["setbroadcast",{"_index":187,"name":{"192":{}},"parent":{}}],["setbuffer",{"_index":605,"name":{"1207":{}},"parent":{}}],["setbyte",{"_index":589,"name":{"1191":{}},"parent":{}}],["setbytes",{"_index":612,"name":{"1214":{}},"parent":{}}],["setcachemaxtimetolive",{"_index":60,"name":{"61":{}},"parent":{}}],["setcachemintimetolive",{"_index":62,"name":{"63":{}},"parent":{}}],["setcachenegativetimetolive",{"_index":64,"name":{"65":{}},"parent":{}}],["setcertpath",{"_index":433,"name":{"914":{}},"parent":{}}],["setcertpaths",{"_index":435,"name":{"916":{}},"parent":{}}],["setcertvalue",{"_index":436,"name":{"917":{}},"parent":{}}],["setcertvalues",{"_index":438,"name":{"919":{}},"parent":{}}],["setchoices",{"_index":419,"name":{"889":{}},"parent":{}}],["setchunked",{"_index":831,"name":{"1524":{},"1681":{}},"parent":{}}],["setclasspathresolvingenabled",{"_index":257,"name":{"354":{}},"parent":{}}],["setclientauth",{"_index":240,"name":{"265":{},"545":{},"770":{}},"parent":{}}],["setclientauthrequired",{"_index":353,"name":{"547":{},"772":{}},"parent":{}}],["setclustered",{"_index":250,"name":{"275":{},"1057":{}},"parent":{}}],["setclusterhost",{"_index":473,"name":{"1045":{}},"parent":{}}],["setclusterpinginterval",{"_index":242,"name":{"267":{},"1047":{}},"parent":{}}],["setclusterpingreplyinterval",{"_index":244,"name":{"269":{},"1049":{}},"parent":{}}],["setclusterport",{"_index":475,"name":{"1051":{}},"parent":{}}],["setclusterpublichost",{"_index":246,"name":{"271":{},"1053":{}},"parent":{}}],["setclusterpublicport",{"_index":248,"name":{"273":{},"1055":{}},"parent":{}}],["setcodecname",{"_index":198,"name":{"216":{}},"parent":{}}],["setcompressionlevel",{"_index":355,"name":{"549":{}},"parent":{}}],["setcompressionsupported",{"_index":357,"name":{"551":{}},"parent":{}}],["setconfig",{"_index":206,"name":{"225":{}},"parent":{}}],["setconnecttimeout",{"_index":104,"name":{"107":{},"277":{},"386":{},"687":{}},"parent":{}}],["setcopyattributes",{"_index":180,"name":{"184":{}},"parent":{}}],["setcreate",{"_index":395,"name":{"861":{}},"parent":{}}],["setcreatenew",{"_index":397,"name":{"863":{}},"parent":{}}],["setdebugdata",{"_index":264,"name":{"362":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":286,"name":{"392":{},"557":{}},"parent":{}}],["setdecompressionsupported",{"_index":359,"name":{"559":{}},"parent":{}}],["setdefaulthost",{"_index":288,"name":{"394":{}},"parent":{}}],["setdefaultport",{"_index":290,"name":{"396":{}},"parent":{}}],["setdefaultvalue",{"_index":91,"name":{"93":{},"892":{}},"parent":{}}],["setdeleteonclose",{"_index":399,"name":{"865":{}},"parent":{}}],["setdependency",{"_index":459,"name":{"966":{}},"parent":{}}],["setdescription",{"_index":93,"name":{"95":{},"894":{},"1222":{}},"parent":{}}],["setdomain",{"_index":693,"name":{"1315":{}},"parent":{}}],["setdouble",{"_index":599,"name":{"1201":{}},"parent":{}}],["setdsync",{"_index":401,"name":{"867":{}},"parent":{}}],["setenabled",{"_index":385,"name":{"683":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":112,"name":{"115":{},"285":{},"400":{},"563":{},"695":{},"780":{},"980":{}},"parent":{}}],["seterrorcode",{"_index":266,"name":{"364":{}},"parent":{}}],["seteventbusoptions",{"_index":477,"name":{"1059":{}},"parent":{}}],["seteventlooppoolsize",{"_index":479,"name":{"1061":{}},"parent":{}}],["setexclusive",{"_index":461,"name":{"968":{}},"parent":{}}],["setexpectmultipart",{"_index":906,"name":{"1656":{}},"parent":{}}],["setextraclasspath",{"_index":208,"name":{"227":{}},"parent":{}}],["setfilecachedir",{"_index":259,"name":{"356":{}},"parent":{}}],["setfilecachingenabled",{"_index":261,"name":{"358":{}},"parent":{}}],["setfileresolvercachingenabled",{"_index":481,"name":{"1063":{}},"parent":{}}],["setfilesystemoptions",{"_index":483,"name":{"1065":{}},"parent":{}}],["setflag",{"_index":422,"name":{"896":{}},"parent":{}}],["setfloat",{"_index":600,"name":{"1202":{}},"parent":{}}],["setfollowredirects",{"_index":830,"name":{"1522":{}},"parent":{}}],["setforcesni",{"_index":292,"name":{"403":{}},"parent":{}}],["setha",{"_index":210,"name":{"229":{}},"parent":{}}],["sethaenabled",{"_index":485,"name":{"1067":{}},"parent":{}}],["sethagroup",{"_index":487,"name":{"1069":{}},"parent":{}}],["sethandle100continueautomatically",{"_index":361,"name":{"566":{}},"parent":{}}],["sethandler",{"_index":663,"name":{"1273":{},"1460":{}},"parent":{}}],["sethandshake",{"_index":1062,"name":{"1976":{}},"parent":{}}],["setheadertablesize",{"_index":271,"name":{"370":{}},"parent":{}}],["sethelp",{"_index":424,"name":{"898":{}},"parent":{}}],["sethidden",{"_index":95,"name":{"97":{},"900":{},"1226":{}},"parent":{}}],["sethost",{"_index":231,"name":{"251":{},"288":{},"568":{},"783":{},"943":{},"956":{},"1096":{},"1533":{}},"parent":{}}],["sethostnameverificationalgorithm",{"_index":388,"name":{"698":{}},"parent":{}}],["sethostspath",{"_index":66,"name":{"67":{}},"parent":{}}],["sethostsvalue",{"_index":68,"name":{"69":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":294,"name":{"405":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":296,"name":{"407":{},"570":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":298,"name":{"409":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":300,"name":{"411":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":302,"name":{"413":{}},"parent":{}}],["sethttponly",{"_index":698,"name":{"1322":{}},"parent":{}}],["setidletimeout",{"_index":115,"name":{"118":{},"290":{},"415":{},"572":{},"700":{},"785":{},"983":{}},"parent":{}}],["setidletimeoutunit",{"_index":117,"name":{"120":{},"292":{},"417":{},"574":{},"702":{},"787":{},"985":{}},"parent":{}}],["setindex",{"_index":97,"name":{"99":{}},"parent":{}}],["setinitialsettings",{"_index":304,"name":{"419":{},"576":{}},"parent":{}}],["setinitialwindowsize",{"_index":273,"name":{"372":{}},"parent":{}}],["setinstances",{"_index":212,"name":{"231":{}},"parent":{}}],["setint",{"_index":591,"name":{"1193":{}},"parent":{}}],["setinternalblockingpoolsize",{"_index":489,"name":{"1071":{}},"parent":{}}],["setintle",{"_index":592,"name":{"1194":{}},"parent":{}}],["setipv6",{"_index":189,"name":{"194":{}},"parent":{}}],["setisolatedclasses",{"_index":214,"name":{"233":{}},"parent":{}}],["setisolationgroup",{"_index":216,"name":{"235":{}},"parent":{}}],["setjdksslengineoptions",{"_index":119,"name":{"122":{},"294":{},"421":{},"578":{},"704":{},"789":{},"987":{}},"parent":{}}],["setkeepalive",{"_index":306,"name":{"423":{}},"parent":{}}],["setkeepalivetimeout",{"_index":308,"name":{"425":{}},"parent":{}}],["setkeypath",{"_index":439,"name":{"920":{}},"parent":{}}],["setkeypaths",{"_index":441,"name":{"922":{}},"parent":{}}],["setkeystoreoptions",{"_index":121,"name":{"124":{},"296":{},"427":{},"580":{},"706":{},"791":{},"989":{}},"parent":{}}],["setkeyvalue",{"_index":442,"name":{"923":{}},"parent":{}}],["setkeyvalues",{"_index":444,"name":{"925":{}},"parent":{}}],["setlaststreamid",{"_index":268,"name":{"366":{}},"parent":{}}],["setlocaladdress",{"_index":123,"name":{"126":{},"429":{},"708":{}},"parent":{}}],["setlocalonly",{"_index":201,"name":{"219":{}},"parent":{}}],["setlogactivity",{"_index":125,"name":{"128":{},"196":{},"253":{},"298":{},"431":{},"582":{},"710":{},"793":{},"845":{},"991":{}},"parent":{}}],["setlong",{"_index":597,"name":{"1199":{}},"parent":{}}],["setlongle",{"_index":598,"name":{"1200":{}},"parent":{}}],["setlongname",{"_index":426,"name":{"902":{}},"parent":{}}],["setloopbackmodedisabled",{"_index":191,"name":{"198":{}},"parent":{}}],["setmaxage",{"_index":695,"name":{"1319":{}},"parent":{}}],["setmaxbufferedmessages",{"_index":996,"name":{"1814":{}},"parent":{}}],["setmaxchunksize",{"_index":310,"name":{"433":{},"584":{}},"parent":{}}],["setmaxconcurrentstreams",{"_index":275,"name":{"374":{}},"parent":{}}],["setmaxeventloopexecutetime",{"_index":491,"name":{"1073":{}},"parent":{}}],["setmaxeventloopexecutetimeunit",{"_index":493,"name":{"1075":{}},"parent":{}}],["setmaxframesize",{"_index":277,"name":{"376":{}},"parent":{}}],["setmaxheaderlistsize",{"_index":279,"name":{"378":{}},"parent":{}}],["setmaxheadersize",{"_index":312,"name":{"435":{},"586":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":314,"name":{"437":{},"588":{}},"parent":{}}],["setmaxpoolsize",{"_index":316,"name":{"439":{}},"parent":{}}],["setmaxqueries",{"_index":70,"name":{"71":{}},"parent":{}}],["setmaxredirects",{"_index":318,"name":{"441":{},"1523":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":320,"name":{"443":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":322,"name":{"445":{},"449":{},"590":{},"594":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":324,"name":{"447":{},"451":{},"592":{},"596":{}},"parent":{}}],["setmaxworkerexecutetime",{"_index":218,"name":{"237":{},"1077":{}},"parent":{}}],["setmaxworkerexecutetimeunit",{"_index":220,"name":{"239":{},"1079":{}},"parent":{}}],["setmedium",{"_index":595,"name":{"1197":{}},"parent":{}}],["setmediumle",{"_index":596,"name":{"1198":{}},"parent":{}}],["setmetricsname",{"_index":127,"name":{"130":{},"453":{},"712":{}},"parent":{}}],["setmetricsoptions",{"_index":495,"name":{"1081":{}},"parent":{}}],["setmulticastnetworkinterface",{"_index":193,"name":{"200":{}},"parent":{}}],["setmulticasttimetolive",{"_index":195,"name":{"202":{}},"parent":{}}],["setmultithreaded",{"_index":222,"name":{"241":{}},"parent":{}}],["setmultivalued",{"_index":99,"name":{"101":{},"904":{}},"parent":{}}],["setname",{"_index":617,"name":{"1220":{}},"parent":{}}],["setndots",{"_index":72,"name":{"73":{}},"parent":{}}],["setnofollowlinks",{"_index":182,"name":{"186":{}},"parent":{}}],["setopensslengineoptions",{"_index":129,"name":{"132":{},"300":{},"455":{},"598":{},"714":{},"795":{},"993":{}},"parent":{}}],["setoptions",{"_index":623,"name":{"1230":{}},"parent":{}}],["setoptresourceenabled",{"_index":74,"name":{"75":{}},"parent":{}}],["setoutput",{"_index":1031,"name":{"1914":{}},"parent":{}}],["setpassword",{"_index":378,"name":{"675":{},"935":{},"945":{}},"parent":{}}],["setpath",{"_index":380,"name":{"677":{},"937":{},"1317":{}},"parent":{}}],["setpemkeycertoptions",{"_index":131,"name":{"134":{},"302":{},"457":{},"600":{},"716":{},"797":{},"995":{}},"parent":{}}],["setpemtrustoptions",{"_index":133,"name":{"136":{},"304":{},"459":{},"602":{},"718":{},"799":{},"997":{}},"parent":{}}],["setperframewebsocketcompressionsupported",{"_index":363,"name":{"604":{},"606":{}},"parent":{}}],["setperiodic",{"_index":1098,"name":{"2032":{}},"parent":{}}],["setpermessagewebsocketcompressionsupported",{"_index":365,"name":{"608":{},"610":{}},"parent":{}}],["setperms",{"_index":403,"name":{"869":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":135,"name":{"138":{},"306":{},"461":{},"612":{},"720":{},"801":{},"999":{}},"parent":{}}],["setpfxtrustoptions",{"_index":137,"name":{"140":{},"308":{},"463":{},"614":{},"722":{},"803":{},"1001":{}},"parent":{}}],["setpipelining",{"_index":326,"name":{"465":{}},"parent":{}}],["setpipelininglimit",{"_index":328,"name":{"467":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":330,"name":{"469":{}},"parent":{}}],["setport",{"_index":233,"name":{"255":{},"310":{},"616":{},"805":{},"947":{},"958":{},"1098":{}},"parent":{}}],["setprefernativetransport",{"_index":497,"name":{"1083":{}},"parent":{}}],["setpriority",{"_index":633,"name":{"1240":{}},"parent":{}}],["setprotocolversion",{"_index":332,"name":{"471":{}},"parent":{}}],["setproxyoptions",{"_index":139,"name":{"142":{},"473":{},"724":{}},"parent":{}}],["setpushenabled",{"_index":281,"name":{"380":{}},"parent":{}}],["setquerytimeout",{"_index":76,"name":{"77":{},"257":{}},"parent":{}}],["setquorumsize",{"_index":499,"name":{"1085":{}},"parent":{}}],["setrawmethod",{"_index":835,"name":{"1528":{}},"parent":{}}],["setrdflag",{"_index":78,"name":{"79":{}},"parent":{}}],["setread",{"_index":405,"name":{"871":{}},"parent":{}}],["setreadbuffersize",{"_index":537,"name":{"1136":{}},"parent":{}}],["setreadlength",{"_index":534,"name":{"1133":{}},"parent":{}}],["setreadpos",{"_index":533,"name":{"1132":{}},"parent":{}}],["setreceivebuffersize",{"_index":141,"name":{"144":{},"204":{},"312":{},"475":{},"618":{},"726":{},"807":{},"847":{},"1003":{}},"parent":{}}],["setreconnectattempts",{"_index":252,"name":{"314":{},"728":{}},"parent":{}}],["setreconnectinterval",{"_index":254,"name":{"316":{},"730":{}},"parent":{}}],["setrecursiondesired",{"_index":235,"name":{"259":{}},"parent":{}}],["setreplaceexisting",{"_index":184,"name":{"188":{}},"parent":{}}],["setrequired",{"_index":101,"name":{"103":{},"907":{}},"parent":{}}],["setreuseaddress",{"_index":143,"name":{"146":{},"206":{},"318":{},"477":{},"620":{},"732":{},"809":{},"849":{},"1005":{}},"parent":{}}],["setreuseport",{"_index":145,"name":{"148":{},"208":{},"320":{},"479":{},"622":{},"734":{},"811":{},"851":{},"1007":{}},"parent":{}}],["setrotateservers",{"_index":80,"name":{"81":{}},"parent":{}}],["setsamesite",{"_index":700,"name":{"1324":{}},"parent":{}}],["setsearchdomains",{"_index":82,"name":{"83":{}},"parent":{}}],["setsecure",{"_index":696,"name":{"1320":{}},"parent":{}}],["setsendbuffersize",{"_index":147,"name":{"150":{},"210":{},"322":{},"481":{},"624":{},"736":{},"813":{},"853":{},"1009":{}},"parent":{}}],["setsendtimeout",{"_index":203,"name":{"221":{}},"parent":{}}],["setsendunmaskedframes",{"_index":334,"name":{"483":{}},"parent":{}}],["setservers",{"_index":85,"name":{"86":{}},"parent":{}}],["setsessioncacheenabled",{"_index":416,"name":{"883":{}},"parent":{}}],["setshort",{"_index":601,"name":{"1203":{}},"parent":{}}],["setshortle",{"_index":602,"name":{"1204":{}},"parent":{}}],["setshortname",{"_index":429,"name":{"909":{}},"parent":{}}],["setsinglevalued",{"_index":431,"name":{"911":{}},"parent":{}}],["setsni",{"_index":367,"name":{"626":{},"815":{}},"parent":{}}],["setsolinger",{"_index":149,"name":{"152":{},"324":{},"485":{},"628":{},"738":{},"817":{},"1011":{}},"parent":{}}],["setsparse",{"_index":407,"name":{"873":{}},"parent":{}}],["setssl",{"_index":151,"name":{"154":{},"326":{},"487":{},"630":{},"740":{},"819":{},"960":{},"1013":{},"1100":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":153,"name":{"156":{},"328":{},"489":{},"632":{},"742":{},"821":{},"1015":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":155,"name":{"158":{},"330":{},"491":{},"634":{},"744":{},"823":{},"1017":{}},"parent":{}}],["setstatuscode",{"_index":917,"name":{"1678":{}},"parent":{}}],["setstatusmessage",{"_index":919,"name":{"1680":{}},"parent":{}}],["setstreampriority",{"_index":850,"name":{"1547":{},"1702":{}},"parent":{}}],["setstring",{"_index":606,"name":{"1208":{}},"parent":{}}],["setsubprotocols",{"_index":506,"name":{"1102":{}},"parent":{}}],["setsummary",{"_index":619,"name":{"1224":{}},"parent":{}}],["setsync",{"_index":409,"name":{"875":{}},"parent":{}}],["settcpcork",{"_index":157,"name":{"160":{},"332":{},"493":{},"636":{},"746":{},"825":{},"1019":{}},"parent":{}}],["settcpfastopen",{"_index":159,"name":{"162":{},"334":{},"495":{},"638":{},"748":{},"827":{},"1021":{}},"parent":{}}],["settcpkeepalive",{"_index":161,"name":{"164":{},"336":{},"497":{},"640":{},"750":{},"829":{},"1023":{}},"parent":{}}],["settcpnodelay",{"_index":163,"name":{"166":{},"338":{},"499":{},"642":{},"752":{},"831":{},"1025":{}},"parent":{}}],["settcpquickack",{"_index":165,"name":{"168":{},"340":{},"501":{},"644":{},"754":{},"833":{},"1027":{}},"parent":{}}],["settimeout",{"_index":844,"name":{"1540":{}},"parent":{}}],["settimer",{"_index":1096,"name":{"2030":{}},"parent":{}}],["settings",{"_index":871,"name":{"1580":{}},"parent":{}}],["settrafficclass",{"_index":167,"name":{"170":{},"212":{},"342":{},"503":{},"646":{},"756":{},"835":{},"855":{},"1029":{}},"parent":{}}],["settruncateexisting",{"_index":411,"name":{"877":{}},"parent":{}}],["settrustall",{"_index":169,"name":{"172":{},"344":{},"505":{},"758":{}},"parent":{}}],["settruststoreoptions",{"_index":171,"name":{"174":{},"346":{},"507":{},"648":{},"760":{},"837":{},"1031":{}},"parent":{}}],["settryusecompression",{"_index":336,"name":{"509":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":337,"name":{"510":{},"511":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":339,"name":{"513":{},"515":{}},"parent":{}}],["settype",{"_index":451,"name":{"949":{}},"parent":{}}],["setunsignedbyte",{"_index":590,"name":{"1192":{}},"parent":{}}],["setunsignedint",{"_index":593,"name":{"1195":{}},"parent":{}}],["setunsignedintle",{"_index":594,"name":{"1196":{}},"parent":{}}],["setunsignedshort",{"_index":603,"name":{"1205":{}},"parent":{}}],["setunsignedshortle",{"_index":604,"name":{"1206":{}},"parent":{}}],["seturi",{"_index":456,"name":{"962":{},"1105":{}},"parent":{}}],["setusealpn",{"_index":173,"name":{"176":{},"348":{},"519":{},"650":{},"762":{},"839":{},"1033":{}},"parent":{}}],["setusepooledbuffers",{"_index":175,"name":{"178":{},"350":{},"521":{},"652":{},"764":{},"841":{},"1035":{}},"parent":{}}],["setusername",{"_index":453,"name":{"951":{}},"parent":{}}],["setvalue",{"_index":382,"name":{"679":{},"939":{},"1314":{}},"parent":{}}],["setverifyhost",{"_index":342,"name":{"523":{}},"parent":{}}],["setversion",{"_index":509,"name":{"1107":{}},"parent":{}}],["setwarningexceptiontime",{"_index":501,"name":{"1087":{}},"parent":{}}],["setwarningexceptiontimeunit",{"_index":503,"name":{"1089":{}},"parent":{}}],["setwebsocketallowservernocontext",{"_index":369,"name":{"654":{},"663":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":344,"name":{"525":{},"531":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":346,"name":{"527":{},"533":{},"656":{},"665":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":348,"name":{"529":{},"535":{}},"parent":{}}],["setwebsocketpreferredclientnocontext",{"_index":371,"name":{"658":{},"667":{}},"parent":{}}],["setwebsocketsubprotocols",{"_index":373,"name":{"660":{},"669":{}},"parent":{}}],["setweight",{"_index":463,"name":{"970":{}},"parent":{}}],["setwindowsize",{"_index":866,"name":{"1573":{}},"parent":{}}],["setworker",{"_index":224,"name":{"243":{}},"parent":{}}],["setworkerpoolname",{"_index":226,"name":{"245":{}},"parent":{}}],["setworkerpoolsize",{"_index":228,"name":{"247":{},"1091":{}},"parent":{}}],["setwrite",{"_index":413,"name":{"879":{}},"parent":{}}],["setwritepos",{"_index":535,"name":{"1134":{}},"parent":{}}],["setwritequeuemaxsize",{"_index":526,"name":{"1125":{},"1515":{},"1675":{},"1825":{},"1871":{},"1898":{},"1962":{},"2077":{},"2099":{},"2148":{}},"parent":{}}],["shareddata",{"_index":1063,"name":{"1978":{},"2029":{}},"parent":{"1979":{},"1980":{},"1981":{},"1982":{},"1983":{},"1984":{},"1985":{},"1986":{},"1987":{},"1988":{}}}],["shutdown",{"_index":869,"name":{"1577":{}},"parent":{}}],["shutdownhandler",{"_index":868,"name":{"1576":{}},"parent":{}}],["size",{"_index":545,"name":{"1146":{},"1282":{},"1397":{},"1624":{},"1779":{},"1843":{}},"parent":{}}],["slice",{"_index":609,"name":{"1211":{}},"parent":{}}],["socketaddress",{"_index":1074,"name":{"1989":{}},"parent":{"1990":{},"1991":{},"1992":{},"1993":{},"1994":{}}}],["socks4",{"_index":46,"name":{"47":{}},"parent":{}}],["socks5",{"_index":47,"name":{"48":{}},"parent":{}}],["srvrecord",{"_index":1078,"name":{"1995":{}},"parent":{"1996":{},"1997":{},"1998":{},"1999":{},"2000":{},"2001":{},"2002":{}}}],["sslsession",{"_index":879,"name":{"1591":{},"1669":{},"1882":{},"1977":{},"2086":{},"2124":{}},"parent":{}}],["start",{"_index":1026,"name":{"1899":{}},"parent":{}}],["start_array",{"_index":41,"name":{"42":{}},"parent":{}}],["start_object",{"_index":39,"name":{"40":{}},"parent":{}}],["statuscode",{"_index":854,"name":{"1559":{}},"parent":{}}],["statusmessage",{"_index":855,"name":{"1560":{}},"parent":{}}],["stop",{"_index":1027,"name":{"1900":{}},"parent":{}}],["streambase",{"_index":1083,"name":{"2003":{}},"parent":{"2004":{}}}],["streamid",{"_index":849,"name":{"1546":{},"1698":{}},"parent":{}}],["streampriority",{"_index":457,"name":{"963":{},"1665":{}},"parent":{"964":{},"965":{},"966":{},"967":{},"968":{},"969":{},"970":{}}}],["streampriorityhandler",{"_index":863,"name":{"1570":{},"1666":{}},"parent":{}}],["streamtofilesystem",{"_index":890,"name":{"1618":{}},"parent":{}}],["strict",{"_index":5,"name":{"6":{}},"parent":{}}],["stringvalue",{"_index":942,"name":{"1717":{}},"parent":{}}],["subprotocol",{"_index":1045,"name":{"1941":{},"2056":{},"2103":{}},"parent":{}}],["succeeded",{"_index":513,"name":{"1111":{},"1278":{},"1470":{}},"parent":{}}],["succeededfuture",{"_index":670,"name":{"1284":{},"1457":{}},"parent":{}}],["symlink",{"_index":777,"name":{"1419":{}},"parent":{}}],["symlinkblocking",{"_index":778,"name":{"1420":{}},"parent":{}}],["target",{"_index":1082,"name":{"2002":{}},"parent":{}}],["tcpssloptions",{"_index":464,"name":{"971":{}},"parent":{"972":{},"973":{},"974":{},"975":{},"976":{},"977":{},"978":{},"979":{},"980":{},"981":{},"982":{},"983":{},"984":{},"985":{},"986":{},"987":{},"988":{},"989":{},"990":{},"991":{},"992":{},"993":{},"994":{},"995":{},"996":{},"997":{},"998":{},"999":{},"1000":{},"1001":{},"1002":{},"1003":{},"1004":{},"1005":{},"1006":{},"1007":{},"1008":{},"1009":{},"1010":{},"1011":{},"1012":{},"1013":{},"1014":{},"1015":{},"1016":{},"1017":{},"1018":{},"1019":{},"1020":{},"1021":{},"1022":{},"1023":{},"1024":{},"1025":{},"1026":{},"1027":{},"1028":{},"1029":{},"1030":{},"1031":{},"1032":{},"1033":{},"1034":{},"1035":{}}}],["textdata",{"_index":1121,"name":{"2135":{}},"parent":{}}],["textframe",{"_index":1113,"name":{"2127":{}},"parent":{}}],["texthandlerid",{"_index":1044,"name":{"1940":{},"2055":{},"2102":{}},"parent":{}}],["textmessagehandler",{"_index":1050,"name":{"1947":{},"2062":{},"2116":{}},"parent":{}}],["then",{"_index":675,"name":{"1289":{},"1480":{}},"parent":{}}],["timeout",{"_index":49,"name":{"50":{}},"parent":{}}],["timeoutstream",{"_index":1084,"name":{"2005":{}},"parent":{"2006":{},"2007":{},"2008":{},"2009":{},"2010":{},"2011":{},"2012":{},"2013":{},"2014":{}}}],["timerstream",{"_index":1097,"name":{"2031":{}},"parent":{}}],["to",{"_index":1023,"name":{"1887":{}},"parent":{}}],["tojson",{"_index":550,"name":{"1152":{}},"parent":{}}],["tojsonarray",{"_index":549,"name":{"1151":{}},"parent":{}}],["tojsonobject",{"_index":548,"name":{"1150":{}},"parent":{}}],["tostring",{"_index":547,"name":{"1149":{},"1747":{}},"parent":{}}],["totalspace",{"_index":809,"name":{"1452":{}},"parent":{}}],["touri",{"_index":969,"name":{"1760":{}},"parent":{}}],["trace",{"_index":30,"name":{"31":{}},"parent":{}}],["tracedquery",{"_index":966,"name":{"1754":{}},"parent":{}}],["trailers",{"_index":858,"name":{"1564":{},"1685":{}},"parent":{}}],["truncate",{"_index":763,"name":{"1405":{}},"parent":{}}],["truncateblocking",{"_index":764,"name":{"1406":{}},"parent":{}}],["trustoptions",{"_index":1039,"name":{"1929":{}},"parent":{}}],["trycomplete",{"_index":652,"name":{"1261":{},"1466":{},"1893":{}},"parent":{}}],["tryfail",{"_index":673,"name":{"1287":{},"1467":{},"1894":{}},"parent":{}}],["type",{"_index":881,"name":{"1593":{},"1706":{}},"parent":{}}],["unallocatedspace",{"_index":810,"name":{"1453":{}},"parent":{}}],["undeploy",{"_index":1102,"name":{"2038":{}},"parent":{}}],["unlink",{"_index":779,"name":{"1421":{}},"parent":{}}],["unlinkblocking",{"_index":780,"name":{"1422":{}},"parent":{}}],["unlistenmulticastgroup",{"_index":718,"name":{"1347":{}},"parent":{}}],["unregister",{"_index":999,"name":{"1817":{}},"parent":{}}],["unregistercodec",{"_index":748,"name":{"1388":{}},"parent":{}}],["unregisterverticlefactory",{"_index":1107,"name":{"2046":{}},"parent":{}}],["updatesettings",{"_index":872,"name":{"1581":{}},"parent":{}}],["upgrade",{"_index":911,"name":{"1661":{}},"parent":{}}],["upgradetossl",{"_index":1019,"name":{"1879":{}},"parent":{}}],["uploadhandler",{"_index":908,"name":{"1658":{}},"parent":{}}],["uri",{"_index":837,"name":{"1530":{},"1641":{},"1971":{}},"parent":{}}],["usablespace",{"_index":811,"name":{"1454":{}},"parent":{}}],["v00",{"_index":53,"name":{"54":{}},"parent":{}}],["v07",{"_index":54,"name":{"55":{}},"parent":{}}],["v08",{"_index":55,"name":{"56":{}},"parent":{}}],["v13",{"_index":56,"name":{"57":{}},"parent":{}}],["value",{"_index":43,"name":{"44":{},"1708":{}},"parent":{}}],["version",{"_index":853,"name":{"1558":{},"1636":{}},"parent":{}}],["verticlefactories",{"_index":1108,"name":{"2047":{}},"parent":{}}],["vertx",{"_index":1086,"name":{"2015":{},"2017":{}},"parent":{"2016":{},"2017":{},"2018":{},"2019":{},"2020":{},"2021":{},"2022":{},"2023":{},"2024":{},"2025":{},"2026":{},"2027":{},"2028":{},"2029":{},"2030":{},"2031":{},"2032":{},"2033":{},"2034":{},"2035":{},"2036":{},"2037":{},"2038":{},"2039":{},"2040":{},"2041":{},"2042":{},"2043":{},"2044":{},"2045":{},"2046":{},"2047":{},"2048":{}}}],["vertxoptions",{"_index":465,"name":{"1036":{}},"parent":{"1037":{},"1038":{},"1039":{},"1040":{},"1041":{},"1042":{},"1043":{},"1044":{},"1045":{},"1046":{},"1047":{},"1048":{},"1049":{},"1050":{},"1051":{},"1052":{},"1053":{},"1054":{},"1055":{},"1056":{},"1057":{},"1058":{},"1059":{},"1060":{},"1061":{},"1062":{},"1063":{},"1064":{},"1065":{},"1066":{},"1067":{},"1068":{},"1069":{},"1070":{},"1071":{},"1072":{},"1073":{},"1074":{},"1075":{},"1076":{},"1077":{},"1078":{},"1079":{},"1080":{},"1081":{},"1082":{},"1083":{},"1084":{},"1085":{},"1086":{},"1087":{},"1088":{},"1089":{},"1090":{},"1091":{}}}],["websocket",{"_index":823,"name":{"1500":{},"1502":{},"2049":{}},"parent":{"2050":{},"2051":{},"2052":{},"2053":{},"2054":{},"2055":{},"2056":{},"2057":{},"2058":{},"2059":{},"2060":{},"2061":{},"2062":{},"2063":{},"2064":{},"2065":{},"2066":{},"2067":{},"2068":{},"2069":{},"2070":{},"2071":{},"2072":{},"2073":{},"2074":{},"2075":{},"2076":{},"2077":{},"2078":{},"2079":{},"2080":{},"2081":{},"2082":{},"2083":{},"2084":{},"2085":{},"2086":{}}}],["websocketabs",{"_index":824,"name":{"1501":{},"1503":{}},"parent":{}}],["websocketbase",{"_index":1110,"name":{"2087":{}},"parent":{"2088":{},"2089":{},"2090":{},"2091":{},"2092":{},"2093":{},"2094":{},"2095":{},"2096":{},"2097":{},"2098":{},"2099":{},"2100":{},"2101":{},"2102":{},"2103":{},"2104":{},"2105":{},"2106":{},"2107":{},"2108":{},"2109":{},"2110":{},"2111":{},"2112":{},"2113":{},"2114":{},"2115":{},"2116":{},"2117":{},"2118":{},"2119":{},"2120":{},"2121":{},"2122":{},"2123":{},"2124":{}}}],["websocketconnectoptions",{"_index":504,"name":{"1092":{}},"parent":{"1093":{},"1094":{},"1095":{},"1096":{},"1097":{},"1098":{},"1099":{},"1100":{},"1101":{},"1102":{},"1103":{},"1104":{},"1105":{},"1106":{},"1107":{}}}],["websocketframe",{"_index":1111,"name":{"2125":{}},"parent":{"2126":{},"2127":{},"2128":{},"2129":{},"2130":{},"2131":{},"2132":{},"2133":{},"2134":{},"2135":{},"2136":{},"2137":{},"2138":{},"2139":{}}}],["websockethandler",{"_index":887,"name":{"1604":{},"1605":{}},"parent":{}}],["websocketstream",{"_index":825,"name":{"1504":{},"1602":{},"1603":{}},"parent":{}}],["websocketstreamabs",{"_index":826,"name":{"1505":{}},"parent":{}}],["websocketversion",{"_index":52,"name":{"53":{}},"parent":{"54":{},"55":{},"56":{},"57":{}}}],["weight",{"_index":1079,"name":{"1997":{}},"parent":{}}],["workerexecutor",{"_index":1124,"name":{"2140":{}},"parent":{"2141":{},"2142":{},"2143":{}}}],["write",{"_index":525,"name":{"1124":{},"1514":{},"1674":{},"1731":{},"1755":{},"1824":{},"1870":{},"1961":{},"2076":{},"2098":{},"2146":{}},"parent":{}}],["writearrayelement",{"_index":978,"name":{"1772":{}},"parent":{}}],["writebinarymessage",{"_index":1057,"name":{"1967":{},"2082":{},"2110":{}},"parent":{}}],["writecontinue",{"_index":921,"name":{"1689":{}},"parent":{}}],["writecustomframe",{"_index":848,"name":{"1545":{},"1701":{}},"parent":{}}],["writefile",{"_index":794,"name":{"1437":{}},"parent":{}}],["writefileblocking",{"_index":795,"name":{"1438":{}},"parent":{}}],["writefinalbinaryframe",{"_index":1056,"name":{"1966":{},"2081":{},"2109":{}},"parent":{}}],["writefinaltextframe",{"_index":1055,"name":{"1965":{},"2080":{},"2108":{}},"parent":{}}],["writeframe",{"_index":1054,"name":{"1964":{},"2079":{},"2107":{}},"parent":{}}],["writehandlerid",{"_index":1018,"name":{"1873":{}},"parent":{}}],["writejson",{"_index":967,"name":{"1756":{}},"parent":{}}],["writeobjectparameter",{"_index":977,"name":{"1771":{}},"parent":{}}],["writeping",{"_index":1048,"name":{"1945":{},"2060":{},"2112":{}},"parent":{}}],["writepong",{"_index":1049,"name":{"1946":{},"2061":{},"2113":{}},"parent":{}}],["writequeuefull",{"_index":519,"name":{"1117":{},"1510":{},"1672":{},"1821":{},"1861":{},"1936":{},"2051":{},"2089":{},"2149":{}},"parent":{}}],["writestream",{"_index":1125,"name":{"2144":{}},"parent":{"2145":{},"2146":{},"2147":{},"2148":{},"2149":{},"2150":{}}}],["writetextmessage",{"_index":1058,"name":{"1968":{},"2083":{},"2111":{}},"parent":{}}],["yxdomain",{"_index":14,"name":{"15":{}},"parent":{}}],["yxrrset",{"_index":15,"name":{"16":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"4":"Enumeration","16":"Enumeration member","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":4,"name":"ClientAuth","url":"enums/clientauth.html","classes":"tsd-kind-enum"},{"id":1,"kind":16,"name":"NONE","url":"enums/clientauth.html#none","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ClientAuth"},{"id":2,"kind":16,"name":"REQUEST","url":"enums/clientauth.html#request","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ClientAuth"},{"id":3,"kind":16,"name":"REQUIRED","url":"enums/clientauth.html#required","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ClientAuth"},{"id":4,"kind":4,"name":"CookieSameSite","url":"enums/cookiesamesite.html","classes":"tsd-kind-enum"},{"id":5,"kind":16,"name":"NONE","url":"enums/cookiesamesite.html#none","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"CookieSameSite"},{"id":6,"kind":16,"name":"STRICT","url":"enums/cookiesamesite.html#strict","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"CookieSameSite"},{"id":7,"kind":16,"name":"LAX","url":"enums/cookiesamesite.html#lax","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"CookieSameSite"},{"id":8,"kind":4,"name":"DnsResponseCode","url":"enums/dnsresponsecode.html","classes":"tsd-kind-enum"},{"id":9,"kind":16,"name":"NOERROR","url":"enums/dnsresponsecode.html#noerror","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":10,"kind":16,"name":"FORMERROR","url":"enums/dnsresponsecode.html#formerror","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":11,"kind":16,"name":"SERVFAIL","url":"enums/dnsresponsecode.html#servfail","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":12,"kind":16,"name":"NXDOMAIN","url":"enums/dnsresponsecode.html#nxdomain","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":13,"kind":16,"name":"NOTIMPL","url":"enums/dnsresponsecode.html#notimpl","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":14,"kind":16,"name":"REFUSED","url":"enums/dnsresponsecode.html#refused","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":15,"kind":16,"name":"YXDOMAIN","url":"enums/dnsresponsecode.html#yxdomain","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":16,"kind":16,"name":"YXRRSET","url":"enums/dnsresponsecode.html#yxrrset","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":17,"kind":16,"name":"NXRRSET","url":"enums/dnsresponsecode.html#nxrrset","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":18,"kind":16,"name":"NOTAUTH","url":"enums/dnsresponsecode.html#notauth","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":19,"kind":16,"name":"NOTZONE","url":"enums/dnsresponsecode.html#notzone","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":20,"kind":16,"name":"BADVERS","url":"enums/dnsresponsecode.html#badvers","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":21,"kind":16,"name":"BADSIG","url":"enums/dnsresponsecode.html#badsig","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":22,"kind":16,"name":"BADKEY","url":"enums/dnsresponsecode.html#badkey","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":23,"kind":16,"name":"BADTIME","url":"enums/dnsresponsecode.html#badtime","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"DnsResponseCode"},{"id":24,"kind":4,"name":"HttpMethod","url":"enums/httpmethod.html","classes":"tsd-kind-enum"},{"id":25,"kind":16,"name":"OPTIONS","url":"enums/httpmethod.html#options","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":26,"kind":16,"name":"GET","url":"enums/httpmethod.html#get","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":27,"kind":16,"name":"HEAD","url":"enums/httpmethod.html#head","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":28,"kind":16,"name":"POST","url":"enums/httpmethod.html#post","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":29,"kind":16,"name":"PUT","url":"enums/httpmethod.html#put","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":30,"kind":16,"name":"DELETE","url":"enums/httpmethod.html#delete","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":31,"kind":16,"name":"TRACE","url":"enums/httpmethod.html#trace","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":32,"kind":16,"name":"CONNECT","url":"enums/httpmethod.html#connect","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":33,"kind":16,"name":"PATCH","url":"enums/httpmethod.html#patch","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":34,"kind":16,"name":"OTHER","url":"enums/httpmethod.html#other","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpMethod"},{"id":35,"kind":4,"name":"HttpVersion","url":"enums/httpversion.html","classes":"tsd-kind-enum"},{"id":36,"kind":16,"name":"HTTP_1_0","url":"enums/httpversion.html#http_1_0","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpVersion"},{"id":37,"kind":16,"name":"HTTP_1_1","url":"enums/httpversion.html#http_1_1","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpVersion"},{"id":38,"kind":16,"name":"HTTP_2","url":"enums/httpversion.html#http_2","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"HttpVersion"},{"id":39,"kind":4,"name":"JsonEventType","url":"enums/jsoneventtype.html","classes":"tsd-kind-enum"},{"id":40,"kind":16,"name":"START_OBJECT","url":"enums/jsoneventtype.html#start_object","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":41,"kind":16,"name":"END_OBJECT","url":"enums/jsoneventtype.html#end_object","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":42,"kind":16,"name":"START_ARRAY","url":"enums/jsoneventtype.html#start_array","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":43,"kind":16,"name":"END_ARRAY","url":"enums/jsoneventtype.html#end_array","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":44,"kind":16,"name":"VALUE","url":"enums/jsoneventtype.html#value","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"JsonEventType"},{"id":45,"kind":4,"name":"ProxyType","url":"enums/proxytype.html","classes":"tsd-kind-enum"},{"id":46,"kind":16,"name":"HTTP","url":"enums/proxytype.html#http","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ProxyType"},{"id":47,"kind":16,"name":"SOCKS4","url":"enums/proxytype.html#socks4","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ProxyType"},{"id":48,"kind":16,"name":"SOCKS5","url":"enums/proxytype.html#socks5","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ProxyType"},{"id":49,"kind":4,"name":"ReplyFailure","url":"enums/replyfailure.html","classes":"tsd-kind-enum"},{"id":50,"kind":16,"name":"TIMEOUT","url":"enums/replyfailure.html#timeout","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ReplyFailure"},{"id":51,"kind":16,"name":"NO_HANDLERS","url":"enums/replyfailure.html#no_handlers","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ReplyFailure"},{"id":52,"kind":16,"name":"RECIPIENT_FAILURE","url":"enums/replyfailure.html#recipient_failure","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ReplyFailure"},{"id":53,"kind":4,"name":"WebsocketVersion","url":"enums/websocketversion.html","classes":"tsd-kind-enum"},{"id":54,"kind":16,"name":"V00","url":"enums/websocketversion.html#v00","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":55,"kind":16,"name":"V07","url":"enums/websocketversion.html#v07","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":56,"kind":16,"name":"V08","url":"enums/websocketversion.html#v08","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":57,"kind":16,"name":"V13","url":"enums/websocketversion.html#v13","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WebsocketVersion"},{"id":58,"kind":128,"name":"AddressResolverOptions","url":"classes/addressresolveroptions.html","classes":"tsd-kind-class"},{"id":59,"kind":512,"name":"constructor","url":"classes/addressresolveroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":60,"kind":2048,"name":"getCacheMaxTimeToLive","url":"classes/addressresolveroptions.html#getcachemaxtimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":61,"kind":2048,"name":"setCacheMaxTimeToLive","url":"classes/addressresolveroptions.html#setcachemaxtimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":62,"kind":2048,"name":"getCacheMinTimeToLive","url":"classes/addressresolveroptions.html#getcachemintimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":63,"kind":2048,"name":"setCacheMinTimeToLive","url":"classes/addressresolveroptions.html#setcachemintimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":64,"kind":2048,"name":"getCacheNegativeTimeToLive","url":"classes/addressresolveroptions.html#getcachenegativetimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":65,"kind":2048,"name":"setCacheNegativeTimeToLive","url":"classes/addressresolveroptions.html#setcachenegativetimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":66,"kind":2048,"name":"getHostsPath","url":"classes/addressresolveroptions.html#gethostspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":67,"kind":2048,"name":"setHostsPath","url":"classes/addressresolveroptions.html#sethostspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":68,"kind":2048,"name":"getHostsValue","url":"classes/addressresolveroptions.html#gethostsvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":69,"kind":2048,"name":"setHostsValue","url":"classes/addressresolveroptions.html#sethostsvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":70,"kind":2048,"name":"getMaxQueries","url":"classes/addressresolveroptions.html#getmaxqueries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":71,"kind":2048,"name":"setMaxQueries","url":"classes/addressresolveroptions.html#setmaxqueries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":72,"kind":2048,"name":"getNdots","url":"classes/addressresolveroptions.html#getndots","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":73,"kind":2048,"name":"setNdots","url":"classes/addressresolveroptions.html#setndots","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":74,"kind":2048,"name":"isOptResourceEnabled","url":"classes/addressresolveroptions.html#isoptresourceenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":75,"kind":2048,"name":"setOptResourceEnabled","url":"classes/addressresolveroptions.html#setoptresourceenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":76,"kind":2048,"name":"getQueryTimeout","url":"classes/addressresolveroptions.html#getquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":77,"kind":2048,"name":"setQueryTimeout","url":"classes/addressresolveroptions.html#setquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":78,"kind":2048,"name":"getRdFlag","url":"classes/addressresolveroptions.html#getrdflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":79,"kind":2048,"name":"setRdFlag","url":"classes/addressresolveroptions.html#setrdflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":80,"kind":2048,"name":"isRotateServers","url":"classes/addressresolveroptions.html#isrotateservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":81,"kind":2048,"name":"setRotateServers","url":"classes/addressresolveroptions.html#setrotateservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":82,"kind":2048,"name":"getSearchDomains","url":"classes/addressresolveroptions.html#getsearchdomains","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":83,"kind":2048,"name":"setSearchDomains","url":"classes/addressresolveroptions.html#setsearchdomains","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":84,"kind":2048,"name":"addSearchDomain","url":"classes/addressresolveroptions.html#addsearchdomain","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":85,"kind":2048,"name":"getServers","url":"classes/addressresolveroptions.html#getservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":86,"kind":2048,"name":"setServers","url":"classes/addressresolveroptions.html#setservers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":87,"kind":2048,"name":"addServer","url":"classes/addressresolveroptions.html#addserver","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AddressResolverOptions"},{"id":88,"kind":128,"name":"Argument","url":"classes/argument.html","classes":"tsd-kind-class"},{"id":89,"kind":512,"name":"constructor","url":"classes/argument.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Argument"},{"id":90,"kind":2048,"name":"getArgName","url":"classes/argument.html#getargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":91,"kind":2048,"name":"setArgName","url":"classes/argument.html#setargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":92,"kind":2048,"name":"getDefaultValue","url":"classes/argument.html#getdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":93,"kind":2048,"name":"setDefaultValue","url":"classes/argument.html#setdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":94,"kind":2048,"name":"getDescription","url":"classes/argument.html#getdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":95,"kind":2048,"name":"setDescription","url":"classes/argument.html#setdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":96,"kind":2048,"name":"isHidden","url":"classes/argument.html#ishidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":97,"kind":2048,"name":"setHidden","url":"classes/argument.html#sethidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":98,"kind":2048,"name":"getIndex","url":"classes/argument.html#getindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":99,"kind":2048,"name":"setIndex","url":"classes/argument.html#setindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":100,"kind":2048,"name":"isMultiValued","url":"classes/argument.html#ismultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":101,"kind":2048,"name":"setMultiValued","url":"classes/argument.html#setmultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":102,"kind":2048,"name":"isRequired","url":"classes/argument.html#isrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":103,"kind":2048,"name":"setRequired","url":"classes/argument.html#setrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Argument"},{"id":104,"kind":128,"name":"ClientOptionsBase","url":"classes/clientoptionsbase.html","classes":"tsd-kind-class"},{"id":105,"kind":512,"name":"constructor","url":"classes/clientoptionsbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":106,"kind":2048,"name":"getConnectTimeout","url":"classes/clientoptionsbase.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":107,"kind":2048,"name":"setConnectTimeout","url":"classes/clientoptionsbase.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":108,"kind":2048,"name":"getCrlPaths","url":"classes/clientoptionsbase.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":109,"kind":2048,"name":"addCrlPath","url":"classes/clientoptionsbase.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":110,"kind":2048,"name":"getCrlValues","url":"classes/clientoptionsbase.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":111,"kind":2048,"name":"addCrlValue","url":"classes/clientoptionsbase.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":112,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/clientoptionsbase.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":113,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/clientoptionsbase.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":114,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/clientoptionsbase.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":115,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/clientoptionsbase.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":116,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/clientoptionsbase.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":117,"kind":2048,"name":"getIdleTimeout","url":"classes/clientoptionsbase.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":118,"kind":2048,"name":"setIdleTimeout","url":"classes/clientoptionsbase.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":119,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/clientoptionsbase.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":120,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/clientoptionsbase.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":121,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/clientoptionsbase.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":122,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/clientoptionsbase.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":123,"kind":2048,"name":"getKeyStoreOptions","url":"classes/clientoptionsbase.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":124,"kind":2048,"name":"setKeyStoreOptions","url":"classes/clientoptionsbase.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":125,"kind":2048,"name":"getLocalAddress","url":"classes/clientoptionsbase.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":126,"kind":2048,"name":"setLocalAddress","url":"classes/clientoptionsbase.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":127,"kind":2048,"name":"getLogActivity","url":"classes/clientoptionsbase.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":128,"kind":2048,"name":"setLogActivity","url":"classes/clientoptionsbase.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":129,"kind":2048,"name":"getMetricsName","url":"classes/clientoptionsbase.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":130,"kind":2048,"name":"setMetricsName","url":"classes/clientoptionsbase.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":131,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/clientoptionsbase.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":132,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/clientoptionsbase.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":133,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/clientoptionsbase.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":134,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/clientoptionsbase.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":135,"kind":2048,"name":"getPemTrustOptions","url":"classes/clientoptionsbase.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":136,"kind":2048,"name":"setPemTrustOptions","url":"classes/clientoptionsbase.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":137,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/clientoptionsbase.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":138,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/clientoptionsbase.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":139,"kind":2048,"name":"getPfxTrustOptions","url":"classes/clientoptionsbase.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":140,"kind":2048,"name":"setPfxTrustOptions","url":"classes/clientoptionsbase.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":141,"kind":2048,"name":"getProxyOptions","url":"classes/clientoptionsbase.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":142,"kind":2048,"name":"setProxyOptions","url":"classes/clientoptionsbase.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":143,"kind":2048,"name":"getReceiveBufferSize","url":"classes/clientoptionsbase.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":144,"kind":2048,"name":"setReceiveBufferSize","url":"classes/clientoptionsbase.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":145,"kind":2048,"name":"isReuseAddress","url":"classes/clientoptionsbase.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":146,"kind":2048,"name":"setReuseAddress","url":"classes/clientoptionsbase.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":147,"kind":2048,"name":"isReusePort","url":"classes/clientoptionsbase.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":148,"kind":2048,"name":"setReusePort","url":"classes/clientoptionsbase.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":149,"kind":2048,"name":"getSendBufferSize","url":"classes/clientoptionsbase.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":150,"kind":2048,"name":"setSendBufferSize","url":"classes/clientoptionsbase.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":151,"kind":2048,"name":"getSoLinger","url":"classes/clientoptionsbase.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":152,"kind":2048,"name":"setSoLinger","url":"classes/clientoptionsbase.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":153,"kind":2048,"name":"isSsl","url":"classes/clientoptionsbase.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":154,"kind":2048,"name":"setSsl","url":"classes/clientoptionsbase.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":155,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/clientoptionsbase.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":156,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/clientoptionsbase.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":157,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/clientoptionsbase.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":158,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/clientoptionsbase.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":159,"kind":2048,"name":"isTcpCork","url":"classes/clientoptionsbase.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":160,"kind":2048,"name":"setTcpCork","url":"classes/clientoptionsbase.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":161,"kind":2048,"name":"isTcpFastOpen","url":"classes/clientoptionsbase.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":162,"kind":2048,"name":"setTcpFastOpen","url":"classes/clientoptionsbase.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":163,"kind":2048,"name":"isTcpKeepAlive","url":"classes/clientoptionsbase.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":164,"kind":2048,"name":"setTcpKeepAlive","url":"classes/clientoptionsbase.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":165,"kind":2048,"name":"isTcpNoDelay","url":"classes/clientoptionsbase.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":166,"kind":2048,"name":"setTcpNoDelay","url":"classes/clientoptionsbase.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":167,"kind":2048,"name":"isTcpQuickAck","url":"classes/clientoptionsbase.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":168,"kind":2048,"name":"setTcpQuickAck","url":"classes/clientoptionsbase.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":169,"kind":2048,"name":"getTrafficClass","url":"classes/clientoptionsbase.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":170,"kind":2048,"name":"setTrafficClass","url":"classes/clientoptionsbase.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":171,"kind":2048,"name":"isTrustAll","url":"classes/clientoptionsbase.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":172,"kind":2048,"name":"setTrustAll","url":"classes/clientoptionsbase.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":173,"kind":2048,"name":"getTrustStoreOptions","url":"classes/clientoptionsbase.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":174,"kind":2048,"name":"setTrustStoreOptions","url":"classes/clientoptionsbase.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":175,"kind":2048,"name":"isUseAlpn","url":"classes/clientoptionsbase.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":176,"kind":2048,"name":"setUseAlpn","url":"classes/clientoptionsbase.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":177,"kind":2048,"name":"isUsePooledBuffers","url":"classes/clientoptionsbase.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":178,"kind":2048,"name":"setUsePooledBuffers","url":"classes/clientoptionsbase.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClientOptionsBase"},{"id":179,"kind":128,"name":"CopyOptions","url":"classes/copyoptions.html","classes":"tsd-kind-class"},{"id":180,"kind":512,"name":"constructor","url":"classes/copyoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CopyOptions"},{"id":181,"kind":2048,"name":"isAtomicMove","url":"classes/copyoptions.html#isatomicmove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":182,"kind":2048,"name":"setAtomicMove","url":"classes/copyoptions.html#setatomicmove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":183,"kind":2048,"name":"isCopyAttributes","url":"classes/copyoptions.html#iscopyattributes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":184,"kind":2048,"name":"setCopyAttributes","url":"classes/copyoptions.html#setcopyattributes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":185,"kind":2048,"name":"isNofollowLinks","url":"classes/copyoptions.html#isnofollowlinks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":186,"kind":2048,"name":"setNofollowLinks","url":"classes/copyoptions.html#setnofollowlinks","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":187,"kind":2048,"name":"isReplaceExisting","url":"classes/copyoptions.html#isreplaceexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":188,"kind":2048,"name":"setReplaceExisting","url":"classes/copyoptions.html#setreplaceexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CopyOptions"},{"id":189,"kind":128,"name":"DatagramSocketOptions","url":"classes/datagramsocketoptions.html","classes":"tsd-kind-class"},{"id":190,"kind":512,"name":"constructor","url":"classes/datagramsocketoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":191,"kind":2048,"name":"isBroadcast","url":"classes/datagramsocketoptions.html#isbroadcast","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":192,"kind":2048,"name":"setBroadcast","url":"classes/datagramsocketoptions.html#setbroadcast","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":193,"kind":2048,"name":"isIpV6","url":"classes/datagramsocketoptions.html#isipv6","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":194,"kind":2048,"name":"setIpV6","url":"classes/datagramsocketoptions.html#setipv6","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":195,"kind":2048,"name":"getLogActivity","url":"classes/datagramsocketoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":196,"kind":2048,"name":"setLogActivity","url":"classes/datagramsocketoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":197,"kind":2048,"name":"isLoopbackModeDisabled","url":"classes/datagramsocketoptions.html#isloopbackmodedisabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":198,"kind":2048,"name":"setLoopbackModeDisabled","url":"classes/datagramsocketoptions.html#setloopbackmodedisabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":199,"kind":2048,"name":"getMulticastNetworkInterface","url":"classes/datagramsocketoptions.html#getmulticastnetworkinterface","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":200,"kind":2048,"name":"setMulticastNetworkInterface","url":"classes/datagramsocketoptions.html#setmulticastnetworkinterface","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":201,"kind":2048,"name":"getMulticastTimeToLive","url":"classes/datagramsocketoptions.html#getmulticasttimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":202,"kind":2048,"name":"setMulticastTimeToLive","url":"classes/datagramsocketoptions.html#setmulticasttimetolive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":203,"kind":2048,"name":"getReceiveBufferSize","url":"classes/datagramsocketoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":204,"kind":2048,"name":"setReceiveBufferSize","url":"classes/datagramsocketoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":205,"kind":2048,"name":"isReuseAddress","url":"classes/datagramsocketoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":206,"kind":2048,"name":"setReuseAddress","url":"classes/datagramsocketoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":207,"kind":2048,"name":"isReusePort","url":"classes/datagramsocketoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":208,"kind":2048,"name":"setReusePort","url":"classes/datagramsocketoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":209,"kind":2048,"name":"getSendBufferSize","url":"classes/datagramsocketoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":210,"kind":2048,"name":"setSendBufferSize","url":"classes/datagramsocketoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":211,"kind":2048,"name":"getTrafficClass","url":"classes/datagramsocketoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":212,"kind":2048,"name":"setTrafficClass","url":"classes/datagramsocketoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocketOptions"},{"id":213,"kind":128,"name":"DeliveryOptions","url":"classes/deliveryoptions.html","classes":"tsd-kind-class"},{"id":214,"kind":512,"name":"constructor","url":"classes/deliveryoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":215,"kind":2048,"name":"getCodecName","url":"classes/deliveryoptions.html#getcodecname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":216,"kind":2048,"name":"setCodecName","url":"classes/deliveryoptions.html#setcodecname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":217,"kind":2048,"name":"addHeader","url":"classes/deliveryoptions.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":218,"kind":2048,"name":"isLocalOnly","url":"classes/deliveryoptions.html#islocalonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":219,"kind":2048,"name":"setLocalOnly","url":"classes/deliveryoptions.html#setlocalonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":220,"kind":2048,"name":"getSendTimeout","url":"classes/deliveryoptions.html#getsendtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":221,"kind":2048,"name":"setSendTimeout","url":"classes/deliveryoptions.html#setsendtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryOptions"},{"id":222,"kind":128,"name":"DeploymentOptions","url":"classes/deploymentoptions.html","classes":"tsd-kind-class"},{"id":223,"kind":512,"name":"constructor","url":"classes/deploymentoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":224,"kind":2048,"name":"getConfig","url":"classes/deploymentoptions.html#getconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":225,"kind":2048,"name":"setConfig","url":"classes/deploymentoptions.html#setconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":226,"kind":2048,"name":"getExtraClasspath","url":"classes/deploymentoptions.html#getextraclasspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":227,"kind":2048,"name":"setExtraClasspath","url":"classes/deploymentoptions.html#setextraclasspath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":228,"kind":2048,"name":"isHa","url":"classes/deploymentoptions.html#isha","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":229,"kind":2048,"name":"setHa","url":"classes/deploymentoptions.html#setha","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":230,"kind":2048,"name":"getInstances","url":"classes/deploymentoptions.html#getinstances","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":231,"kind":2048,"name":"setInstances","url":"classes/deploymentoptions.html#setinstances","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":232,"kind":2048,"name":"getIsolatedClasses","url":"classes/deploymentoptions.html#getisolatedclasses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":233,"kind":2048,"name":"setIsolatedClasses","url":"classes/deploymentoptions.html#setisolatedclasses","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":234,"kind":2048,"name":"getIsolationGroup","url":"classes/deploymentoptions.html#getisolationgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":235,"kind":2048,"name":"setIsolationGroup","url":"classes/deploymentoptions.html#setisolationgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":236,"kind":2048,"name":"getMaxWorkerExecuteTime","url":"classes/deploymentoptions.html#getmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":237,"kind":2048,"name":"setMaxWorkerExecuteTime","url":"classes/deploymentoptions.html#setmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":238,"kind":2048,"name":"getMaxWorkerExecuteTimeUnit","url":"classes/deploymentoptions.html#getmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":239,"kind":2048,"name":"setMaxWorkerExecuteTimeUnit","url":"classes/deploymentoptions.html#setmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":240,"kind":2048,"name":"isMultiThreaded","url":"classes/deploymentoptions.html#ismultithreaded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":241,"kind":2048,"name":"setMultiThreaded","url":"classes/deploymentoptions.html#setmultithreaded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":242,"kind":2048,"name":"isWorker","url":"classes/deploymentoptions.html#isworker","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":243,"kind":2048,"name":"setWorker","url":"classes/deploymentoptions.html#setworker","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":244,"kind":2048,"name":"getWorkerPoolName","url":"classes/deploymentoptions.html#getworkerpoolname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":245,"kind":2048,"name":"setWorkerPoolName","url":"classes/deploymentoptions.html#setworkerpoolname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":246,"kind":2048,"name":"getWorkerPoolSize","url":"classes/deploymentoptions.html#getworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":247,"kind":2048,"name":"setWorkerPoolSize","url":"classes/deploymentoptions.html#setworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeploymentOptions"},{"id":248,"kind":128,"name":"DnsClientOptions","url":"classes/dnsclientoptions.html","classes":"tsd-kind-class"},{"id":249,"kind":512,"name":"constructor","url":"classes/dnsclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":250,"kind":2048,"name":"getHost","url":"classes/dnsclientoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":251,"kind":2048,"name":"setHost","url":"classes/dnsclientoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":252,"kind":2048,"name":"getLogActivity","url":"classes/dnsclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":253,"kind":2048,"name":"setLogActivity","url":"classes/dnsclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":254,"kind":2048,"name":"getPort","url":"classes/dnsclientoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":255,"kind":2048,"name":"setPort","url":"classes/dnsclientoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":256,"kind":2048,"name":"getQueryTimeout","url":"classes/dnsclientoptions.html#getquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":257,"kind":2048,"name":"setQueryTimeout","url":"classes/dnsclientoptions.html#setquerytimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":258,"kind":2048,"name":"isRecursionDesired","url":"classes/dnsclientoptions.html#isrecursiondesired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":259,"kind":2048,"name":"setRecursionDesired","url":"classes/dnsclientoptions.html#setrecursiondesired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClientOptions"},{"id":260,"kind":128,"name":"EventBusOptions","url":"classes/eventbusoptions.html","classes":"tsd-kind-class"},{"id":261,"kind":512,"name":"constructor","url":"classes/eventbusoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"EventBusOptions"},{"id":262,"kind":2048,"name":"getAcceptBacklog","url":"classes/eventbusoptions.html#getacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":263,"kind":2048,"name":"setAcceptBacklog","url":"classes/eventbusoptions.html#setacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":264,"kind":2048,"name":"getClientAuth","url":"classes/eventbusoptions.html#getclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":265,"kind":2048,"name":"setClientAuth","url":"classes/eventbusoptions.html#setclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":266,"kind":2048,"name":"getClusterPingInterval","url":"classes/eventbusoptions.html#getclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":267,"kind":2048,"name":"setClusterPingInterval","url":"classes/eventbusoptions.html#setclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":268,"kind":2048,"name":"getClusterPingReplyInterval","url":"classes/eventbusoptions.html#getclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":269,"kind":2048,"name":"setClusterPingReplyInterval","url":"classes/eventbusoptions.html#setclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":270,"kind":2048,"name":"getClusterPublicHost","url":"classes/eventbusoptions.html#getclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":271,"kind":2048,"name":"setClusterPublicHost","url":"classes/eventbusoptions.html#setclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":272,"kind":2048,"name":"getClusterPublicPort","url":"classes/eventbusoptions.html#getclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":273,"kind":2048,"name":"setClusterPublicPort","url":"classes/eventbusoptions.html#setclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":274,"kind":2048,"name":"isClustered","url":"classes/eventbusoptions.html#isclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":275,"kind":2048,"name":"setClustered","url":"classes/eventbusoptions.html#setclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":276,"kind":2048,"name":"getConnectTimeout","url":"classes/eventbusoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":277,"kind":2048,"name":"setConnectTimeout","url":"classes/eventbusoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":278,"kind":2048,"name":"getCrlPaths","url":"classes/eventbusoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":279,"kind":2048,"name":"addCrlPath","url":"classes/eventbusoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":280,"kind":2048,"name":"getCrlValues","url":"classes/eventbusoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":281,"kind":2048,"name":"addCrlValue","url":"classes/eventbusoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":282,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/eventbusoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":283,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/eventbusoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":284,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/eventbusoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":285,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/eventbusoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":286,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/eventbusoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":287,"kind":2048,"name":"getHost","url":"classes/eventbusoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":288,"kind":2048,"name":"setHost","url":"classes/eventbusoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":289,"kind":2048,"name":"getIdleTimeout","url":"classes/eventbusoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":290,"kind":2048,"name":"setIdleTimeout","url":"classes/eventbusoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":291,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/eventbusoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":292,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/eventbusoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":293,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/eventbusoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":294,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/eventbusoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":295,"kind":2048,"name":"getKeyStoreOptions","url":"classes/eventbusoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":296,"kind":2048,"name":"setKeyStoreOptions","url":"classes/eventbusoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":297,"kind":2048,"name":"getLogActivity","url":"classes/eventbusoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":298,"kind":2048,"name":"setLogActivity","url":"classes/eventbusoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":299,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/eventbusoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":300,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/eventbusoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":301,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/eventbusoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":302,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/eventbusoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":303,"kind":2048,"name":"getPemTrustOptions","url":"classes/eventbusoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":304,"kind":2048,"name":"setPemTrustOptions","url":"classes/eventbusoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":305,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/eventbusoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":306,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/eventbusoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":307,"kind":2048,"name":"getPfxTrustOptions","url":"classes/eventbusoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":308,"kind":2048,"name":"setPfxTrustOptions","url":"classes/eventbusoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":309,"kind":2048,"name":"getPort","url":"classes/eventbusoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":310,"kind":2048,"name":"setPort","url":"classes/eventbusoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":311,"kind":2048,"name":"getReceiveBufferSize","url":"classes/eventbusoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":312,"kind":2048,"name":"setReceiveBufferSize","url":"classes/eventbusoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":313,"kind":2048,"name":"getReconnectAttempts","url":"classes/eventbusoptions.html#getreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":314,"kind":2048,"name":"setReconnectAttempts","url":"classes/eventbusoptions.html#setreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":315,"kind":2048,"name":"getReconnectInterval","url":"classes/eventbusoptions.html#getreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":316,"kind":2048,"name":"setReconnectInterval","url":"classes/eventbusoptions.html#setreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":317,"kind":2048,"name":"isReuseAddress","url":"classes/eventbusoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":318,"kind":2048,"name":"setReuseAddress","url":"classes/eventbusoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":319,"kind":2048,"name":"isReusePort","url":"classes/eventbusoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":320,"kind":2048,"name":"setReusePort","url":"classes/eventbusoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":321,"kind":2048,"name":"getSendBufferSize","url":"classes/eventbusoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":322,"kind":2048,"name":"setSendBufferSize","url":"classes/eventbusoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":323,"kind":2048,"name":"getSoLinger","url":"classes/eventbusoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":324,"kind":2048,"name":"setSoLinger","url":"classes/eventbusoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":325,"kind":2048,"name":"isSsl","url":"classes/eventbusoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":326,"kind":2048,"name":"setSsl","url":"classes/eventbusoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":327,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/eventbusoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":328,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/eventbusoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":329,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/eventbusoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":330,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/eventbusoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":331,"kind":2048,"name":"isTcpCork","url":"classes/eventbusoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":332,"kind":2048,"name":"setTcpCork","url":"classes/eventbusoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":333,"kind":2048,"name":"isTcpFastOpen","url":"classes/eventbusoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":334,"kind":2048,"name":"setTcpFastOpen","url":"classes/eventbusoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":335,"kind":2048,"name":"isTcpKeepAlive","url":"classes/eventbusoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":336,"kind":2048,"name":"setTcpKeepAlive","url":"classes/eventbusoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":337,"kind":2048,"name":"isTcpNoDelay","url":"classes/eventbusoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":338,"kind":2048,"name":"setTcpNoDelay","url":"classes/eventbusoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":339,"kind":2048,"name":"isTcpQuickAck","url":"classes/eventbusoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":340,"kind":2048,"name":"setTcpQuickAck","url":"classes/eventbusoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":341,"kind":2048,"name":"getTrafficClass","url":"classes/eventbusoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":342,"kind":2048,"name":"setTrafficClass","url":"classes/eventbusoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":343,"kind":2048,"name":"isTrustAll","url":"classes/eventbusoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":344,"kind":2048,"name":"setTrustAll","url":"classes/eventbusoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":345,"kind":2048,"name":"getTrustStoreOptions","url":"classes/eventbusoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":346,"kind":2048,"name":"setTrustStoreOptions","url":"classes/eventbusoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":347,"kind":2048,"name":"isUseAlpn","url":"classes/eventbusoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":348,"kind":2048,"name":"setUseAlpn","url":"classes/eventbusoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":349,"kind":2048,"name":"isUsePooledBuffers","url":"classes/eventbusoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":350,"kind":2048,"name":"setUsePooledBuffers","url":"classes/eventbusoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBusOptions"},{"id":351,"kind":128,"name":"FileSystemOptions","url":"classes/filesystemoptions.html","classes":"tsd-kind-class"},{"id":352,"kind":512,"name":"constructor","url":"classes/filesystemoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":353,"kind":2048,"name":"isClassPathResolvingEnabled","url":"classes/filesystemoptions.html#isclasspathresolvingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":354,"kind":2048,"name":"setClassPathResolvingEnabled","url":"classes/filesystemoptions.html#setclasspathresolvingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":355,"kind":2048,"name":"getFileCacheDir","url":"classes/filesystemoptions.html#getfilecachedir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":356,"kind":2048,"name":"setFileCacheDir","url":"classes/filesystemoptions.html#setfilecachedir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":357,"kind":2048,"name":"isFileCachingEnabled","url":"classes/filesystemoptions.html#isfilecachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":358,"kind":2048,"name":"setFileCachingEnabled","url":"classes/filesystemoptions.html#setfilecachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemOptions"},{"id":359,"kind":128,"name":"GoAway","url":"classes/goaway.html","classes":"tsd-kind-class"},{"id":360,"kind":512,"name":"constructor","url":"classes/goaway.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GoAway"},{"id":361,"kind":2048,"name":"getDebugData","url":"classes/goaway.html#getdebugdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":362,"kind":2048,"name":"setDebugData","url":"classes/goaway.html#setdebugdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":363,"kind":2048,"name":"getErrorCode","url":"classes/goaway.html#geterrorcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":364,"kind":2048,"name":"setErrorCode","url":"classes/goaway.html#seterrorcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":365,"kind":2048,"name":"getLastStreamId","url":"classes/goaway.html#getlaststreamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":366,"kind":2048,"name":"setLastStreamId","url":"classes/goaway.html#setlaststreamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GoAway"},{"id":367,"kind":128,"name":"Http2Settings","url":"classes/http2settings.html","classes":"tsd-kind-class"},{"id":368,"kind":512,"name":"constructor","url":"classes/http2settings.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Http2Settings"},{"id":369,"kind":2048,"name":"getHeaderTableSize","url":"classes/http2settings.html#getheadertablesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":370,"kind":2048,"name":"setHeaderTableSize","url":"classes/http2settings.html#setheadertablesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":371,"kind":2048,"name":"getInitialWindowSize","url":"classes/http2settings.html#getinitialwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":372,"kind":2048,"name":"setInitialWindowSize","url":"classes/http2settings.html#setinitialwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":373,"kind":2048,"name":"getMaxConcurrentStreams","url":"classes/http2settings.html#getmaxconcurrentstreams","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":374,"kind":2048,"name":"setMaxConcurrentStreams","url":"classes/http2settings.html#setmaxconcurrentstreams","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":375,"kind":2048,"name":"getMaxFrameSize","url":"classes/http2settings.html#getmaxframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":376,"kind":2048,"name":"setMaxFrameSize","url":"classes/http2settings.html#setmaxframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":377,"kind":2048,"name":"getMaxHeaderListSize","url":"classes/http2settings.html#getmaxheaderlistsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":378,"kind":2048,"name":"setMaxHeaderListSize","url":"classes/http2settings.html#setmaxheaderlistsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":379,"kind":2048,"name":"isPushEnabled","url":"classes/http2settings.html#ispushenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":380,"kind":2048,"name":"setPushEnabled","url":"classes/http2settings.html#setpushenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Http2Settings"},{"id":381,"kind":128,"name":"HttpClientOptions","url":"classes/httpclientoptions.html","classes":"tsd-kind-class"},{"id":382,"kind":512,"name":"constructor","url":"classes/httpclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":383,"kind":2048,"name":"getAlpnVersions","url":"classes/httpclientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":384,"kind":2048,"name":"setAlpnVersions","url":"classes/httpclientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":385,"kind":2048,"name":"getConnectTimeout","url":"classes/httpclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":386,"kind":2048,"name":"setConnectTimeout","url":"classes/httpclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":387,"kind":2048,"name":"getCrlPaths","url":"classes/httpclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":388,"kind":2048,"name":"addCrlPath","url":"classes/httpclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":389,"kind":2048,"name":"getCrlValues","url":"classes/httpclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":390,"kind":2048,"name":"addCrlValue","url":"classes/httpclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":391,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/httpclientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":392,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/httpclientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":393,"kind":2048,"name":"getDefaultHost","url":"classes/httpclientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":394,"kind":2048,"name":"setDefaultHost","url":"classes/httpclientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":395,"kind":2048,"name":"getDefaultPort","url":"classes/httpclientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":396,"kind":2048,"name":"setDefaultPort","url":"classes/httpclientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":397,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/httpclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":398,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/httpclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":399,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/httpclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":400,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/httpclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":401,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/httpclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":402,"kind":2048,"name":"isForceSni","url":"classes/httpclientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":403,"kind":2048,"name":"setForceSni","url":"classes/httpclientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":404,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/httpclientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":405,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/httpclientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":406,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/httpclientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":407,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/httpclientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":408,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/httpclientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":409,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/httpclientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":410,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/httpclientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":411,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/httpclientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":412,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/httpclientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":413,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/httpclientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":414,"kind":2048,"name":"getIdleTimeout","url":"classes/httpclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":415,"kind":2048,"name":"setIdleTimeout","url":"classes/httpclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":416,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/httpclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":417,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/httpclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":418,"kind":2048,"name":"getInitialSettings","url":"classes/httpclientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":419,"kind":2048,"name":"setInitialSettings","url":"classes/httpclientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":420,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/httpclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":421,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/httpclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":422,"kind":2048,"name":"isKeepAlive","url":"classes/httpclientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":423,"kind":2048,"name":"setKeepAlive","url":"classes/httpclientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":424,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/httpclientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":425,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/httpclientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":426,"kind":2048,"name":"getKeyStoreOptions","url":"classes/httpclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":427,"kind":2048,"name":"setKeyStoreOptions","url":"classes/httpclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":428,"kind":2048,"name":"getLocalAddress","url":"classes/httpclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":429,"kind":2048,"name":"setLocalAddress","url":"classes/httpclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":430,"kind":2048,"name":"getLogActivity","url":"classes/httpclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":431,"kind":2048,"name":"setLogActivity","url":"classes/httpclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":432,"kind":2048,"name":"getMaxChunkSize","url":"classes/httpclientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":433,"kind":2048,"name":"setMaxChunkSize","url":"classes/httpclientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":434,"kind":2048,"name":"getMaxHeaderSize","url":"classes/httpclientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":435,"kind":2048,"name":"setMaxHeaderSize","url":"classes/httpclientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":436,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/httpclientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":437,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/httpclientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":438,"kind":2048,"name":"getMaxPoolSize","url":"classes/httpclientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":439,"kind":2048,"name":"setMaxPoolSize","url":"classes/httpclientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":440,"kind":2048,"name":"getMaxRedirects","url":"classes/httpclientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":441,"kind":2048,"name":"setMaxRedirects","url":"classes/httpclientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":442,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/httpclientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":443,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/httpclientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":444,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/httpclientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":445,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/httpclientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":446,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/httpclientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":447,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/httpclientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":448,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/httpclientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":449,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/httpclientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":450,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/httpclientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":451,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/httpclientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":452,"kind":2048,"name":"getMetricsName","url":"classes/httpclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":453,"kind":2048,"name":"setMetricsName","url":"classes/httpclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":454,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/httpclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":455,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/httpclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":456,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/httpclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":457,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/httpclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":458,"kind":2048,"name":"getPemTrustOptions","url":"classes/httpclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":459,"kind":2048,"name":"setPemTrustOptions","url":"classes/httpclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":460,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/httpclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":461,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/httpclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":462,"kind":2048,"name":"getPfxTrustOptions","url":"classes/httpclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":463,"kind":2048,"name":"setPfxTrustOptions","url":"classes/httpclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":464,"kind":2048,"name":"isPipelining","url":"classes/httpclientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":465,"kind":2048,"name":"setPipelining","url":"classes/httpclientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":466,"kind":2048,"name":"getPipeliningLimit","url":"classes/httpclientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":467,"kind":2048,"name":"setPipeliningLimit","url":"classes/httpclientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":468,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/httpclientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":469,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/httpclientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":470,"kind":2048,"name":"getProtocolVersion","url":"classes/httpclientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":471,"kind":2048,"name":"setProtocolVersion","url":"classes/httpclientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":472,"kind":2048,"name":"getProxyOptions","url":"classes/httpclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":473,"kind":2048,"name":"setProxyOptions","url":"classes/httpclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":474,"kind":2048,"name":"getReceiveBufferSize","url":"classes/httpclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":475,"kind":2048,"name":"setReceiveBufferSize","url":"classes/httpclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":476,"kind":2048,"name":"isReuseAddress","url":"classes/httpclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":477,"kind":2048,"name":"setReuseAddress","url":"classes/httpclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":478,"kind":2048,"name":"isReusePort","url":"classes/httpclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":479,"kind":2048,"name":"setReusePort","url":"classes/httpclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":480,"kind":2048,"name":"getSendBufferSize","url":"classes/httpclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":481,"kind":2048,"name":"setSendBufferSize","url":"classes/httpclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":482,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/httpclientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":483,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/httpclientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":484,"kind":2048,"name":"getSoLinger","url":"classes/httpclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":485,"kind":2048,"name":"setSoLinger","url":"classes/httpclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":486,"kind":2048,"name":"isSsl","url":"classes/httpclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":487,"kind":2048,"name":"setSsl","url":"classes/httpclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":488,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/httpclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":489,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/httpclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":490,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/httpclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":491,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/httpclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":492,"kind":2048,"name":"isTcpCork","url":"classes/httpclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":493,"kind":2048,"name":"setTcpCork","url":"classes/httpclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":494,"kind":2048,"name":"isTcpFastOpen","url":"classes/httpclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":495,"kind":2048,"name":"setTcpFastOpen","url":"classes/httpclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":496,"kind":2048,"name":"isTcpKeepAlive","url":"classes/httpclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":497,"kind":2048,"name":"setTcpKeepAlive","url":"classes/httpclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":498,"kind":2048,"name":"isTcpNoDelay","url":"classes/httpclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":499,"kind":2048,"name":"setTcpNoDelay","url":"classes/httpclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":500,"kind":2048,"name":"isTcpQuickAck","url":"classes/httpclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":501,"kind":2048,"name":"setTcpQuickAck","url":"classes/httpclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":502,"kind":2048,"name":"getTrafficClass","url":"classes/httpclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":503,"kind":2048,"name":"setTrafficClass","url":"classes/httpclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":504,"kind":2048,"name":"isTrustAll","url":"classes/httpclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":505,"kind":2048,"name":"setTrustAll","url":"classes/httpclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":506,"kind":2048,"name":"getTrustStoreOptions","url":"classes/httpclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":507,"kind":2048,"name":"setTrustStoreOptions","url":"classes/httpclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":508,"kind":2048,"name":"isTryUseCompression","url":"classes/httpclientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":509,"kind":2048,"name":"setTryUseCompression","url":"classes/httpclientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":510,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/httpclientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":511,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/httpclientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":512,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/httpclientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":513,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/httpclientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":514,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/httpclientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":515,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/httpclientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":516,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/httpclientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":517,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/httpclientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":518,"kind":2048,"name":"isUseAlpn","url":"classes/httpclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":519,"kind":2048,"name":"setUseAlpn","url":"classes/httpclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":520,"kind":2048,"name":"isUsePooledBuffers","url":"classes/httpclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":521,"kind":2048,"name":"setUsePooledBuffers","url":"classes/httpclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":522,"kind":2048,"name":"isVerifyHost","url":"classes/httpclientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":523,"kind":2048,"name":"setVerifyHost","url":"classes/httpclientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":524,"kind":2048,"name":"getWebSocketClosingTimeout","url":"classes/httpclientoptions.html#getwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":525,"kind":2048,"name":"setWebSocketClosingTimeout","url":"classes/httpclientoptions.html#setwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":526,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":527,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":528,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/httpclientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":529,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/httpclientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":530,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":531,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":532,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":533,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":534,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/httpclientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":535,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/httpclientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":536,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":537,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/httpclientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientOptions"},{"id":538,"kind":128,"name":"HttpServerOptions","url":"classes/httpserveroptions.html","classes":"tsd-kind-class"},{"id":539,"kind":512,"name":"constructor","url":"classes/httpserveroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":540,"kind":2048,"name":"getAcceptBacklog","url":"classes/httpserveroptions.html#getacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":541,"kind":2048,"name":"setAcceptBacklog","url":"classes/httpserveroptions.html#setacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":542,"kind":2048,"name":"isAcceptUnmaskedFrames","url":"classes/httpserveroptions.html#isacceptunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":543,"kind":2048,"name":"setAcceptUnmaskedFrames","url":"classes/httpserveroptions.html#setacceptunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":544,"kind":2048,"name":"getAlpnVersions","url":"classes/httpserveroptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":545,"kind":2048,"name":"setAlpnVersions","url":"classes/httpserveroptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":546,"kind":2048,"name":"getClientAuth","url":"classes/httpserveroptions.html#getclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":547,"kind":2048,"name":"setClientAuth","url":"classes/httpserveroptions.html#setclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":548,"kind":2048,"name":"isClientAuthRequired","url":"classes/httpserveroptions.html#isclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":549,"kind":2048,"name":"setClientAuthRequired","url":"classes/httpserveroptions.html#setclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":550,"kind":2048,"name":"getCompressionLevel","url":"classes/httpserveroptions.html#getcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":551,"kind":2048,"name":"setCompressionLevel","url":"classes/httpserveroptions.html#setcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":552,"kind":2048,"name":"isCompressionSupported","url":"classes/httpserveroptions.html#iscompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":553,"kind":2048,"name":"setCompressionSupported","url":"classes/httpserveroptions.html#setcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":554,"kind":2048,"name":"getCrlPaths","url":"classes/httpserveroptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":555,"kind":2048,"name":"addCrlPath","url":"classes/httpserveroptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":556,"kind":2048,"name":"getCrlValues","url":"classes/httpserveroptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":557,"kind":2048,"name":"addCrlValue","url":"classes/httpserveroptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":558,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/httpserveroptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":559,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/httpserveroptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":560,"kind":2048,"name":"isDecompressionSupported","url":"classes/httpserveroptions.html#isdecompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":561,"kind":2048,"name":"setDecompressionSupported","url":"classes/httpserveroptions.html#setdecompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":562,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/httpserveroptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":563,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/httpserveroptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":564,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/httpserveroptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":565,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/httpserveroptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":566,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/httpserveroptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":567,"kind":2048,"name":"isHandle100ContinueAutomatically","url":"classes/httpserveroptions.html#ishandle100continueautomatically","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":568,"kind":2048,"name":"setHandle100ContinueAutomatically","url":"classes/httpserveroptions.html#sethandle100continueautomatically","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":569,"kind":2048,"name":"getHost","url":"classes/httpserveroptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":570,"kind":2048,"name":"setHost","url":"classes/httpserveroptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":571,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/httpserveroptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":572,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/httpserveroptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":573,"kind":2048,"name":"getIdleTimeout","url":"classes/httpserveroptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":574,"kind":2048,"name":"setIdleTimeout","url":"classes/httpserveroptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":575,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/httpserveroptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":576,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/httpserveroptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":577,"kind":2048,"name":"getInitialSettings","url":"classes/httpserveroptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":578,"kind":2048,"name":"setInitialSettings","url":"classes/httpserveroptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":579,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/httpserveroptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":580,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/httpserveroptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":581,"kind":2048,"name":"getKeyStoreOptions","url":"classes/httpserveroptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":582,"kind":2048,"name":"setKeyStoreOptions","url":"classes/httpserveroptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":583,"kind":2048,"name":"getLogActivity","url":"classes/httpserveroptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":584,"kind":2048,"name":"setLogActivity","url":"classes/httpserveroptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":585,"kind":2048,"name":"getMaxChunkSize","url":"classes/httpserveroptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":586,"kind":2048,"name":"setMaxChunkSize","url":"classes/httpserveroptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":587,"kind":2048,"name":"getMaxHeaderSize","url":"classes/httpserveroptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":588,"kind":2048,"name":"setMaxHeaderSize","url":"classes/httpserveroptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":589,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/httpserveroptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":590,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/httpserveroptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":591,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/httpserveroptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":592,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/httpserveroptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":593,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/httpserveroptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":594,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/httpserveroptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":595,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/httpserveroptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":596,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/httpserveroptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":597,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/httpserveroptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":598,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/httpserveroptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":599,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/httpserveroptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":600,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/httpserveroptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":601,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/httpserveroptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":602,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/httpserveroptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":603,"kind":2048,"name":"getPemTrustOptions","url":"classes/httpserveroptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":604,"kind":2048,"name":"setPemTrustOptions","url":"classes/httpserveroptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":605,"kind":2048,"name":"getPerFrameWebSocketCompressionSupported","url":"classes/httpserveroptions.html#getperframewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":606,"kind":2048,"name":"setPerFrameWebSocketCompressionSupported","url":"classes/httpserveroptions.html#setperframewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":607,"kind":2048,"name":"getPerFrameWebsocketCompressionSupported","url":"classes/httpserveroptions.html#getperframewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":608,"kind":2048,"name":"setPerFrameWebsocketCompressionSupported","url":"classes/httpserveroptions.html#setperframewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":609,"kind":2048,"name":"getPerMessageWebSocketCompressionSupported","url":"classes/httpserveroptions.html#getpermessagewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":610,"kind":2048,"name":"setPerMessageWebSocketCompressionSupported","url":"classes/httpserveroptions.html#setpermessagewebsocketcompressionsupported","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":611,"kind":2048,"name":"getPerMessageWebsocketCompressionSupported","url":"classes/httpserveroptions.html#getpermessagewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":612,"kind":2048,"name":"setPerMessageWebsocketCompressionSupported","url":"classes/httpserveroptions.html#setpermessagewebsocketcompressionsupported-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":613,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/httpserveroptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":614,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/httpserveroptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":615,"kind":2048,"name":"getPfxTrustOptions","url":"classes/httpserveroptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":616,"kind":2048,"name":"setPfxTrustOptions","url":"classes/httpserveroptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":617,"kind":2048,"name":"getPort","url":"classes/httpserveroptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":618,"kind":2048,"name":"setPort","url":"classes/httpserveroptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":619,"kind":2048,"name":"getReceiveBufferSize","url":"classes/httpserveroptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":620,"kind":2048,"name":"setReceiveBufferSize","url":"classes/httpserveroptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":621,"kind":2048,"name":"isReuseAddress","url":"classes/httpserveroptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":622,"kind":2048,"name":"setReuseAddress","url":"classes/httpserveroptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":623,"kind":2048,"name":"isReusePort","url":"classes/httpserveroptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":624,"kind":2048,"name":"setReusePort","url":"classes/httpserveroptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":625,"kind":2048,"name":"getSendBufferSize","url":"classes/httpserveroptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":626,"kind":2048,"name":"setSendBufferSize","url":"classes/httpserveroptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":627,"kind":2048,"name":"isSni","url":"classes/httpserveroptions.html#issni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":628,"kind":2048,"name":"setSni","url":"classes/httpserveroptions.html#setsni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":629,"kind":2048,"name":"getSoLinger","url":"classes/httpserveroptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":630,"kind":2048,"name":"setSoLinger","url":"classes/httpserveroptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":631,"kind":2048,"name":"isSsl","url":"classes/httpserveroptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":632,"kind":2048,"name":"setSsl","url":"classes/httpserveroptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":633,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/httpserveroptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":634,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/httpserveroptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":635,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/httpserveroptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":636,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/httpserveroptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":637,"kind":2048,"name":"isTcpCork","url":"classes/httpserveroptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":638,"kind":2048,"name":"setTcpCork","url":"classes/httpserveroptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":639,"kind":2048,"name":"isTcpFastOpen","url":"classes/httpserveroptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":640,"kind":2048,"name":"setTcpFastOpen","url":"classes/httpserveroptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":641,"kind":2048,"name":"isTcpKeepAlive","url":"classes/httpserveroptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":642,"kind":2048,"name":"setTcpKeepAlive","url":"classes/httpserveroptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":643,"kind":2048,"name":"isTcpNoDelay","url":"classes/httpserveroptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":644,"kind":2048,"name":"setTcpNoDelay","url":"classes/httpserveroptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":645,"kind":2048,"name":"isTcpQuickAck","url":"classes/httpserveroptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":646,"kind":2048,"name":"setTcpQuickAck","url":"classes/httpserveroptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":647,"kind":2048,"name":"getTrafficClass","url":"classes/httpserveroptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":648,"kind":2048,"name":"setTrafficClass","url":"classes/httpserveroptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":649,"kind":2048,"name":"getTrustStoreOptions","url":"classes/httpserveroptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":650,"kind":2048,"name":"setTrustStoreOptions","url":"classes/httpserveroptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":651,"kind":2048,"name":"isUseAlpn","url":"classes/httpserveroptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":652,"kind":2048,"name":"setUseAlpn","url":"classes/httpserveroptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":653,"kind":2048,"name":"isUsePooledBuffers","url":"classes/httpserveroptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":654,"kind":2048,"name":"setUsePooledBuffers","url":"classes/httpserveroptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":655,"kind":2048,"name":"getWebSocketAllowServerNoContext","url":"classes/httpserveroptions.html#getwebsocketallowservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":656,"kind":2048,"name":"setWebSocketAllowServerNoContext","url":"classes/httpserveroptions.html#setwebsocketallowservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":657,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/httpserveroptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":658,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/httpserveroptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":659,"kind":2048,"name":"getWebSocketPreferredClientNoContext","url":"classes/httpserveroptions.html#getwebsocketpreferredclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":660,"kind":2048,"name":"setWebSocketPreferredClientNoContext","url":"classes/httpserveroptions.html#setwebsocketpreferredclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":661,"kind":2048,"name":"getWebSocketSubProtocols","url":"classes/httpserveroptions.html#getwebsocketsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":662,"kind":2048,"name":"setWebSocketSubProtocols","url":"classes/httpserveroptions.html#setwebsocketsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":663,"kind":2048,"name":"addWebSocketSubProtocol","url":"classes/httpserveroptions.html#addwebsocketsubprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":664,"kind":2048,"name":"getWebsocketAllowServerNoContext","url":"classes/httpserveroptions.html#getwebsocketallowservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":665,"kind":2048,"name":"setWebsocketAllowServerNoContext","url":"classes/httpserveroptions.html#setwebsocketallowservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":666,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/httpserveroptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":667,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/httpserveroptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":668,"kind":2048,"name":"getWebsocketPreferredClientNoContext","url":"classes/httpserveroptions.html#getwebsocketpreferredclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":669,"kind":2048,"name":"setWebsocketPreferredClientNoContext","url":"classes/httpserveroptions.html#setwebsocketpreferredclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":670,"kind":2048,"name":"getWebsocketSubProtocols","url":"classes/httpserveroptions.html#getwebsocketsubprotocols-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":671,"kind":2048,"name":"setWebsocketSubProtocols","url":"classes/httpserveroptions.html#setwebsocketsubprotocols-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerOptions"},{"id":672,"kind":128,"name":"JdkSSLEngineOptions","url":"classes/jdksslengineoptions.html","classes":"tsd-kind-class"},{"id":673,"kind":512,"name":"constructor","url":"classes/jdksslengineoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"JdkSSLEngineOptions"},{"id":674,"kind":128,"name":"JksOptions","url":"classes/jksoptions.html","classes":"tsd-kind-class"},{"id":675,"kind":512,"name":"constructor","url":"classes/jksoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"JksOptions"},{"id":676,"kind":2048,"name":"getPassword","url":"classes/jksoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":677,"kind":2048,"name":"setPassword","url":"classes/jksoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":678,"kind":2048,"name":"getPath","url":"classes/jksoptions.html#getpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":679,"kind":2048,"name":"setPath","url":"classes/jksoptions.html#setpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":680,"kind":2048,"name":"getValue","url":"classes/jksoptions.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":681,"kind":2048,"name":"setValue","url":"classes/jksoptions.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JksOptions"},{"id":682,"kind":128,"name":"MetricsOptions","url":"classes/metricsoptions.html","classes":"tsd-kind-class"},{"id":683,"kind":512,"name":"constructor","url":"classes/metricsoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MetricsOptions"},{"id":684,"kind":2048,"name":"isEnabled","url":"classes/metricsoptions.html#isenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MetricsOptions"},{"id":685,"kind":2048,"name":"setEnabled","url":"classes/metricsoptions.html#setenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MetricsOptions"},{"id":686,"kind":128,"name":"NetClientOptions","url":"classes/netclientoptions.html","classes":"tsd-kind-class"},{"id":687,"kind":512,"name":"constructor","url":"classes/netclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NetClientOptions"},{"id":688,"kind":2048,"name":"getConnectTimeout","url":"classes/netclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":689,"kind":2048,"name":"setConnectTimeout","url":"classes/netclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":690,"kind":2048,"name":"getCrlPaths","url":"classes/netclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":691,"kind":2048,"name":"addCrlPath","url":"classes/netclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":692,"kind":2048,"name":"getCrlValues","url":"classes/netclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":693,"kind":2048,"name":"addCrlValue","url":"classes/netclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":694,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/netclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":695,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/netclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":696,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/netclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":697,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/netclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":698,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/netclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":699,"kind":2048,"name":"getHostnameVerificationAlgorithm","url":"classes/netclientoptions.html#gethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":700,"kind":2048,"name":"setHostnameVerificationAlgorithm","url":"classes/netclientoptions.html#sethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":701,"kind":2048,"name":"getIdleTimeout","url":"classes/netclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":702,"kind":2048,"name":"setIdleTimeout","url":"classes/netclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":703,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/netclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":704,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/netclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":705,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/netclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":706,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/netclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":707,"kind":2048,"name":"getKeyStoreOptions","url":"classes/netclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":708,"kind":2048,"name":"setKeyStoreOptions","url":"classes/netclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":709,"kind":2048,"name":"getLocalAddress","url":"classes/netclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":710,"kind":2048,"name":"setLocalAddress","url":"classes/netclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":711,"kind":2048,"name":"getLogActivity","url":"classes/netclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":712,"kind":2048,"name":"setLogActivity","url":"classes/netclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":713,"kind":2048,"name":"getMetricsName","url":"classes/netclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":714,"kind":2048,"name":"setMetricsName","url":"classes/netclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":715,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/netclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":716,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/netclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":717,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/netclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":718,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/netclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":719,"kind":2048,"name":"getPemTrustOptions","url":"classes/netclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":720,"kind":2048,"name":"setPemTrustOptions","url":"classes/netclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":721,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/netclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":722,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/netclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":723,"kind":2048,"name":"getPfxTrustOptions","url":"classes/netclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":724,"kind":2048,"name":"setPfxTrustOptions","url":"classes/netclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":725,"kind":2048,"name":"getProxyOptions","url":"classes/netclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":726,"kind":2048,"name":"setProxyOptions","url":"classes/netclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":727,"kind":2048,"name":"getReceiveBufferSize","url":"classes/netclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":728,"kind":2048,"name":"setReceiveBufferSize","url":"classes/netclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":729,"kind":2048,"name":"getReconnectAttempts","url":"classes/netclientoptions.html#getreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":730,"kind":2048,"name":"setReconnectAttempts","url":"classes/netclientoptions.html#setreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":731,"kind":2048,"name":"getReconnectInterval","url":"classes/netclientoptions.html#getreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":732,"kind":2048,"name":"setReconnectInterval","url":"classes/netclientoptions.html#setreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":733,"kind":2048,"name":"isReuseAddress","url":"classes/netclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":734,"kind":2048,"name":"setReuseAddress","url":"classes/netclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":735,"kind":2048,"name":"isReusePort","url":"classes/netclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":736,"kind":2048,"name":"setReusePort","url":"classes/netclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":737,"kind":2048,"name":"getSendBufferSize","url":"classes/netclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":738,"kind":2048,"name":"setSendBufferSize","url":"classes/netclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":739,"kind":2048,"name":"getSoLinger","url":"classes/netclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":740,"kind":2048,"name":"setSoLinger","url":"classes/netclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":741,"kind":2048,"name":"isSsl","url":"classes/netclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":742,"kind":2048,"name":"setSsl","url":"classes/netclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":743,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/netclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":744,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/netclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":745,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/netclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":746,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/netclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":747,"kind":2048,"name":"isTcpCork","url":"classes/netclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":748,"kind":2048,"name":"setTcpCork","url":"classes/netclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":749,"kind":2048,"name":"isTcpFastOpen","url":"classes/netclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":750,"kind":2048,"name":"setTcpFastOpen","url":"classes/netclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":751,"kind":2048,"name":"isTcpKeepAlive","url":"classes/netclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":752,"kind":2048,"name":"setTcpKeepAlive","url":"classes/netclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":753,"kind":2048,"name":"isTcpNoDelay","url":"classes/netclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":754,"kind":2048,"name":"setTcpNoDelay","url":"classes/netclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":755,"kind":2048,"name":"isTcpQuickAck","url":"classes/netclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":756,"kind":2048,"name":"setTcpQuickAck","url":"classes/netclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":757,"kind":2048,"name":"getTrafficClass","url":"classes/netclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":758,"kind":2048,"name":"setTrafficClass","url":"classes/netclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":759,"kind":2048,"name":"isTrustAll","url":"classes/netclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":760,"kind":2048,"name":"setTrustAll","url":"classes/netclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":761,"kind":2048,"name":"getTrustStoreOptions","url":"classes/netclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":762,"kind":2048,"name":"setTrustStoreOptions","url":"classes/netclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":763,"kind":2048,"name":"isUseAlpn","url":"classes/netclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":764,"kind":2048,"name":"setUseAlpn","url":"classes/netclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":765,"kind":2048,"name":"isUsePooledBuffers","url":"classes/netclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":766,"kind":2048,"name":"setUsePooledBuffers","url":"classes/netclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClientOptions"},{"id":767,"kind":128,"name":"NetServerOptions","url":"classes/netserveroptions.html","classes":"tsd-kind-class"},{"id":768,"kind":512,"name":"constructor","url":"classes/netserveroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NetServerOptions"},{"id":769,"kind":2048,"name":"getAcceptBacklog","url":"classes/netserveroptions.html#getacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":770,"kind":2048,"name":"setAcceptBacklog","url":"classes/netserveroptions.html#setacceptbacklog","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":771,"kind":2048,"name":"getClientAuth","url":"classes/netserveroptions.html#getclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":772,"kind":2048,"name":"setClientAuth","url":"classes/netserveroptions.html#setclientauth","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":773,"kind":2048,"name":"isClientAuthRequired","url":"classes/netserveroptions.html#isclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":774,"kind":2048,"name":"setClientAuthRequired","url":"classes/netserveroptions.html#setclientauthrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":775,"kind":2048,"name":"getCrlPaths","url":"classes/netserveroptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":776,"kind":2048,"name":"addCrlPath","url":"classes/netserveroptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":777,"kind":2048,"name":"getCrlValues","url":"classes/netserveroptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":778,"kind":2048,"name":"addCrlValue","url":"classes/netserveroptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":779,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/netserveroptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":780,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/netserveroptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":781,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/netserveroptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":782,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/netserveroptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":783,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/netserveroptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":784,"kind":2048,"name":"getHost","url":"classes/netserveroptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":785,"kind":2048,"name":"setHost","url":"classes/netserveroptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":786,"kind":2048,"name":"getIdleTimeout","url":"classes/netserveroptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":787,"kind":2048,"name":"setIdleTimeout","url":"classes/netserveroptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":788,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/netserveroptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":789,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/netserveroptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":790,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/netserveroptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":791,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/netserveroptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":792,"kind":2048,"name":"getKeyStoreOptions","url":"classes/netserveroptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":793,"kind":2048,"name":"setKeyStoreOptions","url":"classes/netserveroptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":794,"kind":2048,"name":"getLogActivity","url":"classes/netserveroptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":795,"kind":2048,"name":"setLogActivity","url":"classes/netserveroptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":796,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/netserveroptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":797,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/netserveroptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":798,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/netserveroptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":799,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/netserveroptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":800,"kind":2048,"name":"getPemTrustOptions","url":"classes/netserveroptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":801,"kind":2048,"name":"setPemTrustOptions","url":"classes/netserveroptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":802,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/netserveroptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":803,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/netserveroptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":804,"kind":2048,"name":"getPfxTrustOptions","url":"classes/netserveroptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":805,"kind":2048,"name":"setPfxTrustOptions","url":"classes/netserveroptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":806,"kind":2048,"name":"getPort","url":"classes/netserveroptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":807,"kind":2048,"name":"setPort","url":"classes/netserveroptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":808,"kind":2048,"name":"getReceiveBufferSize","url":"classes/netserveroptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":809,"kind":2048,"name":"setReceiveBufferSize","url":"classes/netserveroptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":810,"kind":2048,"name":"isReuseAddress","url":"classes/netserveroptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":811,"kind":2048,"name":"setReuseAddress","url":"classes/netserveroptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":812,"kind":2048,"name":"isReusePort","url":"classes/netserveroptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":813,"kind":2048,"name":"setReusePort","url":"classes/netserveroptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":814,"kind":2048,"name":"getSendBufferSize","url":"classes/netserveroptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":815,"kind":2048,"name":"setSendBufferSize","url":"classes/netserveroptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":816,"kind":2048,"name":"isSni","url":"classes/netserveroptions.html#issni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":817,"kind":2048,"name":"setSni","url":"classes/netserveroptions.html#setsni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":818,"kind":2048,"name":"getSoLinger","url":"classes/netserveroptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":819,"kind":2048,"name":"setSoLinger","url":"classes/netserveroptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":820,"kind":2048,"name":"isSsl","url":"classes/netserveroptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":821,"kind":2048,"name":"setSsl","url":"classes/netserveroptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":822,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/netserveroptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":823,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/netserveroptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":824,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/netserveroptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":825,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/netserveroptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":826,"kind":2048,"name":"isTcpCork","url":"classes/netserveroptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":827,"kind":2048,"name":"setTcpCork","url":"classes/netserveroptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":828,"kind":2048,"name":"isTcpFastOpen","url":"classes/netserveroptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":829,"kind":2048,"name":"setTcpFastOpen","url":"classes/netserveroptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":830,"kind":2048,"name":"isTcpKeepAlive","url":"classes/netserveroptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":831,"kind":2048,"name":"setTcpKeepAlive","url":"classes/netserveroptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":832,"kind":2048,"name":"isTcpNoDelay","url":"classes/netserveroptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":833,"kind":2048,"name":"setTcpNoDelay","url":"classes/netserveroptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":834,"kind":2048,"name":"isTcpQuickAck","url":"classes/netserveroptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":835,"kind":2048,"name":"setTcpQuickAck","url":"classes/netserveroptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":836,"kind":2048,"name":"getTrafficClass","url":"classes/netserveroptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":837,"kind":2048,"name":"setTrafficClass","url":"classes/netserveroptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":838,"kind":2048,"name":"getTrustStoreOptions","url":"classes/netserveroptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":839,"kind":2048,"name":"setTrustStoreOptions","url":"classes/netserveroptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":840,"kind":2048,"name":"isUseAlpn","url":"classes/netserveroptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":841,"kind":2048,"name":"setUseAlpn","url":"classes/netserveroptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":842,"kind":2048,"name":"isUsePooledBuffers","url":"classes/netserveroptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":843,"kind":2048,"name":"setUsePooledBuffers","url":"classes/netserveroptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServerOptions"},{"id":844,"kind":128,"name":"NetworkOptions","url":"classes/networkoptions.html","classes":"tsd-kind-class"},{"id":845,"kind":512,"name":"constructor","url":"classes/networkoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NetworkOptions"},{"id":846,"kind":2048,"name":"getLogActivity","url":"classes/networkoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":847,"kind":2048,"name":"setLogActivity","url":"classes/networkoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":848,"kind":2048,"name":"getReceiveBufferSize","url":"classes/networkoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":849,"kind":2048,"name":"setReceiveBufferSize","url":"classes/networkoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":850,"kind":2048,"name":"isReuseAddress","url":"classes/networkoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":851,"kind":2048,"name":"setReuseAddress","url":"classes/networkoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":852,"kind":2048,"name":"isReusePort","url":"classes/networkoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":853,"kind":2048,"name":"setReusePort","url":"classes/networkoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":854,"kind":2048,"name":"getSendBufferSize","url":"classes/networkoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":855,"kind":2048,"name":"setSendBufferSize","url":"classes/networkoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":856,"kind":2048,"name":"getTrafficClass","url":"classes/networkoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":857,"kind":2048,"name":"setTrafficClass","url":"classes/networkoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetworkOptions"},{"id":858,"kind":128,"name":"OpenOptions","url":"classes/openoptions.html","classes":"tsd-kind-class"},{"id":859,"kind":512,"name":"constructor","url":"classes/openoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OpenOptions"},{"id":860,"kind":2048,"name":"isAppend","url":"classes/openoptions.html#isappend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":861,"kind":2048,"name":"setAppend","url":"classes/openoptions.html#setappend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":862,"kind":2048,"name":"isCreate","url":"classes/openoptions.html#iscreate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":863,"kind":2048,"name":"setCreate","url":"classes/openoptions.html#setcreate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":864,"kind":2048,"name":"isCreateNew","url":"classes/openoptions.html#iscreatenew","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":865,"kind":2048,"name":"setCreateNew","url":"classes/openoptions.html#setcreatenew","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":866,"kind":2048,"name":"isDeleteOnClose","url":"classes/openoptions.html#isdeleteonclose","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":867,"kind":2048,"name":"setDeleteOnClose","url":"classes/openoptions.html#setdeleteonclose","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":868,"kind":2048,"name":"isDsync","url":"classes/openoptions.html#isdsync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":869,"kind":2048,"name":"setDsync","url":"classes/openoptions.html#setdsync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":870,"kind":2048,"name":"getPerms","url":"classes/openoptions.html#getperms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":871,"kind":2048,"name":"setPerms","url":"classes/openoptions.html#setperms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":872,"kind":2048,"name":"isRead","url":"classes/openoptions.html#isread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":873,"kind":2048,"name":"setRead","url":"classes/openoptions.html#setread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":874,"kind":2048,"name":"isSparse","url":"classes/openoptions.html#issparse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":875,"kind":2048,"name":"setSparse","url":"classes/openoptions.html#setsparse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":876,"kind":2048,"name":"isSync","url":"classes/openoptions.html#issync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":877,"kind":2048,"name":"setSync","url":"classes/openoptions.html#setsync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":878,"kind":2048,"name":"isTruncateExisting","url":"classes/openoptions.html#istruncateexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":879,"kind":2048,"name":"setTruncateExisting","url":"classes/openoptions.html#settruncateexisting","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":880,"kind":2048,"name":"isWrite","url":"classes/openoptions.html#iswrite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":881,"kind":2048,"name":"setWrite","url":"classes/openoptions.html#setwrite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenOptions"},{"id":882,"kind":128,"name":"OpenSSLEngineOptions","url":"classes/opensslengineoptions.html","classes":"tsd-kind-class"},{"id":883,"kind":512,"name":"constructor","url":"classes/opensslengineoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OpenSSLEngineOptions"},{"id":884,"kind":2048,"name":"isSessionCacheEnabled","url":"classes/opensslengineoptions.html#issessioncacheenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenSSLEngineOptions"},{"id":885,"kind":2048,"name":"setSessionCacheEnabled","url":"classes/opensslengineoptions.html#setsessioncacheenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OpenSSLEngineOptions"},{"id":886,"kind":128,"name":"Option","url":"classes/option.html","classes":"tsd-kind-class"},{"id":887,"kind":512,"name":"constructor","url":"classes/option.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Option"},{"id":888,"kind":2048,"name":"getArgName","url":"classes/option.html#getargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":889,"kind":2048,"name":"setArgName","url":"classes/option.html#setargname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":890,"kind":2048,"name":"getChoices","url":"classes/option.html#getchoices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":891,"kind":2048,"name":"setChoices","url":"classes/option.html#setchoices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":892,"kind":2048,"name":"addChoice","url":"classes/option.html#addchoice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":893,"kind":2048,"name":"getDefaultValue","url":"classes/option.html#getdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":894,"kind":2048,"name":"setDefaultValue","url":"classes/option.html#setdefaultvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":895,"kind":2048,"name":"getDescription","url":"classes/option.html#getdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":896,"kind":2048,"name":"setDescription","url":"classes/option.html#setdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":897,"kind":2048,"name":"isFlag","url":"classes/option.html#isflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":898,"kind":2048,"name":"setFlag","url":"classes/option.html#setflag","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":899,"kind":2048,"name":"isHelp","url":"classes/option.html#ishelp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":900,"kind":2048,"name":"setHelp","url":"classes/option.html#sethelp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":901,"kind":2048,"name":"isHidden","url":"classes/option.html#ishidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":902,"kind":2048,"name":"setHidden","url":"classes/option.html#sethidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":903,"kind":2048,"name":"getLongName","url":"classes/option.html#getlongname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":904,"kind":2048,"name":"setLongName","url":"classes/option.html#setlongname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":905,"kind":2048,"name":"isMultiValued","url":"classes/option.html#ismultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":906,"kind":2048,"name":"setMultiValued","url":"classes/option.html#setmultivalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":907,"kind":2048,"name":"getName","url":"classes/option.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":908,"kind":2048,"name":"isRequired","url":"classes/option.html#isrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":909,"kind":2048,"name":"setRequired","url":"classes/option.html#setrequired","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":910,"kind":2048,"name":"getShortName","url":"classes/option.html#getshortname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":911,"kind":2048,"name":"setShortName","url":"classes/option.html#setshortname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":912,"kind":2048,"name":"isSingleValued","url":"classes/option.html#issinglevalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":913,"kind":2048,"name":"setSingleValued","url":"classes/option.html#setsinglevalued","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Option"},{"id":914,"kind":128,"name":"PemKeyCertOptions","url":"classes/pemkeycertoptions.html","classes":"tsd-kind-class"},{"id":915,"kind":512,"name":"constructor","url":"classes/pemkeycertoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":916,"kind":2048,"name":"setCertPath","url":"classes/pemkeycertoptions.html#setcertpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":917,"kind":2048,"name":"getCertPaths","url":"classes/pemkeycertoptions.html#getcertpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":918,"kind":2048,"name":"setCertPaths","url":"classes/pemkeycertoptions.html#setcertpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":919,"kind":2048,"name":"setCertValue","url":"classes/pemkeycertoptions.html#setcertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":920,"kind":2048,"name":"getCertValues","url":"classes/pemkeycertoptions.html#getcertvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":921,"kind":2048,"name":"setCertValues","url":"classes/pemkeycertoptions.html#setcertvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":922,"kind":2048,"name":"setKeyPath","url":"classes/pemkeycertoptions.html#setkeypath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":923,"kind":2048,"name":"getKeyPaths","url":"classes/pemkeycertoptions.html#getkeypaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":924,"kind":2048,"name":"setKeyPaths","url":"classes/pemkeycertoptions.html#setkeypaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":925,"kind":2048,"name":"setKeyValue","url":"classes/pemkeycertoptions.html#setkeyvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":926,"kind":2048,"name":"getKeyValues","url":"classes/pemkeycertoptions.html#getkeyvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":927,"kind":2048,"name":"setKeyValues","url":"classes/pemkeycertoptions.html#setkeyvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemKeyCertOptions"},{"id":928,"kind":128,"name":"PemTrustOptions","url":"classes/pemtrustoptions.html","classes":"tsd-kind-class"},{"id":929,"kind":512,"name":"constructor","url":"classes/pemtrustoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":930,"kind":2048,"name":"getCertPaths","url":"classes/pemtrustoptions.html#getcertpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":931,"kind":2048,"name":"addCertPath","url":"classes/pemtrustoptions.html#addcertpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":932,"kind":2048,"name":"getCertValues","url":"classes/pemtrustoptions.html#getcertvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":933,"kind":2048,"name":"addCertValue","url":"classes/pemtrustoptions.html#addcertvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PemTrustOptions"},{"id":934,"kind":128,"name":"PfxOptions","url":"classes/pfxoptions.html","classes":"tsd-kind-class"},{"id":935,"kind":512,"name":"constructor","url":"classes/pfxoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PfxOptions"},{"id":936,"kind":2048,"name":"getPassword","url":"classes/pfxoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":937,"kind":2048,"name":"setPassword","url":"classes/pfxoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":938,"kind":2048,"name":"getPath","url":"classes/pfxoptions.html#getpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":939,"kind":2048,"name":"setPath","url":"classes/pfxoptions.html#setpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":940,"kind":2048,"name":"getValue","url":"classes/pfxoptions.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":941,"kind":2048,"name":"setValue","url":"classes/pfxoptions.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PfxOptions"},{"id":942,"kind":128,"name":"ProxyOptions","url":"classes/proxyoptions.html","classes":"tsd-kind-class"},{"id":943,"kind":512,"name":"constructor","url":"classes/proxyoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ProxyOptions"},{"id":944,"kind":2048,"name":"getHost","url":"classes/proxyoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":945,"kind":2048,"name":"setHost","url":"classes/proxyoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":946,"kind":2048,"name":"getPassword","url":"classes/proxyoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":947,"kind":2048,"name":"setPassword","url":"classes/proxyoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":948,"kind":2048,"name":"getPort","url":"classes/proxyoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":949,"kind":2048,"name":"setPort","url":"classes/proxyoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":950,"kind":2048,"name":"getType","url":"classes/proxyoptions.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":951,"kind":2048,"name":"setType","url":"classes/proxyoptions.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":952,"kind":2048,"name":"getUsername","url":"classes/proxyoptions.html#getusername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":953,"kind":2048,"name":"setUsername","url":"classes/proxyoptions.html#setusername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ProxyOptions"},{"id":954,"kind":128,"name":"RequestOptions","url":"classes/requestoptions.html","classes":"tsd-kind-class"},{"id":955,"kind":512,"name":"constructor","url":"classes/requestoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"RequestOptions"},{"id":956,"kind":2048,"name":"addHeader","url":"classes/requestoptions.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":957,"kind":2048,"name":"getHost","url":"classes/requestoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":958,"kind":2048,"name":"setHost","url":"classes/requestoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":959,"kind":2048,"name":"getPort","url":"classes/requestoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":960,"kind":2048,"name":"setPort","url":"classes/requestoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":961,"kind":2048,"name":"isSsl","url":"classes/requestoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":962,"kind":2048,"name":"setSsl","url":"classes/requestoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":963,"kind":2048,"name":"getURI","url":"classes/requestoptions.html#geturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":964,"kind":2048,"name":"setURI","url":"classes/requestoptions.html#seturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RequestOptions"},{"id":965,"kind":128,"name":"StreamPriority","url":"classes/streampriority.html","classes":"tsd-kind-class"},{"id":966,"kind":512,"name":"constructor","url":"classes/streampriority.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"StreamPriority"},{"id":967,"kind":2048,"name":"getDependency","url":"classes/streampriority.html#getdependency","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":968,"kind":2048,"name":"setDependency","url":"classes/streampriority.html#setdependency","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":969,"kind":2048,"name":"isExclusive","url":"classes/streampriority.html#isexclusive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":970,"kind":2048,"name":"setExclusive","url":"classes/streampriority.html#setexclusive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":971,"kind":2048,"name":"getWeight","url":"classes/streampriority.html#getweight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":972,"kind":2048,"name":"setWeight","url":"classes/streampriority.html#setweight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"StreamPriority"},{"id":973,"kind":128,"name":"TCPSSLOptions","url":"classes/tcpssloptions.html","classes":"tsd-kind-class"},{"id":974,"kind":512,"name":"constructor","url":"classes/tcpssloptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":975,"kind":2048,"name":"getCrlPaths","url":"classes/tcpssloptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":976,"kind":2048,"name":"addCrlPath","url":"classes/tcpssloptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":977,"kind":2048,"name":"getCrlValues","url":"classes/tcpssloptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":978,"kind":2048,"name":"addCrlValue","url":"classes/tcpssloptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":979,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/tcpssloptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":980,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/tcpssloptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":981,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/tcpssloptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":982,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/tcpssloptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":983,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/tcpssloptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":984,"kind":2048,"name":"getIdleTimeout","url":"classes/tcpssloptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":985,"kind":2048,"name":"setIdleTimeout","url":"classes/tcpssloptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":986,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/tcpssloptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":987,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/tcpssloptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":988,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/tcpssloptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":989,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/tcpssloptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":990,"kind":2048,"name":"getKeyStoreOptions","url":"classes/tcpssloptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":991,"kind":2048,"name":"setKeyStoreOptions","url":"classes/tcpssloptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":992,"kind":2048,"name":"getLogActivity","url":"classes/tcpssloptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":993,"kind":2048,"name":"setLogActivity","url":"classes/tcpssloptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":994,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/tcpssloptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":995,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/tcpssloptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":996,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/tcpssloptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":997,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/tcpssloptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":998,"kind":2048,"name":"getPemTrustOptions","url":"classes/tcpssloptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":999,"kind":2048,"name":"setPemTrustOptions","url":"classes/tcpssloptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1000,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/tcpssloptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1001,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/tcpssloptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1002,"kind":2048,"name":"getPfxTrustOptions","url":"classes/tcpssloptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1003,"kind":2048,"name":"setPfxTrustOptions","url":"classes/tcpssloptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1004,"kind":2048,"name":"getReceiveBufferSize","url":"classes/tcpssloptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1005,"kind":2048,"name":"setReceiveBufferSize","url":"classes/tcpssloptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1006,"kind":2048,"name":"isReuseAddress","url":"classes/tcpssloptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1007,"kind":2048,"name":"setReuseAddress","url":"classes/tcpssloptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1008,"kind":2048,"name":"isReusePort","url":"classes/tcpssloptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1009,"kind":2048,"name":"setReusePort","url":"classes/tcpssloptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1010,"kind":2048,"name":"getSendBufferSize","url":"classes/tcpssloptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1011,"kind":2048,"name":"setSendBufferSize","url":"classes/tcpssloptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1012,"kind":2048,"name":"getSoLinger","url":"classes/tcpssloptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1013,"kind":2048,"name":"setSoLinger","url":"classes/tcpssloptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1014,"kind":2048,"name":"isSsl","url":"classes/tcpssloptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1015,"kind":2048,"name":"setSsl","url":"classes/tcpssloptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1016,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/tcpssloptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1017,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/tcpssloptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1018,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/tcpssloptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1019,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/tcpssloptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1020,"kind":2048,"name":"isTcpCork","url":"classes/tcpssloptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1021,"kind":2048,"name":"setTcpCork","url":"classes/tcpssloptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1022,"kind":2048,"name":"isTcpFastOpen","url":"classes/tcpssloptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1023,"kind":2048,"name":"setTcpFastOpen","url":"classes/tcpssloptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1024,"kind":2048,"name":"isTcpKeepAlive","url":"classes/tcpssloptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1025,"kind":2048,"name":"setTcpKeepAlive","url":"classes/tcpssloptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1026,"kind":2048,"name":"isTcpNoDelay","url":"classes/tcpssloptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1027,"kind":2048,"name":"setTcpNoDelay","url":"classes/tcpssloptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1028,"kind":2048,"name":"isTcpQuickAck","url":"classes/tcpssloptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1029,"kind":2048,"name":"setTcpQuickAck","url":"classes/tcpssloptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1030,"kind":2048,"name":"getTrafficClass","url":"classes/tcpssloptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1031,"kind":2048,"name":"setTrafficClass","url":"classes/tcpssloptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1032,"kind":2048,"name":"getTrustStoreOptions","url":"classes/tcpssloptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1033,"kind":2048,"name":"setTrustStoreOptions","url":"classes/tcpssloptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1034,"kind":2048,"name":"isUseAlpn","url":"classes/tcpssloptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1035,"kind":2048,"name":"setUseAlpn","url":"classes/tcpssloptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1036,"kind":2048,"name":"isUsePooledBuffers","url":"classes/tcpssloptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1037,"kind":2048,"name":"setUsePooledBuffers","url":"classes/tcpssloptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TCPSSLOptions"},{"id":1038,"kind":128,"name":"VertxOptions","url":"classes/vertxoptions.html","classes":"tsd-kind-class"},{"id":1039,"kind":512,"name":"constructor","url":"classes/vertxoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"VertxOptions"},{"id":1040,"kind":2048,"name":"getAddressResolverOptions","url":"classes/vertxoptions.html#getaddressresolveroptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1041,"kind":2048,"name":"setAddressResolverOptions","url":"classes/vertxoptions.html#setaddressresolveroptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1042,"kind":2048,"name":"getBlockedThreadCheckInterval","url":"classes/vertxoptions.html#getblockedthreadcheckinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1043,"kind":2048,"name":"setBlockedThreadCheckInterval","url":"classes/vertxoptions.html#setblockedthreadcheckinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1044,"kind":2048,"name":"getBlockedThreadCheckIntervalUnit","url":"classes/vertxoptions.html#getblockedthreadcheckintervalunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1045,"kind":2048,"name":"setBlockedThreadCheckIntervalUnit","url":"classes/vertxoptions.html#setblockedthreadcheckintervalunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1046,"kind":2048,"name":"getClusterHost","url":"classes/vertxoptions.html#getclusterhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1047,"kind":2048,"name":"setClusterHost","url":"classes/vertxoptions.html#setclusterhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1048,"kind":2048,"name":"getClusterPingInterval","url":"classes/vertxoptions.html#getclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1049,"kind":2048,"name":"setClusterPingInterval","url":"classes/vertxoptions.html#setclusterpinginterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1050,"kind":2048,"name":"getClusterPingReplyInterval","url":"classes/vertxoptions.html#getclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1051,"kind":2048,"name":"setClusterPingReplyInterval","url":"classes/vertxoptions.html#setclusterpingreplyinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1052,"kind":2048,"name":"getClusterPort","url":"classes/vertxoptions.html#getclusterport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1053,"kind":2048,"name":"setClusterPort","url":"classes/vertxoptions.html#setclusterport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1054,"kind":2048,"name":"getClusterPublicHost","url":"classes/vertxoptions.html#getclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1055,"kind":2048,"name":"setClusterPublicHost","url":"classes/vertxoptions.html#setclusterpublichost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1056,"kind":2048,"name":"getClusterPublicPort","url":"classes/vertxoptions.html#getclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1057,"kind":2048,"name":"setClusterPublicPort","url":"classes/vertxoptions.html#setclusterpublicport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1058,"kind":2048,"name":"isClustered","url":"classes/vertxoptions.html#isclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1059,"kind":2048,"name":"setClustered","url":"classes/vertxoptions.html#setclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1060,"kind":2048,"name":"getEventBusOptions","url":"classes/vertxoptions.html#geteventbusoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1061,"kind":2048,"name":"setEventBusOptions","url":"classes/vertxoptions.html#seteventbusoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1062,"kind":2048,"name":"getEventLoopPoolSize","url":"classes/vertxoptions.html#geteventlooppoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1063,"kind":2048,"name":"setEventLoopPoolSize","url":"classes/vertxoptions.html#seteventlooppoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1064,"kind":2048,"name":"isFileResolverCachingEnabled","url":"classes/vertxoptions.html#isfileresolvercachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1065,"kind":2048,"name":"setFileResolverCachingEnabled","url":"classes/vertxoptions.html#setfileresolvercachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1066,"kind":2048,"name":"getFileSystemOptions","url":"classes/vertxoptions.html#getfilesystemoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1067,"kind":2048,"name":"setFileSystemOptions","url":"classes/vertxoptions.html#setfilesystemoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1068,"kind":2048,"name":"isHAEnabled","url":"classes/vertxoptions.html#ishaenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1069,"kind":2048,"name":"setHAEnabled","url":"classes/vertxoptions.html#sethaenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1070,"kind":2048,"name":"getHAGroup","url":"classes/vertxoptions.html#gethagroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1071,"kind":2048,"name":"setHAGroup","url":"classes/vertxoptions.html#sethagroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1072,"kind":2048,"name":"getInternalBlockingPoolSize","url":"classes/vertxoptions.html#getinternalblockingpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1073,"kind":2048,"name":"setInternalBlockingPoolSize","url":"classes/vertxoptions.html#setinternalblockingpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1074,"kind":2048,"name":"getMaxEventLoopExecuteTime","url":"classes/vertxoptions.html#getmaxeventloopexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1075,"kind":2048,"name":"setMaxEventLoopExecuteTime","url":"classes/vertxoptions.html#setmaxeventloopexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1076,"kind":2048,"name":"getMaxEventLoopExecuteTimeUnit","url":"classes/vertxoptions.html#getmaxeventloopexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1077,"kind":2048,"name":"setMaxEventLoopExecuteTimeUnit","url":"classes/vertxoptions.html#setmaxeventloopexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1078,"kind":2048,"name":"getMaxWorkerExecuteTime","url":"classes/vertxoptions.html#getmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1079,"kind":2048,"name":"setMaxWorkerExecuteTime","url":"classes/vertxoptions.html#setmaxworkerexecutetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1080,"kind":2048,"name":"getMaxWorkerExecuteTimeUnit","url":"classes/vertxoptions.html#getmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1081,"kind":2048,"name":"setMaxWorkerExecuteTimeUnit","url":"classes/vertxoptions.html#setmaxworkerexecutetimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1082,"kind":2048,"name":"getMetricsOptions","url":"classes/vertxoptions.html#getmetricsoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1083,"kind":2048,"name":"setMetricsOptions","url":"classes/vertxoptions.html#setmetricsoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1084,"kind":2048,"name":"getPreferNativeTransport","url":"classes/vertxoptions.html#getprefernativetransport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1085,"kind":2048,"name":"setPreferNativeTransport","url":"classes/vertxoptions.html#setprefernativetransport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1086,"kind":2048,"name":"getQuorumSize","url":"classes/vertxoptions.html#getquorumsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1087,"kind":2048,"name":"setQuorumSize","url":"classes/vertxoptions.html#setquorumsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1088,"kind":2048,"name":"getWarningExceptionTime","url":"classes/vertxoptions.html#getwarningexceptiontime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1089,"kind":2048,"name":"setWarningExceptionTime","url":"classes/vertxoptions.html#setwarningexceptiontime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1090,"kind":2048,"name":"getWarningExceptionTimeUnit","url":"classes/vertxoptions.html#getwarningexceptiontimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1091,"kind":2048,"name":"setWarningExceptionTimeUnit","url":"classes/vertxoptions.html#setwarningexceptiontimeunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1092,"kind":2048,"name":"getWorkerPoolSize","url":"classes/vertxoptions.html#getworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1093,"kind":2048,"name":"setWorkerPoolSize","url":"classes/vertxoptions.html#setworkerpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"VertxOptions"},{"id":1094,"kind":128,"name":"WebSocketConnectOptions","url":"classes/websocketconnectoptions.html","classes":"tsd-kind-class"},{"id":1095,"kind":512,"name":"constructor","url":"classes/websocketconnectoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1096,"kind":2048,"name":"addHeader","url":"classes/websocketconnectoptions.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1097,"kind":2048,"name":"getHost","url":"classes/websocketconnectoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1098,"kind":2048,"name":"setHost","url":"classes/websocketconnectoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1099,"kind":2048,"name":"getPort","url":"classes/websocketconnectoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1100,"kind":2048,"name":"setPort","url":"classes/websocketconnectoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1101,"kind":2048,"name":"isSsl","url":"classes/websocketconnectoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1102,"kind":2048,"name":"setSsl","url":"classes/websocketconnectoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1103,"kind":2048,"name":"getSubProtocols","url":"classes/websocketconnectoptions.html#getsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1104,"kind":2048,"name":"setSubProtocols","url":"classes/websocketconnectoptions.html#setsubprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1105,"kind":2048,"name":"addSubProtocol","url":"classes/websocketconnectoptions.html#addsubprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1106,"kind":2048,"name":"getURI","url":"classes/websocketconnectoptions.html#geturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1107,"kind":2048,"name":"setURI","url":"classes/websocketconnectoptions.html#seturi","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1108,"kind":2048,"name":"getVersion","url":"classes/websocketconnectoptions.html#getversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1109,"kind":2048,"name":"setVersion","url":"classes/websocketconnectoptions.html#setversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketConnectOptions"},{"id":1110,"kind":256,"name":"Handler","url":"interfaces/handler.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":1111,"kind":2048,"name":"handle","url":"interfaces/handler.html#handle","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Handler"},{"id":1112,"kind":256,"name":"AsyncResult","url":"interfaces/asyncresult.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":1113,"kind":2048,"name":"succeeded","url":"interfaces/asyncresult.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1114,"kind":2048,"name":"failed","url":"interfaces/asyncresult.html#failed","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1115,"kind":2048,"name":"cause","url":"interfaces/asyncresult.html#cause","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1116,"kind":2048,"name":"result","url":"interfaces/asyncresult.html#result","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"AsyncResult"},{"id":1117,"kind":128,"name":"AsyncFile","url":"classes/asyncfile.html","classes":"tsd-kind-class"},{"id":1118,"kind":2048,"name":"end","url":"classes/asyncfile.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1119,"kind":2048,"name":"writeQueueFull","url":"classes/asyncfile.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1120,"kind":2048,"name":"pipe","url":"classes/asyncfile.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1121,"kind":2048,"name":"pipeTo","url":"classes/asyncfile.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1122,"kind":2048,"name":"handler","url":"classes/asyncfile.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1123,"kind":2048,"name":"pause","url":"classes/asyncfile.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1124,"kind":2048,"name":"resume","url":"classes/asyncfile.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1125,"kind":2048,"name":"endHandler","url":"classes/asyncfile.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1126,"kind":2048,"name":"write","url":"classes/asyncfile.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1127,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/asyncfile.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1128,"kind":2048,"name":"drainHandler","url":"classes/asyncfile.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1129,"kind":2048,"name":"exceptionHandler","url":"classes/asyncfile.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1130,"kind":2048,"name":"fetch","url":"classes/asyncfile.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1131,"kind":2048,"name":"close","url":"classes/asyncfile.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1132,"kind":2048,"name":"read","url":"classes/asyncfile.html#read","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1133,"kind":2048,"name":"flush","url":"classes/asyncfile.html#flush","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1134,"kind":2048,"name":"setReadPos","url":"classes/asyncfile.html#setreadpos","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1135,"kind":2048,"name":"setReadLength","url":"classes/asyncfile.html#setreadlength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1136,"kind":2048,"name":"setWritePos","url":"classes/asyncfile.html#setwritepos","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1137,"kind":2048,"name":"getWritePos","url":"classes/asyncfile.html#getwritepos","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1138,"kind":2048,"name":"setReadBufferSize","url":"classes/asyncfile.html#setreadbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncFile"},{"id":1139,"kind":128,"name":"AsyncMap","url":"classes/asyncmap.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1140,"kind":2048,"name":"get","url":"classes/asyncmap.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1141,"kind":2048,"name":"put","url":"classes/asyncmap.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1142,"kind":2048,"name":"putIfAbsent","url":"classes/asyncmap.html#putifabsent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1143,"kind":2048,"name":"remove","url":"classes/asyncmap.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1144,"kind":2048,"name":"removeIfPresent","url":"classes/asyncmap.html#removeifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1145,"kind":2048,"name":"replace","url":"classes/asyncmap.html#replace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1146,"kind":2048,"name":"replaceIfPresent","url":"classes/asyncmap.html#replaceifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1147,"kind":2048,"name":"clear","url":"classes/asyncmap.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1148,"kind":2048,"name":"size","url":"classes/asyncmap.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"AsyncMap"},{"id":1149,"kind":128,"name":"Buffer","url":"classes/buffer.html","classes":"tsd-kind-class"},{"id":1150,"kind":2048,"name":"buffer","url":"classes/buffer.html#buffer-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Buffer"},{"id":1151,"kind":2048,"name":"toString","url":"classes/buffer.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1152,"kind":2048,"name":"toJsonObject","url":"classes/buffer.html#tojsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1153,"kind":2048,"name":"toJsonArray","url":"classes/buffer.html#tojsonarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1154,"kind":2048,"name":"toJson","url":"classes/buffer.html#tojson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1155,"kind":2048,"name":"getByte","url":"classes/buffer.html#getbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1156,"kind":2048,"name":"getUnsignedByte","url":"classes/buffer.html#getunsignedbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1157,"kind":2048,"name":"getInt","url":"classes/buffer.html#getint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1158,"kind":2048,"name":"getIntLE","url":"classes/buffer.html#getintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1159,"kind":2048,"name":"getUnsignedInt","url":"classes/buffer.html#getunsignedint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1160,"kind":2048,"name":"getUnsignedIntLE","url":"classes/buffer.html#getunsignedintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1161,"kind":2048,"name":"getLong","url":"classes/buffer.html#getlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1162,"kind":2048,"name":"getLongLE","url":"classes/buffer.html#getlongle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1163,"kind":2048,"name":"getDouble","url":"classes/buffer.html#getdouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1164,"kind":2048,"name":"getFloat","url":"classes/buffer.html#getfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1165,"kind":2048,"name":"getShort","url":"classes/buffer.html#getshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1166,"kind":2048,"name":"getShortLE","url":"classes/buffer.html#getshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1167,"kind":2048,"name":"getUnsignedShort","url":"classes/buffer.html#getunsignedshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1168,"kind":2048,"name":"getUnsignedShortLE","url":"classes/buffer.html#getunsignedshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1169,"kind":2048,"name":"getMedium","url":"classes/buffer.html#getmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1170,"kind":2048,"name":"getMediumLE","url":"classes/buffer.html#getmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1171,"kind":2048,"name":"getUnsignedMedium","url":"classes/buffer.html#getunsignedmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1172,"kind":2048,"name":"getUnsignedMediumLE","url":"classes/buffer.html#getunsignedmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1173,"kind":2048,"name":"getBuffer","url":"classes/buffer.html#getbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1174,"kind":2048,"name":"getString","url":"classes/buffer.html#getstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1175,"kind":2048,"name":"appendBuffer","url":"classes/buffer.html#appendbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1176,"kind":2048,"name":"appendByte","url":"classes/buffer.html#appendbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1177,"kind":2048,"name":"appendUnsignedByte","url":"classes/buffer.html#appendunsignedbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1178,"kind":2048,"name":"appendInt","url":"classes/buffer.html#appendint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1179,"kind":2048,"name":"appendIntLE","url":"classes/buffer.html#appendintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1180,"kind":2048,"name":"appendUnsignedInt","url":"classes/buffer.html#appendunsignedint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1181,"kind":2048,"name":"appendUnsignedIntLE","url":"classes/buffer.html#appendunsignedintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1182,"kind":2048,"name":"appendMedium","url":"classes/buffer.html#appendmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1183,"kind":2048,"name":"appendMediumLE","url":"classes/buffer.html#appendmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1184,"kind":2048,"name":"appendLong","url":"classes/buffer.html#appendlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1185,"kind":2048,"name":"appendLongLE","url":"classes/buffer.html#appendlongle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1186,"kind":2048,"name":"appendShort","url":"classes/buffer.html#appendshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1187,"kind":2048,"name":"appendShortLE","url":"classes/buffer.html#appendshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1188,"kind":2048,"name":"appendUnsignedShort","url":"classes/buffer.html#appendunsignedshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1189,"kind":2048,"name":"appendUnsignedShortLE","url":"classes/buffer.html#appendunsignedshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1190,"kind":2048,"name":"appendFloat","url":"classes/buffer.html#appendfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1191,"kind":2048,"name":"appendDouble","url":"classes/buffer.html#appenddouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1192,"kind":2048,"name":"appendString","url":"classes/buffer.html#appendstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1193,"kind":2048,"name":"setByte","url":"classes/buffer.html#setbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1194,"kind":2048,"name":"setUnsignedByte","url":"classes/buffer.html#setunsignedbyte","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1195,"kind":2048,"name":"setInt","url":"classes/buffer.html#setint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1196,"kind":2048,"name":"setIntLE","url":"classes/buffer.html#setintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1197,"kind":2048,"name":"setUnsignedInt","url":"classes/buffer.html#setunsignedint","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1198,"kind":2048,"name":"setUnsignedIntLE","url":"classes/buffer.html#setunsignedintle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1199,"kind":2048,"name":"setMedium","url":"classes/buffer.html#setmedium","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1200,"kind":2048,"name":"setMediumLE","url":"classes/buffer.html#setmediumle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1201,"kind":2048,"name":"setLong","url":"classes/buffer.html#setlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1202,"kind":2048,"name":"setLongLE","url":"classes/buffer.html#setlongle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1203,"kind":2048,"name":"setDouble","url":"classes/buffer.html#setdouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1204,"kind":2048,"name":"setFloat","url":"classes/buffer.html#setfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1205,"kind":2048,"name":"setShort","url":"classes/buffer.html#setshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1206,"kind":2048,"name":"setShortLE","url":"classes/buffer.html#setshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1207,"kind":2048,"name":"setUnsignedShort","url":"classes/buffer.html#setunsignedshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1208,"kind":2048,"name":"setUnsignedShortLE","url":"classes/buffer.html#setunsignedshortle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1209,"kind":2048,"name":"setBuffer","url":"classes/buffer.html#setbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1210,"kind":2048,"name":"setString","url":"classes/buffer.html#setstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1211,"kind":2048,"name":"length","url":"classes/buffer.html#length","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1212,"kind":2048,"name":"copy","url":"classes/buffer.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1213,"kind":2048,"name":"slice","url":"classes/buffer.html#slice","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1214,"kind":2048,"name":"getBytes","url":"classes/buffer.html#getbytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1215,"kind":2048,"name":"appendBytes","url":"classes/buffer.html#appendbytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1216,"kind":2048,"name":"setBytes","url":"classes/buffer.html#setbytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1217,"kind":2048,"name":"getByteBuf","url":"classes/buffer.html#getbytebuf","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Buffer"},{"id":1218,"kind":128,"name":"CLI","url":"classes/cli.html","classes":"tsd-kind-class"},{"id":1219,"kind":2048,"name":"create","url":"classes/cli.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CLI"},{"id":1220,"kind":2048,"name":"parse","url":"classes/cli.html#parse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1221,"kind":2048,"name":"getName","url":"classes/cli.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1222,"kind":2048,"name":"setName","url":"classes/cli.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1223,"kind":2048,"name":"getDescription","url":"classes/cli.html#getdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1224,"kind":2048,"name":"setDescription","url":"classes/cli.html#setdescription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1225,"kind":2048,"name":"getSummary","url":"classes/cli.html#getsummary","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1226,"kind":2048,"name":"setSummary","url":"classes/cli.html#setsummary","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1227,"kind":2048,"name":"isHidden","url":"classes/cli.html#ishidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1228,"kind":2048,"name":"setHidden","url":"classes/cli.html#sethidden","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1229,"kind":2048,"name":"getOptions","url":"classes/cli.html#getoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1230,"kind":2048,"name":"addOption","url":"classes/cli.html#addoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1231,"kind":2048,"name":"addOptions","url":"classes/cli.html#addoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1232,"kind":2048,"name":"setOptions","url":"classes/cli.html#setoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1233,"kind":2048,"name":"getArguments","url":"classes/cli.html#getarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1234,"kind":2048,"name":"addArgument","url":"classes/cli.html#addargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1235,"kind":2048,"name":"addArguments","url":"classes/cli.html#addarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1236,"kind":2048,"name":"setArguments","url":"classes/cli.html#setarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1237,"kind":2048,"name":"getOption","url":"classes/cli.html#getoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1238,"kind":2048,"name":"getArgument","url":"classes/cli.html#getargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1239,"kind":2048,"name":"removeOption","url":"classes/cli.html#removeoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1240,"kind":2048,"name":"removeArgument","url":"classes/cli.html#removeargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1241,"kind":2048,"name":"getPriority","url":"classes/cli.html#getpriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1242,"kind":2048,"name":"setPriority","url":"classes/cli.html#setpriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CLI"},{"id":1243,"kind":128,"name":"CommandLine","url":"classes/commandline.html","classes":"tsd-kind-class"},{"id":1244,"kind":2048,"name":"create","url":"classes/commandline.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"CommandLine"},{"id":1245,"kind":2048,"name":"cli","url":"classes/commandline.html#cli","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1246,"kind":2048,"name":"allArguments","url":"classes/commandline.html#allarguments","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1247,"kind":2048,"name":"getOptionValue","url":"classes/commandline.html#getoptionvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CommandLine"},{"id":1248,"kind":2048,"name":"getArgumentValue","url":"classes/commandline.html#getargumentvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CommandLine"},{"id":1249,"kind":2048,"name":"isFlagEnabled","url":"classes/commandline.html#isflagenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1250,"kind":2048,"name":"isOptionAssigned","url":"classes/commandline.html#isoptionassigned","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1251,"kind":2048,"name":"getRawValues","url":"classes/commandline.html#getrawvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1252,"kind":2048,"name":"getRawValuesForOption","url":"classes/commandline.html#getrawvaluesforoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1253,"kind":2048,"name":"getRawValuesForArgument","url":"classes/commandline.html#getrawvaluesforargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1254,"kind":2048,"name":"getRawValueForOption","url":"classes/commandline.html#getrawvalueforoption","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1255,"kind":2048,"name":"acceptMoreValues","url":"classes/commandline.html#acceptmorevalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1256,"kind":2048,"name":"getRawValueForArgument","url":"classes/commandline.html#getrawvalueforargument","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1257,"kind":2048,"name":"isArgumentAssigned","url":"classes/commandline.html#isargumentassigned","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1258,"kind":2048,"name":"isSeenInCommandLine","url":"classes/commandline.html#isseenincommandline","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1259,"kind":2048,"name":"isValid","url":"classes/commandline.html#isvalid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1260,"kind":2048,"name":"isAskingForHelp","url":"classes/commandline.html#isaskingforhelp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CommandLine"},{"id":1261,"kind":128,"name":"CompositeFuture","url":"classes/compositefuture.html","classes":"tsd-kind-class"},{"id":1262,"kind":2048,"name":"complete","url":"classes/compositefuture.html#complete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1263,"kind":2048,"name":"tryComplete","url":"classes/compositefuture.html#trycomplete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1264,"kind":2048,"name":"result","url":"classes/compositefuture.html#result","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1265,"kind":2048,"name":"flatMap","url":"classes/compositefuture.html#flatmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"CompositeFuture"},{"id":1266,"kind":2048,"name":"compose","url":"classes/compositefuture.html#compose","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"CompositeFuture"},{"id":1267,"kind":2048,"name":"map","url":"classes/compositefuture.html#map","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"CompositeFuture"},{"id":1268,"kind":2048,"name":"completer","url":"classes/compositefuture.html#completer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1269,"kind":2048,"name":"recover","url":"classes/compositefuture.html#recover","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1270,"kind":2048,"name":"otherwise","url":"classes/compositefuture.html#otherwise","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1271,"kind":2048,"name":"otherwiseEmpty","url":"classes/compositefuture.html#otherwiseempty","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1272,"kind":2048,"name":"all","url":"classes/compositefuture.html#all","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"CompositeFuture"},{"id":1273,"kind":2048,"name":"any","url":"classes/compositefuture.html#any","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"CompositeFuture"},{"id":1274,"kind":2048,"name":"join","url":"classes/compositefuture.html#join","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"CompositeFuture"},{"id":1275,"kind":2048,"name":"setHandler","url":"classes/compositefuture.html#sethandler","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1276,"kind":2048,"name":"onComplete","url":"classes/compositefuture.html#oncomplete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1277,"kind":2048,"name":"onSuccess","url":"classes/compositefuture.html#onsuccess","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1278,"kind":2048,"name":"onFailure","url":"classes/compositefuture.html#onfailure","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1279,"kind":2048,"name":"cause","url":"classes/compositefuture.html#cause","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1280,"kind":2048,"name":"succeeded","url":"classes/compositefuture.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1281,"kind":2048,"name":"failed","url":"classes/compositefuture.html#failed","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1282,"kind":2048,"name":"isComplete","url":"classes/compositefuture.html#iscomplete","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"CompositeFuture"},{"id":1283,"kind":2048,"name":"resultAt","url":"classes/compositefuture.html#resultat","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"CompositeFuture"},{"id":1284,"kind":2048,"name":"size","url":"classes/compositefuture.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"CompositeFuture"},{"id":1285,"kind":2048,"name":"future","url":"classes/compositefuture.html#future","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static","parent":"CompositeFuture"},{"id":1286,"kind":2048,"name":"succeededFuture","url":"classes/compositefuture.html#succeededfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static","parent":"CompositeFuture"},{"id":1287,"kind":2048,"name":"failedFuture","url":"classes/compositefuture.html#failedfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited tsd-is-static","parent":"CompositeFuture"},{"id":1288,"kind":2048,"name":"fail","url":"classes/compositefuture.html#fail","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"CompositeFuture"},{"id":1289,"kind":2048,"name":"tryFail","url":"classes/compositefuture.html#tryfail","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"CompositeFuture"},{"id":1290,"kind":2048,"name":"mapEmpty","url":"classes/compositefuture.html#mapempty","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"CompositeFuture"},{"id":1291,"kind":2048,"name":"then","url":"classes/compositefuture.html#then","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"CompositeFuture"},{"id":1292,"kind":128,"name":"Context","url":"classes/context.html","classes":"tsd-kind-class"},{"id":1293,"kind":2048,"name":"isOnWorkerThread","url":"classes/context.html#isonworkerthread","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Context"},{"id":1294,"kind":2048,"name":"isOnEventLoopThread","url":"classes/context.html#isoneventloopthread","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Context"},{"id":1295,"kind":2048,"name":"isOnVertxThread","url":"classes/context.html#isonvertxthread","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Context"},{"id":1296,"kind":2048,"name":"runOnContext","url":"classes/context.html#runoncontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1297,"kind":2048,"name":"executeBlocking","url":"classes/context.html#executeblocking","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Context"},{"id":1298,"kind":2048,"name":"deploymentID","url":"classes/context.html#deploymentid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1299,"kind":2048,"name":"config","url":"classes/context.html#config","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1300,"kind":2048,"name":"processArgs","url":"classes/context.html#processargs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1301,"kind":2048,"name":"isEventLoopContext","url":"classes/context.html#iseventloopcontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1302,"kind":2048,"name":"isWorkerContext","url":"classes/context.html#isworkercontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1303,"kind":2048,"name":"isMultiThreadedWorkerContext","url":"classes/context.html#ismultithreadedworkercontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1304,"kind":2048,"name":"get","url":"classes/context.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Context"},{"id":1305,"kind":2048,"name":"put","url":"classes/context.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1306,"kind":2048,"name":"remove","url":"classes/context.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1307,"kind":2048,"name":"owner","url":"classes/context.html#owner","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1308,"kind":2048,"name":"getInstanceCount","url":"classes/context.html#getinstancecount","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1309,"kind":2048,"name":"exceptionHandler","url":"classes/context.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1310,"kind":2048,"name":"addCloseHook","url":"classes/context.html#addclosehook","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1311,"kind":2048,"name":"removeCloseHook","url":"classes/context.html#removeclosehook","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Context"},{"id":1312,"kind":128,"name":"Cookie","url":"classes/cookie.html","classes":"tsd-kind-class"},{"id":1313,"kind":2048,"name":"cookie","url":"classes/cookie.html#cookie-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Cookie"},{"id":1314,"kind":2048,"name":"getName","url":"classes/cookie.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1315,"kind":2048,"name":"getValue","url":"classes/cookie.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1316,"kind":2048,"name":"setValue","url":"classes/cookie.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1317,"kind":2048,"name":"setDomain","url":"classes/cookie.html#setdomain","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1318,"kind":2048,"name":"getDomain","url":"classes/cookie.html#getdomain","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1319,"kind":2048,"name":"setPath","url":"classes/cookie.html#setpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1320,"kind":2048,"name":"getPath","url":"classes/cookie.html#getpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1321,"kind":2048,"name":"setMaxAge","url":"classes/cookie.html#setmaxage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1322,"kind":2048,"name":"setSecure","url":"classes/cookie.html#setsecure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1323,"kind":2048,"name":"isSecure","url":"classes/cookie.html#issecure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1324,"kind":2048,"name":"setHttpOnly","url":"classes/cookie.html#sethttponly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1325,"kind":2048,"name":"isHttpOnly","url":"classes/cookie.html#ishttponly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1326,"kind":2048,"name":"setSameSite","url":"classes/cookie.html#setsamesite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1327,"kind":2048,"name":"getSameSite","url":"classes/cookie.html#getsamesite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1328,"kind":2048,"name":"encode","url":"classes/cookie.html#encode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cookie"},{"id":1329,"kind":128,"name":"Counter","url":"classes/counter.html","classes":"tsd-kind-class"},{"id":1330,"kind":2048,"name":"get","url":"classes/counter.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1331,"kind":2048,"name":"incrementAndGet","url":"classes/counter.html#incrementandget","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1332,"kind":2048,"name":"getAndIncrement","url":"classes/counter.html#getandincrement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1333,"kind":2048,"name":"decrementAndGet","url":"classes/counter.html#decrementandget","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1334,"kind":2048,"name":"addAndGet","url":"classes/counter.html#addandget","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1335,"kind":2048,"name":"getAndAdd","url":"classes/counter.html#getandadd","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1336,"kind":2048,"name":"compareAndSet","url":"classes/counter.html#compareandset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Counter"},{"id":1337,"kind":128,"name":"DatagramPacket","url":"classes/datagrampacket.html","classes":"tsd-kind-class"},{"id":1338,"kind":2048,"name":"sender","url":"classes/datagrampacket.html#sender","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramPacket"},{"id":1339,"kind":2048,"name":"data","url":"classes/datagrampacket.html#data","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramPacket"},{"id":1340,"kind":128,"name":"DatagramSocket","url":"classes/datagramsocket.html","classes":"tsd-kind-class"},{"id":1341,"kind":2048,"name":"isMetricsEnabled","url":"classes/datagramsocket.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1342,"kind":2048,"name":"pipe","url":"classes/datagramsocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1343,"kind":2048,"name":"pipeTo","url":"classes/datagramsocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1344,"kind":2048,"name":"send","url":"classes/datagramsocket.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1345,"kind":2048,"name":"sender","url":"classes/datagramsocket.html#sender","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1346,"kind":2048,"name":"close","url":"classes/datagramsocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1347,"kind":2048,"name":"localAddress","url":"classes/datagramsocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1348,"kind":2048,"name":"listenMulticastGroup","url":"classes/datagramsocket.html#listenmulticastgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1349,"kind":2048,"name":"unlistenMulticastGroup","url":"classes/datagramsocket.html#unlistenmulticastgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1350,"kind":2048,"name":"blockMulticastGroup","url":"classes/datagramsocket.html#blockmulticastgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1351,"kind":2048,"name":"listen","url":"classes/datagramsocket.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1352,"kind":2048,"name":"pause","url":"classes/datagramsocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1353,"kind":2048,"name":"resume","url":"classes/datagramsocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1354,"kind":2048,"name":"fetch","url":"classes/datagramsocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1355,"kind":2048,"name":"endHandler","url":"classes/datagramsocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1356,"kind":2048,"name":"handler","url":"classes/datagramsocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1357,"kind":2048,"name":"exceptionHandler","url":"classes/datagramsocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatagramSocket"},{"id":1358,"kind":128,"name":"DeliveryContext","url":"classes/deliverycontext.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1359,"kind":2048,"name":"message","url":"classes/deliverycontext.html#message","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1360,"kind":2048,"name":"next","url":"classes/deliverycontext.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1361,"kind":2048,"name":"send","url":"classes/deliverycontext.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1362,"kind":2048,"name":"body","url":"classes/deliverycontext.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeliveryContext"},{"id":1363,"kind":128,"name":"DnsClient","url":"classes/dnsclient.html","classes":"tsd-kind-class"},{"id":1364,"kind":2048,"name":"lookup","url":"classes/dnsclient.html#lookup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1365,"kind":2048,"name":"lookup4","url":"classes/dnsclient.html#lookup4","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1366,"kind":2048,"name":"lookup6","url":"classes/dnsclient.html#lookup6","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1367,"kind":2048,"name":"resolveA","url":"classes/dnsclient.html#resolvea","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1368,"kind":2048,"name":"resolveAAAA","url":"classes/dnsclient.html#resolveaaaa","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1369,"kind":2048,"name":"resolveCNAME","url":"classes/dnsclient.html#resolvecname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1370,"kind":2048,"name":"resolveMX","url":"classes/dnsclient.html#resolvemx","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1371,"kind":2048,"name":"resolveTXT","url":"classes/dnsclient.html#resolvetxt","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1372,"kind":2048,"name":"resolvePTR","url":"classes/dnsclient.html#resolveptr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1373,"kind":2048,"name":"resolveNS","url":"classes/dnsclient.html#resolvens","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1374,"kind":2048,"name":"resolveSRV","url":"classes/dnsclient.html#resolvesrv","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1375,"kind":2048,"name":"reverseLookup","url":"classes/dnsclient.html#reverselookup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DnsClient"},{"id":1376,"kind":128,"name":"EventBus","url":"classes/eventbus.html","classes":"tsd-kind-class"},{"id":1377,"kind":2048,"name":"isMetricsEnabled","url":"classes/eventbus.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1378,"kind":2048,"name":"send","url":"classes/eventbus.html#send","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1379,"kind":2048,"name":"request","url":"classes/eventbus.html#request","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1380,"kind":2048,"name":"publish","url":"classes/eventbus.html#publish","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1381,"kind":2048,"name":"consumer","url":"classes/eventbus.html#consumer","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1382,"kind":2048,"name":"localConsumer","url":"classes/eventbus.html#localconsumer","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1383,"kind":2048,"name":"sender","url":"classes/eventbus.html#sender","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1384,"kind":2048,"name":"publisher","url":"classes/eventbus.html#publisher","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1385,"kind":2048,"name":"addOutboundInterceptor","url":"classes/eventbus.html#addoutboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1386,"kind":2048,"name":"removeOutboundInterceptor","url":"classes/eventbus.html#removeoutboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1387,"kind":2048,"name":"addInboundInterceptor","url":"classes/eventbus.html#addinboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1388,"kind":2048,"name":"removeInboundInterceptor","url":"classes/eventbus.html#removeinboundinterceptor","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"EventBus"},{"id":1389,"kind":2048,"name":"registerCodec","url":"classes/eventbus.html#registercodec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1390,"kind":2048,"name":"unregisterCodec","url":"classes/eventbus.html#unregistercodec","classes":"tsd-kind-method tsd-parent-kind-class","parent":"EventBus"},{"id":1391,"kind":128,"name":"FileProps","url":"classes/fileprops.html","classes":"tsd-kind-class"},{"id":1392,"kind":2048,"name":"creationTime","url":"classes/fileprops.html#creationtime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1393,"kind":2048,"name":"lastAccessTime","url":"classes/fileprops.html#lastaccesstime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1394,"kind":2048,"name":"lastModifiedTime","url":"classes/fileprops.html#lastmodifiedtime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1395,"kind":2048,"name":"isDirectory","url":"classes/fileprops.html#isdirectory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1396,"kind":2048,"name":"isOther","url":"classes/fileprops.html#isother","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1397,"kind":2048,"name":"isRegularFile","url":"classes/fileprops.html#isregularfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1398,"kind":2048,"name":"isSymbolicLink","url":"classes/fileprops.html#issymboliclink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1399,"kind":2048,"name":"size","url":"classes/fileprops.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileProps"},{"id":1400,"kind":128,"name":"FileSystem","url":"classes/filesystem.html","classes":"tsd-kind-class"},{"id":1401,"kind":2048,"name":"copy","url":"classes/filesystem.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1402,"kind":2048,"name":"copyBlocking","url":"classes/filesystem.html#copyblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1403,"kind":2048,"name":"copyRecursive","url":"classes/filesystem.html#copyrecursive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1404,"kind":2048,"name":"copyRecursiveBlocking","url":"classes/filesystem.html#copyrecursiveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1405,"kind":2048,"name":"move","url":"classes/filesystem.html#move","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1406,"kind":2048,"name":"moveBlocking","url":"classes/filesystem.html#moveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1407,"kind":2048,"name":"truncate","url":"classes/filesystem.html#truncate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1408,"kind":2048,"name":"truncateBlocking","url":"classes/filesystem.html#truncateblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1409,"kind":2048,"name":"chmod","url":"classes/filesystem.html#chmod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1410,"kind":2048,"name":"chmodBlocking","url":"classes/filesystem.html#chmodblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1411,"kind":2048,"name":"chmodRecursive","url":"classes/filesystem.html#chmodrecursive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1412,"kind":2048,"name":"chmodRecursiveBlocking","url":"classes/filesystem.html#chmodrecursiveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1413,"kind":2048,"name":"chown","url":"classes/filesystem.html#chown","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1414,"kind":2048,"name":"chownBlocking","url":"classes/filesystem.html#chownblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1415,"kind":2048,"name":"props","url":"classes/filesystem.html#props","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1416,"kind":2048,"name":"propsBlocking","url":"classes/filesystem.html#propsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1417,"kind":2048,"name":"lprops","url":"classes/filesystem.html#lprops","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1418,"kind":2048,"name":"lpropsBlocking","url":"classes/filesystem.html#lpropsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1419,"kind":2048,"name":"link","url":"classes/filesystem.html#link","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1420,"kind":2048,"name":"linkBlocking","url":"classes/filesystem.html#linkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1421,"kind":2048,"name":"symlink","url":"classes/filesystem.html#symlink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1422,"kind":2048,"name":"symlinkBlocking","url":"classes/filesystem.html#symlinkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1423,"kind":2048,"name":"unlink","url":"classes/filesystem.html#unlink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1424,"kind":2048,"name":"unlinkBlocking","url":"classes/filesystem.html#unlinkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1425,"kind":2048,"name":"readSymlink","url":"classes/filesystem.html#readsymlink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1426,"kind":2048,"name":"readSymlinkBlocking","url":"classes/filesystem.html#readsymlinkblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1427,"kind":2048,"name":"delete","url":"classes/filesystem.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1428,"kind":2048,"name":"deleteBlocking","url":"classes/filesystem.html#deleteblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1429,"kind":2048,"name":"deleteRecursive","url":"classes/filesystem.html#deleterecursive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1430,"kind":2048,"name":"deleteRecursiveBlocking","url":"classes/filesystem.html#deleterecursiveblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1431,"kind":2048,"name":"mkdir","url":"classes/filesystem.html#mkdir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1432,"kind":2048,"name":"mkdirBlocking","url":"classes/filesystem.html#mkdirblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1433,"kind":2048,"name":"mkdirs","url":"classes/filesystem.html#mkdirs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1434,"kind":2048,"name":"mkdirsBlocking","url":"classes/filesystem.html#mkdirsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1435,"kind":2048,"name":"readDir","url":"classes/filesystem.html#readdir","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1436,"kind":2048,"name":"readDirBlocking","url":"classes/filesystem.html#readdirblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1437,"kind":2048,"name":"readFile","url":"classes/filesystem.html#readfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1438,"kind":2048,"name":"readFileBlocking","url":"classes/filesystem.html#readfileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1439,"kind":2048,"name":"writeFile","url":"classes/filesystem.html#writefile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1440,"kind":2048,"name":"writeFileBlocking","url":"classes/filesystem.html#writefileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1441,"kind":2048,"name":"open","url":"classes/filesystem.html#open","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1442,"kind":2048,"name":"openBlocking","url":"classes/filesystem.html#openblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1443,"kind":2048,"name":"createFile","url":"classes/filesystem.html#createfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1444,"kind":2048,"name":"createFileBlocking","url":"classes/filesystem.html#createfileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1445,"kind":2048,"name":"exists","url":"classes/filesystem.html#exists","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1446,"kind":2048,"name":"existsBlocking","url":"classes/filesystem.html#existsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1447,"kind":2048,"name":"fsProps","url":"classes/filesystem.html#fsprops","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1448,"kind":2048,"name":"fsPropsBlocking","url":"classes/filesystem.html#fspropsblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1449,"kind":2048,"name":"createTempDirectory","url":"classes/filesystem.html#createtempdirectory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1450,"kind":2048,"name":"createTempDirectoryBlocking","url":"classes/filesystem.html#createtempdirectoryblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1451,"kind":2048,"name":"createTempFile","url":"classes/filesystem.html#createtempfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1452,"kind":2048,"name":"createTempFileBlocking","url":"classes/filesystem.html#createtempfileblocking","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystem"},{"id":1453,"kind":128,"name":"FileSystemProps","url":"classes/filesystemprops.html","classes":"tsd-kind-class"},{"id":1454,"kind":2048,"name":"totalSpace","url":"classes/filesystemprops.html#totalspace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemProps"},{"id":1455,"kind":2048,"name":"unallocatedSpace","url":"classes/filesystemprops.html#unallocatedspace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemProps"},{"id":1456,"kind":2048,"name":"usableSpace","url":"classes/filesystemprops.html#usablespace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FileSystemProps"},{"id":1457,"kind":128,"name":"Future","url":"classes/future.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1458,"kind":2048,"name":"future","url":"classes/future.html#future-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Future"},{"id":1459,"kind":2048,"name":"succeededFuture","url":"classes/future.html#succeededfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Future"},{"id":1460,"kind":2048,"name":"failedFuture","url":"classes/future.html#failedfuture","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Future"},{"id":1461,"kind":2048,"name":"isComplete","url":"classes/future.html#iscomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1462,"kind":2048,"name":"setHandler","url":"classes/future.html#sethandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1463,"kind":2048,"name":"onComplete","url":"classes/future.html#oncomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1464,"kind":2048,"name":"onSuccess","url":"classes/future.html#onsuccess","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1465,"kind":2048,"name":"onFailure","url":"classes/future.html#onfailure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1466,"kind":2048,"name":"complete","url":"classes/future.html#complete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1467,"kind":2048,"name":"fail","url":"classes/future.html#fail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1468,"kind":2048,"name":"tryComplete","url":"classes/future.html#trycomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1469,"kind":2048,"name":"tryFail","url":"classes/future.html#tryfail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1470,"kind":2048,"name":"result","url":"classes/future.html#result","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1471,"kind":2048,"name":"cause","url":"classes/future.html#cause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1472,"kind":2048,"name":"succeeded","url":"classes/future.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1473,"kind":2048,"name":"failed","url":"classes/future.html#failed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1474,"kind":2048,"name":"flatMap","url":"classes/future.html#flatmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1475,"kind":2048,"name":"compose","url":"classes/future.html#compose","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1476,"kind":2048,"name":"map","url":"classes/future.html#map","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1477,"kind":2048,"name":"mapEmpty","url":"classes/future.html#mapempty","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1478,"kind":2048,"name":"completer","url":"classes/future.html#completer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1479,"kind":2048,"name":"recover","url":"classes/future.html#recover","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1480,"kind":2048,"name":"otherwise","url":"classes/future.html#otherwise","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1481,"kind":2048,"name":"otherwiseEmpty","url":"classes/future.html#otherwiseempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Future"},{"id":1482,"kind":2048,"name":"then","url":"classes/future.html#then","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Future"},{"id":1483,"kind":128,"name":"HttpClient","url":"classes/httpclient.html","classes":"tsd-kind-class"},{"id":1484,"kind":2048,"name":"isMetricsEnabled","url":"classes/httpclient.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1485,"kind":2048,"name":"request","url":"classes/httpclient.html#request","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1486,"kind":2048,"name":"requestAbs","url":"classes/httpclient.html#requestabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1487,"kind":2048,"name":"get","url":"classes/httpclient.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1488,"kind":2048,"name":"getAbs","url":"classes/httpclient.html#getabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1489,"kind":2048,"name":"getNow","url":"classes/httpclient.html#getnow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1490,"kind":2048,"name":"post","url":"classes/httpclient.html#post","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1491,"kind":2048,"name":"postAbs","url":"classes/httpclient.html#postabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1492,"kind":2048,"name":"head","url":"classes/httpclient.html#head","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1493,"kind":2048,"name":"headAbs","url":"classes/httpclient.html#headabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1494,"kind":2048,"name":"headNow","url":"classes/httpclient.html#headnow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1495,"kind":2048,"name":"options","url":"classes/httpclient.html#options","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1496,"kind":2048,"name":"optionsAbs","url":"classes/httpclient.html#optionsabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1497,"kind":2048,"name":"optionsNow","url":"classes/httpclient.html#optionsnow","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1498,"kind":2048,"name":"put","url":"classes/httpclient.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1499,"kind":2048,"name":"putAbs","url":"classes/httpclient.html#putabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1500,"kind":2048,"name":"delete","url":"classes/httpclient.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1501,"kind":2048,"name":"deleteAbs","url":"classes/httpclient.html#deleteabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1502,"kind":2048,"name":"websocket","url":"classes/httpclient.html#websocket-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1503,"kind":2048,"name":"websocketAbs","url":"classes/httpclient.html#websocketabs-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1504,"kind":2048,"name":"webSocket","url":"classes/httpclient.html#websocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1505,"kind":2048,"name":"webSocketAbs","url":"classes/httpclient.html#websocketabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1506,"kind":2048,"name":"websocketStream","url":"classes/httpclient.html#websocketstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1507,"kind":2048,"name":"websocketStreamAbs","url":"classes/httpclient.html#websocketstreamabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1508,"kind":2048,"name":"connectionHandler","url":"classes/httpclient.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1509,"kind":2048,"name":"redirectHandler","url":"classes/httpclient.html#redirecthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1510,"kind":2048,"name":"close","url":"classes/httpclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClient"},{"id":1511,"kind":128,"name":"HttpClientRequest","url":"classes/httpclientrequest.html","classes":"tsd-kind-class"},{"id":1512,"kind":2048,"name":"writeQueueFull","url":"classes/httpclientrequest.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1513,"kind":2048,"name":"pipe","url":"classes/httpclientrequest.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1514,"kind":2048,"name":"pipeTo","url":"classes/httpclientrequest.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1515,"kind":2048,"name":"exceptionHandler","url":"classes/httpclientrequest.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1516,"kind":2048,"name":"write","url":"classes/httpclientrequest.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1517,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/httpclientrequest.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1518,"kind":2048,"name":"drainHandler","url":"classes/httpclientrequest.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1519,"kind":2048,"name":"handler","url":"classes/httpclientrequest.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1520,"kind":2048,"name":"pause","url":"classes/httpclientrequest.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1521,"kind":2048,"name":"resume","url":"classes/httpclientrequest.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1522,"kind":2048,"name":"fetch","url":"classes/httpclientrequest.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1523,"kind":2048,"name":"endHandler","url":"classes/httpclientrequest.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1524,"kind":2048,"name":"setFollowRedirects","url":"classes/httpclientrequest.html#setfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1525,"kind":2048,"name":"setMaxRedirects","url":"classes/httpclientrequest.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1526,"kind":2048,"name":"setChunked","url":"classes/httpclientrequest.html#setchunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1527,"kind":2048,"name":"isChunked","url":"classes/httpclientrequest.html#ischunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1528,"kind":2048,"name":"method","url":"classes/httpclientrequest.html#method","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1529,"kind":2048,"name":"getRawMethod","url":"classes/httpclientrequest.html#getrawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1530,"kind":2048,"name":"setRawMethod","url":"classes/httpclientrequest.html#setrawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1531,"kind":2048,"name":"absoluteURI","url":"classes/httpclientrequest.html#absoluteuri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1532,"kind":2048,"name":"uri","url":"classes/httpclientrequest.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1533,"kind":2048,"name":"path","url":"classes/httpclientrequest.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1534,"kind":2048,"name":"query","url":"classes/httpclientrequest.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1535,"kind":2048,"name":"setHost","url":"classes/httpclientrequest.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1536,"kind":2048,"name":"getHost","url":"classes/httpclientrequest.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1537,"kind":2048,"name":"headers","url":"classes/httpclientrequest.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1538,"kind":2048,"name":"putHeader","url":"classes/httpclientrequest.html#putheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1539,"kind":2048,"name":"continueHandler","url":"classes/httpclientrequest.html#continuehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1540,"kind":2048,"name":"sendHead","url":"classes/httpclientrequest.html#sendhead","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1541,"kind":2048,"name":"end","url":"classes/httpclientrequest.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1542,"kind":2048,"name":"setTimeout","url":"classes/httpclientrequest.html#settimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1543,"kind":2048,"name":"pushHandler","url":"classes/httpclientrequest.html#pushhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1544,"kind":2048,"name":"reset","url":"classes/httpclientrequest.html#reset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1545,"kind":2048,"name":"connection","url":"classes/httpclientrequest.html#connection","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1546,"kind":2048,"name":"connectionHandler","url":"classes/httpclientrequest.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1547,"kind":2048,"name":"writeCustomFrame","url":"classes/httpclientrequest.html#writecustomframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1548,"kind":2048,"name":"streamId","url":"classes/httpclientrequest.html#streamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1549,"kind":2048,"name":"setStreamPriority","url":"classes/httpclientrequest.html#setstreampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1550,"kind":2048,"name":"getStreamPriority","url":"classes/httpclientrequest.html#getstreampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientRequest"},{"id":1551,"kind":128,"name":"HttpClientResponse","url":"classes/httpclientresponse.html","classes":"tsd-kind-class"},{"id":1552,"kind":2048,"name":"pipe","url":"classes/httpclientresponse.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1553,"kind":2048,"name":"pipeTo","url":"classes/httpclientresponse.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1554,"kind":2048,"name":"fetch","url":"classes/httpclientresponse.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1555,"kind":2048,"name":"resume","url":"classes/httpclientresponse.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1556,"kind":2048,"name":"exceptionHandler","url":"classes/httpclientresponse.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1557,"kind":2048,"name":"handler","url":"classes/httpclientresponse.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1558,"kind":2048,"name":"pause","url":"classes/httpclientresponse.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1559,"kind":2048,"name":"endHandler","url":"classes/httpclientresponse.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1560,"kind":2048,"name":"version","url":"classes/httpclientresponse.html#version","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1561,"kind":2048,"name":"statusCode","url":"classes/httpclientresponse.html#statuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1562,"kind":2048,"name":"statusMessage","url":"classes/httpclientresponse.html#statusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1563,"kind":2048,"name":"headers","url":"classes/httpclientresponse.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1564,"kind":2048,"name":"getHeader","url":"classes/httpclientresponse.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1565,"kind":2048,"name":"getTrailer","url":"classes/httpclientresponse.html#gettrailer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1566,"kind":2048,"name":"trailers","url":"classes/httpclientresponse.html#trailers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1567,"kind":2048,"name":"cookies","url":"classes/httpclientresponse.html#cookies","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1568,"kind":2048,"name":"bodyHandler","url":"classes/httpclientresponse.html#bodyhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1569,"kind":2048,"name":"customFrameHandler","url":"classes/httpclientresponse.html#customframehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1570,"kind":2048,"name":"netSocket","url":"classes/httpclientresponse.html#netsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1571,"kind":2048,"name":"request","url":"classes/httpclientresponse.html#request","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1572,"kind":2048,"name":"streamPriorityHandler","url":"classes/httpclientresponse.html#streampriorityhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpClientResponse"},{"id":1573,"kind":128,"name":"HttpConnection","url":"classes/httpconnection.html","classes":"tsd-kind-class"},{"id":1574,"kind":2048,"name":"getWindowSize","url":"classes/httpconnection.html#getwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1575,"kind":2048,"name":"setWindowSize","url":"classes/httpconnection.html#setwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1576,"kind":2048,"name":"goAway","url":"classes/httpconnection.html#goaway","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1577,"kind":2048,"name":"goAwayHandler","url":"classes/httpconnection.html#goawayhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1578,"kind":2048,"name":"shutdownHandler","url":"classes/httpconnection.html#shutdownhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1579,"kind":2048,"name":"shutdown","url":"classes/httpconnection.html#shutdown","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1580,"kind":2048,"name":"closeHandler","url":"classes/httpconnection.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1581,"kind":2048,"name":"close","url":"classes/httpconnection.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1582,"kind":2048,"name":"settings","url":"classes/httpconnection.html#settings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1583,"kind":2048,"name":"updateSettings","url":"classes/httpconnection.html#updatesettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1584,"kind":2048,"name":"remoteSettings","url":"classes/httpconnection.html#remotesettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1585,"kind":2048,"name":"remoteSettingsHandler","url":"classes/httpconnection.html#remotesettingshandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1586,"kind":2048,"name":"ping","url":"classes/httpconnection.html#ping","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1587,"kind":2048,"name":"pingHandler","url":"classes/httpconnection.html#pinghandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1588,"kind":2048,"name":"exceptionHandler","url":"classes/httpconnection.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1589,"kind":2048,"name":"remoteAddress","url":"classes/httpconnection.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1590,"kind":2048,"name":"localAddress","url":"classes/httpconnection.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1591,"kind":2048,"name":"isSsl","url":"classes/httpconnection.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1592,"kind":2048,"name":"indicatedServerName","url":"classes/httpconnection.html#indicatedservername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1593,"kind":2048,"name":"sslSession","url":"classes/httpconnection.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpConnection"},{"id":1594,"kind":128,"name":"HttpFrame","url":"classes/httpframe.html","classes":"tsd-kind-class"},{"id":1595,"kind":2048,"name":"type","url":"classes/httpframe.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpFrame"},{"id":1596,"kind":2048,"name":"flags","url":"classes/httpframe.html#flags","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpFrame"},{"id":1597,"kind":2048,"name":"payload","url":"classes/httpframe.html#payload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpFrame"},{"id":1598,"kind":128,"name":"HttpServer","url":"classes/httpserver.html","classes":"tsd-kind-class"},{"id":1599,"kind":2048,"name":"isMetricsEnabled","url":"classes/httpserver.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1600,"kind":2048,"name":"requestStream","url":"classes/httpserver.html#requeststream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1601,"kind":2048,"name":"requestHandler","url":"classes/httpserver.html#requesthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1602,"kind":2048,"name":"connectionHandler","url":"classes/httpserver.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1603,"kind":2048,"name":"exceptionHandler","url":"classes/httpserver.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1604,"kind":2048,"name":"websocketStream","url":"classes/httpserver.html#websocketstream-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1605,"kind":2048,"name":"webSocketStream","url":"classes/httpserver.html#websocketstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1606,"kind":2048,"name":"websocketHandler","url":"classes/httpserver.html#websockethandler-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1607,"kind":2048,"name":"webSocketHandler","url":"classes/httpserver.html#websockethandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1608,"kind":2048,"name":"listen","url":"classes/httpserver.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1609,"kind":2048,"name":"close","url":"classes/httpserver.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1610,"kind":2048,"name":"actualPort","url":"classes/httpserver.html#actualport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServer"},{"id":1611,"kind":128,"name":"HttpServerFileUpload","url":"classes/httpserverfileupload.html","classes":"tsd-kind-class"},{"id":1612,"kind":2048,"name":"pipe","url":"classes/httpserverfileupload.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1613,"kind":2048,"name":"pipeTo","url":"classes/httpserverfileupload.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1614,"kind":2048,"name":"exceptionHandler","url":"classes/httpserverfileupload.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1615,"kind":2048,"name":"handler","url":"classes/httpserverfileupload.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1616,"kind":2048,"name":"endHandler","url":"classes/httpserverfileupload.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1617,"kind":2048,"name":"pause","url":"classes/httpserverfileupload.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1618,"kind":2048,"name":"resume","url":"classes/httpserverfileupload.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1619,"kind":2048,"name":"fetch","url":"classes/httpserverfileupload.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1620,"kind":2048,"name":"streamToFileSystem","url":"classes/httpserverfileupload.html#streamtofilesystem","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1621,"kind":2048,"name":"filename","url":"classes/httpserverfileupload.html#filename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1622,"kind":2048,"name":"name","url":"classes/httpserverfileupload.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1623,"kind":2048,"name":"contentType","url":"classes/httpserverfileupload.html#contenttype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1624,"kind":2048,"name":"contentTransferEncoding","url":"classes/httpserverfileupload.html#contenttransferencoding","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1625,"kind":2048,"name":"charset","url":"classes/httpserverfileupload.html#charset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1626,"kind":2048,"name":"size","url":"classes/httpserverfileupload.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1627,"kind":2048,"name":"isSizeAvailable","url":"classes/httpserverfileupload.html#issizeavailable","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1628,"kind":2048,"name":"file","url":"classes/httpserverfileupload.html#file","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerFileUpload"},{"id":1629,"kind":128,"name":"HttpServerRequest","url":"classes/httpserverrequest.html","classes":"tsd-kind-class"},{"id":1630,"kind":2048,"name":"pipe","url":"classes/httpserverrequest.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1631,"kind":2048,"name":"pipeTo","url":"classes/httpserverrequest.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1632,"kind":2048,"name":"exceptionHandler","url":"classes/httpserverrequest.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1633,"kind":2048,"name":"handler","url":"classes/httpserverrequest.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1634,"kind":2048,"name":"pause","url":"classes/httpserverrequest.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1635,"kind":2048,"name":"resume","url":"classes/httpserverrequest.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1636,"kind":2048,"name":"fetch","url":"classes/httpserverrequest.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1637,"kind":2048,"name":"endHandler","url":"classes/httpserverrequest.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1638,"kind":2048,"name":"version","url":"classes/httpserverrequest.html#version","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1639,"kind":2048,"name":"method","url":"classes/httpserverrequest.html#method","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1640,"kind":2048,"name":"rawMethod","url":"classes/httpserverrequest.html#rawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1641,"kind":2048,"name":"isSSL","url":"classes/httpserverrequest.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1642,"kind":2048,"name":"scheme","url":"classes/httpserverrequest.html#scheme","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1643,"kind":2048,"name":"uri","url":"classes/httpserverrequest.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1644,"kind":2048,"name":"path","url":"classes/httpserverrequest.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1645,"kind":2048,"name":"query","url":"classes/httpserverrequest.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1646,"kind":2048,"name":"host","url":"classes/httpserverrequest.html#host","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1647,"kind":2048,"name":"bytesRead","url":"classes/httpserverrequest.html#bytesread","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1648,"kind":2048,"name":"response","url":"classes/httpserverrequest.html#response","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1649,"kind":2048,"name":"headers","url":"classes/httpserverrequest.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1650,"kind":2048,"name":"getHeader","url":"classes/httpserverrequest.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1651,"kind":2048,"name":"params","url":"classes/httpserverrequest.html#params","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1652,"kind":2048,"name":"getParam","url":"classes/httpserverrequest.html#getparam","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1653,"kind":2048,"name":"remoteAddress","url":"classes/httpserverrequest.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1654,"kind":2048,"name":"localAddress","url":"classes/httpserverrequest.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1655,"kind":2048,"name":"absoluteURI","url":"classes/httpserverrequest.html#absoluteuri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1656,"kind":2048,"name":"bodyHandler","url":"classes/httpserverrequest.html#bodyhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1657,"kind":2048,"name":"netSocket","url":"classes/httpserverrequest.html#netsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1658,"kind":2048,"name":"toNetSocket","url":"classes/httpserverrequest.html#tonetsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1659,"kind":2048,"name":"setExpectMultipart","url":"classes/httpserverrequest.html#setexpectmultipart","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1660,"kind":2048,"name":"isExpectMultipart","url":"classes/httpserverrequest.html#isexpectmultipart","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1661,"kind":2048,"name":"uploadHandler","url":"classes/httpserverrequest.html#uploadhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1662,"kind":2048,"name":"formAttributes","url":"classes/httpserverrequest.html#formattributes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1663,"kind":2048,"name":"getFormAttribute","url":"classes/httpserverrequest.html#getformattribute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1664,"kind":2048,"name":"upgrade","url":"classes/httpserverrequest.html#upgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1665,"kind":2048,"name":"toWebSocket","url":"classes/httpserverrequest.html#towebsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1666,"kind":2048,"name":"isEnded","url":"classes/httpserverrequest.html#isended","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1667,"kind":2048,"name":"customFrameHandler","url":"classes/httpserverrequest.html#customframehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1668,"kind":2048,"name":"connection","url":"classes/httpserverrequest.html#connection","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1669,"kind":2048,"name":"streamPriority","url":"classes/httpserverrequest.html#streampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1670,"kind":2048,"name":"streamPriorityHandler","url":"classes/httpserverrequest.html#streampriorityhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1671,"kind":2048,"name":"getCookie","url":"classes/httpserverrequest.html#getcookie","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1672,"kind":2048,"name":"cookieCount","url":"classes/httpserverrequest.html#cookiecount","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1673,"kind":2048,"name":"sslSession","url":"classes/httpserverrequest.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerRequest"},{"id":1674,"kind":128,"name":"HttpServerResponse","url":"classes/httpserverresponse.html","classes":"tsd-kind-class"},{"id":1675,"kind":2048,"name":"end","url":"classes/httpserverresponse.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1676,"kind":2048,"name":"writeQueueFull","url":"classes/httpserverresponse.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1677,"kind":2048,"name":"exceptionHandler","url":"classes/httpserverresponse.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1678,"kind":2048,"name":"write","url":"classes/httpserverresponse.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1679,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/httpserverresponse.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1680,"kind":2048,"name":"drainHandler","url":"classes/httpserverresponse.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1681,"kind":2048,"name":"getStatusCode","url":"classes/httpserverresponse.html#getstatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1682,"kind":2048,"name":"setStatusCode","url":"classes/httpserverresponse.html#setstatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1683,"kind":2048,"name":"getStatusMessage","url":"classes/httpserverresponse.html#getstatusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1684,"kind":2048,"name":"setStatusMessage","url":"classes/httpserverresponse.html#setstatusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1685,"kind":2048,"name":"setChunked","url":"classes/httpserverresponse.html#setchunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1686,"kind":2048,"name":"isChunked","url":"classes/httpserverresponse.html#ischunked","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1687,"kind":2048,"name":"headers","url":"classes/httpserverresponse.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1688,"kind":2048,"name":"putHeader","url":"classes/httpserverresponse.html#putheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1689,"kind":2048,"name":"trailers","url":"classes/httpserverresponse.html#trailers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1690,"kind":2048,"name":"putTrailer","url":"classes/httpserverresponse.html#puttrailer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1691,"kind":2048,"name":"closeHandler","url":"classes/httpserverresponse.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1692,"kind":2048,"name":"endHandler","url":"classes/httpserverresponse.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1693,"kind":2048,"name":"writeContinue","url":"classes/httpserverresponse.html#writecontinue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1694,"kind":2048,"name":"sendFile","url":"classes/httpserverresponse.html#sendfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1695,"kind":2048,"name":"close","url":"classes/httpserverresponse.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1696,"kind":2048,"name":"ended","url":"classes/httpserverresponse.html#ended","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1697,"kind":2048,"name":"closed","url":"classes/httpserverresponse.html#closed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1698,"kind":2048,"name":"headWritten","url":"classes/httpserverresponse.html#headwritten","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1699,"kind":2048,"name":"headersEndHandler","url":"classes/httpserverresponse.html#headersendhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1700,"kind":2048,"name":"bodyEndHandler","url":"classes/httpserverresponse.html#bodyendhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1701,"kind":2048,"name":"bytesWritten","url":"classes/httpserverresponse.html#byteswritten","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1702,"kind":2048,"name":"streamId","url":"classes/httpserverresponse.html#streamid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1703,"kind":2048,"name":"push","url":"classes/httpserverresponse.html#push","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1704,"kind":2048,"name":"reset","url":"classes/httpserverresponse.html#reset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1705,"kind":2048,"name":"writeCustomFrame","url":"classes/httpserverresponse.html#writecustomframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1706,"kind":2048,"name":"setStreamPriority","url":"classes/httpserverresponse.html#setstreampriority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1707,"kind":2048,"name":"addCookie","url":"classes/httpserverresponse.html#addcookie","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1708,"kind":2048,"name":"removeCookie","url":"classes/httpserverresponse.html#removecookie","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpServerResponse"},{"id":1709,"kind":128,"name":"JsonEvent","url":"classes/jsonevent.html","classes":"tsd-kind-class"},{"id":1710,"kind":2048,"name":"type","url":"classes/jsonevent.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1711,"kind":2048,"name":"fieldName","url":"classes/jsonevent.html#fieldname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1712,"kind":2048,"name":"value","url":"classes/jsonevent.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1713,"kind":2048,"name":"isNumber","url":"classes/jsonevent.html#isnumber","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1714,"kind":2048,"name":"integerValue","url":"classes/jsonevent.html#integervalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1715,"kind":2048,"name":"longValue","url":"classes/jsonevent.html#longvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1716,"kind":2048,"name":"floatValue","url":"classes/jsonevent.html#floatvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1717,"kind":2048,"name":"doubleValue","url":"classes/jsonevent.html#doublevalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1718,"kind":2048,"name":"isBoolean","url":"classes/jsonevent.html#isboolean","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1719,"kind":2048,"name":"booleanValue","url":"classes/jsonevent.html#booleanvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1720,"kind":2048,"name":"isString","url":"classes/jsonevent.html#isstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1721,"kind":2048,"name":"stringValue","url":"classes/jsonevent.html#stringvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1722,"kind":2048,"name":"binaryValue","url":"classes/jsonevent.html#binaryvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1723,"kind":2048,"name":"isNull","url":"classes/jsonevent.html#isnull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1724,"kind":2048,"name":"isObject","url":"classes/jsonevent.html#isobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1725,"kind":2048,"name":"objectValue","url":"classes/jsonevent.html#objectvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1726,"kind":2048,"name":"isArray","url":"classes/jsonevent.html#isarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1727,"kind":2048,"name":"arrayValue","url":"classes/jsonevent.html#arrayvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1728,"kind":2048,"name":"mapTo","url":"classes/jsonevent.html#mapto","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"JsonEvent"},{"id":1729,"kind":2048,"name":"instantValue","url":"classes/jsonevent.html#instantvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonEvent"},{"id":1730,"kind":128,"name":"JsonParser","url":"classes/jsonparser.html","classes":"tsd-kind-class"},{"id":1731,"kind":2048,"name":"handle","url":"classes/jsonparser.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1732,"kind":2048,"name":"pipe","url":"classes/jsonparser.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1733,"kind":2048,"name":"pipeTo","url":"classes/jsonparser.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1734,"kind":2048,"name":"newParser","url":"classes/jsonparser.html#newparser","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonParser"},{"id":1735,"kind":2048,"name":"write","url":"classes/jsonparser.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1736,"kind":2048,"name":"end","url":"classes/jsonparser.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1737,"kind":2048,"name":"objectEventMode","url":"classes/jsonparser.html#objecteventmode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1738,"kind":2048,"name":"objectValueMode","url":"classes/jsonparser.html#objectvaluemode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1739,"kind":2048,"name":"arrayEventMode","url":"classes/jsonparser.html#arrayeventmode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1740,"kind":2048,"name":"arrayValueMode","url":"classes/jsonparser.html#arrayvaluemode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1741,"kind":2048,"name":"pause","url":"classes/jsonparser.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1742,"kind":2048,"name":"resume","url":"classes/jsonparser.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1743,"kind":2048,"name":"fetch","url":"classes/jsonparser.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1744,"kind":2048,"name":"endHandler","url":"classes/jsonparser.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1745,"kind":2048,"name":"handler","url":"classes/jsonparser.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1746,"kind":2048,"name":"exceptionHandler","url":"classes/jsonparser.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonParser"},{"id":1747,"kind":128,"name":"JsonPointer","url":"classes/jsonpointer.html","classes":"tsd-kind-class"},{"id":1748,"kind":2048,"name":"isRootPointer","url":"classes/jsonpointer.html#isrootpointer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1749,"kind":2048,"name":"isLocalPointer","url":"classes/jsonpointer.html#islocalpointer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1750,"kind":2048,"name":"isParent","url":"classes/jsonpointer.html#isparent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1751,"kind":2048,"name":"toString","url":"classes/jsonpointer.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1752,"kind":2048,"name":"append","url":"classes/jsonpointer.html#append","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1753,"kind":2048,"name":"parent","url":"classes/jsonpointer.html#parent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1754,"kind":2048,"name":"query","url":"classes/jsonpointer.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1755,"kind":2048,"name":"queryOrDefault","url":"classes/jsonpointer.html#queryordefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1756,"kind":2048,"name":"queryJson","url":"classes/jsonpointer.html#queryjson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1757,"kind":2048,"name":"queryJsonOrDefault","url":"classes/jsonpointer.html#queryjsonordefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1758,"kind":2048,"name":"tracedQuery","url":"classes/jsonpointer.html#tracedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1759,"kind":2048,"name":"write","url":"classes/jsonpointer.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1760,"kind":2048,"name":"writeJson","url":"classes/jsonpointer.html#writejson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1761,"kind":2048,"name":"copy","url":"classes/jsonpointer.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1762,"kind":2048,"name":"create","url":"classes/jsonpointer.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonPointer"},{"id":1763,"kind":2048,"name":"from","url":"classes/jsonpointer.html#from","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonPointer"},{"id":1764,"kind":2048,"name":"toURI","url":"classes/jsonpointer.html#touri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1765,"kind":2048,"name":"getURIWithoutFragment","url":"classes/jsonpointer.html#geturiwithoutfragment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointer"},{"id":1766,"kind":2048,"name":"fromURI","url":"classes/jsonpointer.html#fromuri","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"JsonPointer"},{"id":1767,"kind":128,"name":"JsonPointerIterator","url":"classes/jsonpointeriterator.html","classes":"tsd-kind-class"},{"id":1768,"kind":1024,"name":"JSON_ITERATOR","url":"classes/jsonpointeriterator.html#json_iterator","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"JsonPointerIterator"},{"id":1769,"kind":2048,"name":"isObject","url":"classes/jsonpointeriterator.html#isobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1770,"kind":2048,"name":"isArray","url":"classes/jsonpointeriterator.html#isarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1771,"kind":2048,"name":"isNull","url":"classes/jsonpointeriterator.html#isnull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1772,"kind":2048,"name":"objectContainsKey","url":"classes/jsonpointeriterator.html#objectcontainskey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1773,"kind":2048,"name":"getObjectParameter","url":"classes/jsonpointeriterator.html#getobjectparameter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1774,"kind":2048,"name":"getArrayElement","url":"classes/jsonpointeriterator.html#getarrayelement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1775,"kind":2048,"name":"writeObjectParameter","url":"classes/jsonpointeriterator.html#writeobjectparameter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1776,"kind":2048,"name":"writeArrayElement","url":"classes/jsonpointeriterator.html#writearrayelement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1777,"kind":2048,"name":"appendArrayElement","url":"classes/jsonpointeriterator.html#appendarrayelement","classes":"tsd-kind-method tsd-parent-kind-class","parent":"JsonPointerIterator"},{"id":1778,"kind":128,"name":"LocalMap","url":"classes/localmap.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1779,"kind":2048,"name":"get","url":"classes/localmap.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1780,"kind":2048,"name":"put","url":"classes/localmap.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1781,"kind":2048,"name":"remove","url":"classes/localmap.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1782,"kind":2048,"name":"clear","url":"classes/localmap.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1783,"kind":2048,"name":"size","url":"classes/localmap.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1784,"kind":2048,"name":"isEmpty","url":"classes/localmap.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1785,"kind":2048,"name":"putIfAbsent","url":"classes/localmap.html#putifabsent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1786,"kind":2048,"name":"removeIfPresent","url":"classes/localmap.html#removeifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1787,"kind":2048,"name":"replaceIfPresent","url":"classes/localmap.html#replaceifpresent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1788,"kind":2048,"name":"replace","url":"classes/localmap.html#replace","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1789,"kind":2048,"name":"close","url":"classes/localmap.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1790,"kind":2048,"name":"containsKey","url":"classes/localmap.html#containskey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1791,"kind":2048,"name":"containsValue","url":"classes/localmap.html#containsvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1792,"kind":2048,"name":"getOrDefault","url":"classes/localmap.html#getordefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"LocalMap"},{"id":1793,"kind":128,"name":"Lock","url":"classes/lock.html","classes":"tsd-kind-class"},{"id":1794,"kind":2048,"name":"release","url":"classes/lock.html#release","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Lock"},{"id":1795,"kind":256,"name":"Measured","url":"interfaces/measured.html","classes":"tsd-kind-interface"},{"id":1796,"kind":2048,"name":"isMetricsEnabled","url":"interfaces/measured.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Measured"},{"id":1797,"kind":128,"name":"Message","url":"classes/message.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1798,"kind":2048,"name":"address","url":"classes/message.html#address","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1799,"kind":2048,"name":"headers","url":"classes/message.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1800,"kind":2048,"name":"body","url":"classes/message.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1801,"kind":2048,"name":"replyAddress","url":"classes/message.html#replyaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1802,"kind":2048,"name":"isSend","url":"classes/message.html#issend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1803,"kind":2048,"name":"reply","url":"classes/message.html#reply","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Message"},{"id":1804,"kind":2048,"name":"replyAndRequest","url":"classes/message.html#replyandrequest","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Message"},{"id":1805,"kind":2048,"name":"fail","url":"classes/message.html#fail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Message"},{"id":1806,"kind":128,"name":"MessageConsumer","url":"classes/messageconsumer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1807,"kind":2048,"name":"pipe","url":"classes/messageconsumer.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1808,"kind":2048,"name":"pipeTo","url":"classes/messageconsumer.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1809,"kind":2048,"name":"exceptionHandler","url":"classes/messageconsumer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1810,"kind":2048,"name":"handler","url":"classes/messageconsumer.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1811,"kind":2048,"name":"pause","url":"classes/messageconsumer.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1812,"kind":2048,"name":"resume","url":"classes/messageconsumer.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1813,"kind":2048,"name":"fetch","url":"classes/messageconsumer.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1814,"kind":2048,"name":"endHandler","url":"classes/messageconsumer.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1815,"kind":2048,"name":"bodyStream","url":"classes/messageconsumer.html#bodystream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1816,"kind":2048,"name":"isRegistered","url":"classes/messageconsumer.html#isregistered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1817,"kind":2048,"name":"address","url":"classes/messageconsumer.html#address","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1818,"kind":2048,"name":"setMaxBufferedMessages","url":"classes/messageconsumer.html#setmaxbufferedmessages","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1819,"kind":2048,"name":"getMaxBufferedMessages","url":"classes/messageconsumer.html#getmaxbufferedmessages","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1820,"kind":2048,"name":"completionHandler","url":"classes/messageconsumer.html#completionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1821,"kind":2048,"name":"unregister","url":"classes/messageconsumer.html#unregister","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageConsumer"},{"id":1822,"kind":128,"name":"MessageProducer","url":"classes/messageproducer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1823,"kind":1024,"name":"DEFAULT_WRITE_QUEUE_MAX_SIZE","url":"classes/messageproducer.html#default_write_queue_max_size","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"MessageProducer"},{"id":1824,"kind":2048,"name":"end","url":"classes/messageproducer.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1825,"kind":2048,"name":"writeQueueFull","url":"classes/messageproducer.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1826,"kind":2048,"name":"send","url":"classes/messageproducer.html#send","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"MessageProducer"},{"id":1827,"kind":2048,"name":"exceptionHandler","url":"classes/messageproducer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1828,"kind":2048,"name":"write","url":"classes/messageproducer.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1829,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/messageproducer.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1830,"kind":2048,"name":"drainHandler","url":"classes/messageproducer.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1831,"kind":2048,"name":"deliveryOptions","url":"classes/messageproducer.html#deliveryoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1832,"kind":2048,"name":"address","url":"classes/messageproducer.html#address","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1833,"kind":2048,"name":"close","url":"classes/messageproducer.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MessageProducer"},{"id":1834,"kind":128,"name":"MultiMap","url":"classes/multimap.html","classes":"tsd-kind-class"},{"id":1835,"kind":2048,"name":"caseInsensitiveMultiMap","url":"classes/multimap.html#caseinsensitivemultimap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MultiMap"},{"id":1836,"kind":2048,"name":"get","url":"classes/multimap.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1837,"kind":2048,"name":"getAll","url":"classes/multimap.html#getall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1838,"kind":2048,"name":"contains","url":"classes/multimap.html#contains","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1839,"kind":2048,"name":"isEmpty","url":"classes/multimap.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1840,"kind":2048,"name":"names","url":"classes/multimap.html#names","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1841,"kind":2048,"name":"add","url":"classes/multimap.html#add","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1842,"kind":2048,"name":"addAll","url":"classes/multimap.html#addall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1843,"kind":2048,"name":"set","url":"classes/multimap.html#set","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1844,"kind":2048,"name":"setAll","url":"classes/multimap.html#setall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1845,"kind":2048,"name":"remove","url":"classes/multimap.html#remove","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1846,"kind":2048,"name":"clear","url":"classes/multimap.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1847,"kind":2048,"name":"size","url":"classes/multimap.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1848,"kind":2048,"name":"entries","url":"classes/multimap.html#entries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultiMap"},{"id":1849,"kind":128,"name":"MxRecord","url":"classes/mxrecord.html","classes":"tsd-kind-class"},{"id":1850,"kind":2048,"name":"priority","url":"classes/mxrecord.html#priority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MxRecord"},{"id":1851,"kind":2048,"name":"name","url":"classes/mxrecord.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MxRecord"},{"id":1852,"kind":128,"name":"NetClient","url":"classes/netclient.html","classes":"tsd-kind-class"},{"id":1853,"kind":2048,"name":"isMetricsEnabled","url":"classes/netclient.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClient"},{"id":1854,"kind":2048,"name":"connect","url":"classes/netclient.html#connect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClient"},{"id":1855,"kind":2048,"name":"close","url":"classes/netclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetClient"},{"id":1856,"kind":128,"name":"NetServer","url":"classes/netserver.html","classes":"tsd-kind-class"},{"id":1857,"kind":2048,"name":"isMetricsEnabled","url":"classes/netserver.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1858,"kind":2048,"name":"connectStream","url":"classes/netserver.html#connectstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1859,"kind":2048,"name":"connectHandler","url":"classes/netserver.html#connecthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1860,"kind":2048,"name":"listen","url":"classes/netserver.html#listen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1861,"kind":2048,"name":"close","url":"classes/netserver.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1862,"kind":2048,"name":"actualPort","url":"classes/netserver.html#actualport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetServer"},{"id":1863,"kind":128,"name":"NetSocket","url":"classes/netsocket.html","classes":"tsd-kind-class"},{"id":1864,"kind":2048,"name":"end","url":"classes/netsocket.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1865,"kind":2048,"name":"writeQueueFull","url":"classes/netsocket.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1866,"kind":2048,"name":"pipe","url":"classes/netsocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1867,"kind":2048,"name":"pipeTo","url":"classes/netsocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1868,"kind":2048,"name":"exceptionHandler","url":"classes/netsocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1869,"kind":2048,"name":"handler","url":"classes/netsocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1870,"kind":2048,"name":"pause","url":"classes/netsocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1871,"kind":2048,"name":"resume","url":"classes/netsocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1872,"kind":2048,"name":"fetch","url":"classes/netsocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1873,"kind":2048,"name":"endHandler","url":"classes/netsocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1874,"kind":2048,"name":"write","url":"classes/netsocket.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1875,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/netsocket.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1876,"kind":2048,"name":"drainHandler","url":"classes/netsocket.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1877,"kind":2048,"name":"writeHandlerID","url":"classes/netsocket.html#writehandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1878,"kind":2048,"name":"sendFile","url":"classes/netsocket.html#sendfile","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1879,"kind":2048,"name":"remoteAddress","url":"classes/netsocket.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1880,"kind":2048,"name":"localAddress","url":"classes/netsocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1881,"kind":2048,"name":"close","url":"classes/netsocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1882,"kind":2048,"name":"closeHandler","url":"classes/netsocket.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1883,"kind":2048,"name":"upgradeToSsl","url":"classes/netsocket.html#upgradetossl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1884,"kind":2048,"name":"isSsl","url":"classes/netsocket.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1885,"kind":2048,"name":"indicatedServerName","url":"classes/netsocket.html#indicatedservername","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1886,"kind":2048,"name":"sslSession","url":"classes/netsocket.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NetSocket"},{"id":1887,"kind":128,"name":"Pipe","url":"classes/pipe.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1888,"kind":2048,"name":"endOnFailure","url":"classes/pipe.html#endonfailure","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1889,"kind":2048,"name":"endOnSuccess","url":"classes/pipe.html#endonsuccess","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1890,"kind":2048,"name":"endOnComplete","url":"classes/pipe.html#endoncomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1891,"kind":2048,"name":"to","url":"classes/pipe.html#to","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1892,"kind":2048,"name":"close","url":"classes/pipe.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pipe"},{"id":1893,"kind":128,"name":"Promise","url":"classes/promise.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1894,"kind":2048,"name":"promise","url":"classes/promise.html#promise-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Promise"},{"id":1895,"kind":2048,"name":"complete","url":"classes/promise.html#complete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1896,"kind":2048,"name":"fail","url":"classes/promise.html#fail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1897,"kind":2048,"name":"tryComplete","url":"classes/promise.html#trycomplete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1898,"kind":2048,"name":"tryFail","url":"classes/promise.html#tryfail","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1899,"kind":2048,"name":"future","url":"classes/promise.html#future","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Promise"},{"id":1900,"kind":128,"name":"Pump","url":"classes/pump.html","classes":"tsd-kind-class"},{"id":1901,"kind":2048,"name":"pump","url":"classes/pump.html#pump-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"Pump"},{"id":1902,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/pump.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1903,"kind":2048,"name":"start","url":"classes/pump.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1904,"kind":2048,"name":"stop","url":"classes/pump.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1905,"kind":2048,"name":"numberPumped","url":"classes/pump.html#numberpumped","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pump"},{"id":1906,"kind":256,"name":"ReadStream","url":"interfaces/readstream.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":1907,"kind":2048,"name":"exceptionHandler","url":"interfaces/readstream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"ReadStream"},{"id":1908,"kind":2048,"name":"handler","url":"interfaces/readstream.html#handler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1909,"kind":2048,"name":"pause","url":"interfaces/readstream.html#pause","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1910,"kind":2048,"name":"resume","url":"interfaces/readstream.html#resume","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1911,"kind":2048,"name":"fetch","url":"interfaces/readstream.html#fetch","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1912,"kind":2048,"name":"endHandler","url":"interfaces/readstream.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1913,"kind":2048,"name":"pipe","url":"interfaces/readstream.html#pipe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1914,"kind":2048,"name":"pipeTo","url":"interfaces/readstream.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"ReadStream"},{"id":1915,"kind":128,"name":"RecordParser","url":"classes/recordparser.html","classes":"tsd-kind-class"},{"id":1916,"kind":2048,"name":"pipe","url":"classes/recordparser.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1917,"kind":2048,"name":"pipeTo","url":"classes/recordparser.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1918,"kind":2048,"name":"setOutput","url":"classes/recordparser.html#setoutput","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1919,"kind":2048,"name":"newDelimited","url":"classes/recordparser.html#newdelimited","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"RecordParser"},{"id":1920,"kind":2048,"name":"newFixed","url":"classes/recordparser.html#newfixed","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"RecordParser"},{"id":1921,"kind":2048,"name":"delimitedMode","url":"classes/recordparser.html#delimitedmode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1922,"kind":2048,"name":"fixedSizeMode","url":"classes/recordparser.html#fixedsizemode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1923,"kind":2048,"name":"maxRecordSize","url":"classes/recordparser.html#maxrecordsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1924,"kind":2048,"name":"handle","url":"classes/recordparser.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1925,"kind":2048,"name":"exceptionHandler","url":"classes/recordparser.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1926,"kind":2048,"name":"handler","url":"classes/recordparser.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1927,"kind":2048,"name":"pause","url":"classes/recordparser.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1928,"kind":2048,"name":"fetch","url":"classes/recordparser.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1929,"kind":2048,"name":"resume","url":"classes/recordparser.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1930,"kind":2048,"name":"endHandler","url":"classes/recordparser.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordParser"},{"id":1931,"kind":128,"name":"SelfSignedCertificate","url":"classes/selfsignedcertificate.html","classes":"tsd-kind-class"},{"id":1932,"kind":2048,"name":"keyCertOptions","url":"classes/selfsignedcertificate.html#keycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1933,"kind":2048,"name":"trustOptions","url":"classes/selfsignedcertificate.html#trustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1934,"kind":2048,"name":"privateKeyPath","url":"classes/selfsignedcertificate.html#privatekeypath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1935,"kind":2048,"name":"certificatePath","url":"classes/selfsignedcertificate.html#certificatepath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1936,"kind":2048,"name":"delete","url":"classes/selfsignedcertificate.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SelfSignedCertificate"},{"id":1937,"kind":2048,"name":"create","url":"classes/selfsignedcertificate.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SelfSignedCertificate"},{"id":1938,"kind":128,"name":"ServerWebSocket","url":"classes/serverwebsocket.html","classes":"tsd-kind-class"},{"id":1939,"kind":2048,"name":"end","url":"classes/serverwebsocket.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1940,"kind":2048,"name":"writeQueueFull","url":"classes/serverwebsocket.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1941,"kind":2048,"name":"pipe","url":"classes/serverwebsocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1942,"kind":2048,"name":"pipeTo","url":"classes/serverwebsocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1943,"kind":2048,"name":"binaryHandlerID","url":"classes/serverwebsocket.html#binaryhandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1944,"kind":2048,"name":"textHandlerID","url":"classes/serverwebsocket.html#texthandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1945,"kind":2048,"name":"subProtocol","url":"classes/serverwebsocket.html#subprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1946,"kind":2048,"name":"closeStatusCode","url":"classes/serverwebsocket.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1947,"kind":2048,"name":"closeReason","url":"classes/serverwebsocket.html#closereason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1948,"kind":2048,"name":"headers","url":"classes/serverwebsocket.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1949,"kind":2048,"name":"writePing","url":"classes/serverwebsocket.html#writeping","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1950,"kind":2048,"name":"writePong","url":"classes/serverwebsocket.html#writepong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1951,"kind":2048,"name":"textMessageHandler","url":"classes/serverwebsocket.html#textmessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1952,"kind":2048,"name":"binaryMessageHandler","url":"classes/serverwebsocket.html#binarymessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1953,"kind":2048,"name":"pongHandler","url":"classes/serverwebsocket.html#ponghandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1954,"kind":2048,"name":"close","url":"classes/serverwebsocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1955,"kind":2048,"name":"remoteAddress","url":"classes/serverwebsocket.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1956,"kind":2048,"name":"localAddress","url":"classes/serverwebsocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1957,"kind":2048,"name":"isSsl","url":"classes/serverwebsocket.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1958,"kind":2048,"name":"isClosed","url":"classes/serverwebsocket.html#isclosed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1959,"kind":2048,"name":"exceptionHandler","url":"classes/serverwebsocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1960,"kind":2048,"name":"handler","url":"classes/serverwebsocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1961,"kind":2048,"name":"pause","url":"classes/serverwebsocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1962,"kind":2048,"name":"resume","url":"classes/serverwebsocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1963,"kind":2048,"name":"fetch","url":"classes/serverwebsocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1964,"kind":2048,"name":"endHandler","url":"classes/serverwebsocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1965,"kind":2048,"name":"write","url":"classes/serverwebsocket.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1966,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/serverwebsocket.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1967,"kind":2048,"name":"drainHandler","url":"classes/serverwebsocket.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1968,"kind":2048,"name":"writeFrame","url":"classes/serverwebsocket.html#writeframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1969,"kind":2048,"name":"writeFinalTextFrame","url":"classes/serverwebsocket.html#writefinaltextframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1970,"kind":2048,"name":"writeFinalBinaryFrame","url":"classes/serverwebsocket.html#writefinalbinaryframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1971,"kind":2048,"name":"writeBinaryMessage","url":"classes/serverwebsocket.html#writebinarymessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1972,"kind":2048,"name":"writeTextMessage","url":"classes/serverwebsocket.html#writetextmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1973,"kind":2048,"name":"closeHandler","url":"classes/serverwebsocket.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1974,"kind":2048,"name":"frameHandler","url":"classes/serverwebsocket.html#framehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1975,"kind":2048,"name":"uri","url":"classes/serverwebsocket.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1976,"kind":2048,"name":"path","url":"classes/serverwebsocket.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1977,"kind":2048,"name":"query","url":"classes/serverwebsocket.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1978,"kind":2048,"name":"accept","url":"classes/serverwebsocket.html#accept","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1979,"kind":2048,"name":"reject","url":"classes/serverwebsocket.html#reject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1980,"kind":2048,"name":"setHandshake","url":"classes/serverwebsocket.html#sethandshake","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1981,"kind":2048,"name":"sslSession","url":"classes/serverwebsocket.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ServerWebSocket"},{"id":1982,"kind":128,"name":"SharedData","url":"classes/shareddata.html","classes":"tsd-kind-class"},{"id":1983,"kind":2048,"name":"getClusterWideMap","url":"classes/shareddata.html#getclusterwidemap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1984,"kind":2048,"name":"getAsyncMap","url":"classes/shareddata.html#getasyncmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1985,"kind":2048,"name":"getLocalAsyncMap","url":"classes/shareddata.html#getlocalasyncmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1986,"kind":2048,"name":"getLock","url":"classes/shareddata.html#getlock","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1987,"kind":2048,"name":"getLockWithTimeout","url":"classes/shareddata.html#getlockwithtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1988,"kind":2048,"name":"getLocalLock","url":"classes/shareddata.html#getlocallock","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1989,"kind":2048,"name":"getLocalLockWithTimeout","url":"classes/shareddata.html#getlocallockwithtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1990,"kind":2048,"name":"getCounter","url":"classes/shareddata.html#getcounter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1991,"kind":2048,"name":"getLocalCounter","url":"classes/shareddata.html#getlocalcounter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SharedData"},{"id":1992,"kind":2048,"name":"getLocalMap","url":"classes/shareddata.html#getlocalmap","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SharedData"},{"id":1993,"kind":128,"name":"SocketAddress","url":"classes/socketaddress.html","classes":"tsd-kind-class"},{"id":1994,"kind":2048,"name":"inetSocketAddress","url":"classes/socketaddress.html#inetsocketaddress","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SocketAddress"},{"id":1995,"kind":2048,"name":"domainSocketAddress","url":"classes/socketaddress.html#domainsocketaddress","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"SocketAddress"},{"id":1996,"kind":2048,"name":"host","url":"classes/socketaddress.html#host","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SocketAddress"},{"id":1997,"kind":2048,"name":"port","url":"classes/socketaddress.html#port","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SocketAddress"},{"id":1998,"kind":2048,"name":"path","url":"classes/socketaddress.html#path","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SocketAddress"},{"id":1999,"kind":128,"name":"SrvRecord","url":"classes/srvrecord.html","classes":"tsd-kind-class"},{"id":2000,"kind":2048,"name":"priority","url":"classes/srvrecord.html#priority","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2001,"kind":2048,"name":"weight","url":"classes/srvrecord.html#weight","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2002,"kind":2048,"name":"port","url":"classes/srvrecord.html#port","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2003,"kind":2048,"name":"name","url":"classes/srvrecord.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2004,"kind":2048,"name":"protocol","url":"classes/srvrecord.html#protocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2005,"kind":2048,"name":"service","url":"classes/srvrecord.html#service","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2006,"kind":2048,"name":"target","url":"classes/srvrecord.html#target","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SrvRecord"},{"id":2007,"kind":256,"name":"StreamBase","url":"interfaces/streambase.html","classes":"tsd-kind-interface"},{"id":2008,"kind":2048,"name":"exceptionHandler","url":"interfaces/streambase.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"StreamBase"},{"id":2009,"kind":128,"name":"TimeoutStream","url":"classes/timeoutstream.html","classes":"tsd-kind-class"},{"id":2010,"kind":2048,"name":"pipe","url":"classes/timeoutstream.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2011,"kind":2048,"name":"pipeTo","url":"classes/timeoutstream.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2012,"kind":2048,"name":"exceptionHandler","url":"classes/timeoutstream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2013,"kind":2048,"name":"handler","url":"classes/timeoutstream.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2014,"kind":2048,"name":"pause","url":"classes/timeoutstream.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2015,"kind":2048,"name":"resume","url":"classes/timeoutstream.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2016,"kind":2048,"name":"fetch","url":"classes/timeoutstream.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2017,"kind":2048,"name":"endHandler","url":"classes/timeoutstream.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2018,"kind":2048,"name":"cancel","url":"classes/timeoutstream.html#cancel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TimeoutStream"},{"id":2019,"kind":128,"name":"Vertx","url":"classes/vertx.html","classes":"tsd-kind-class"},{"id":2020,"kind":2048,"name":"isMetricsEnabled","url":"classes/vertx.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2021,"kind":2048,"name":"vertx","url":"classes/vertx.html#vertx-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Vertx"},{"id":2022,"kind":2048,"name":"clusteredVertx","url":"classes/vertx.html#clusteredvertx","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Vertx"},{"id":2023,"kind":2048,"name":"currentContext","url":"classes/vertx.html#currentcontext","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Vertx"},{"id":2024,"kind":2048,"name":"getOrCreateContext","url":"classes/vertx.html#getorcreatecontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2025,"kind":2048,"name":"createNetServer","url":"classes/vertx.html#createnetserver","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2026,"kind":2048,"name":"createNetClient","url":"classes/vertx.html#createnetclient","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2027,"kind":2048,"name":"createHttpServer","url":"classes/vertx.html#createhttpserver","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2028,"kind":2048,"name":"createHttpClient","url":"classes/vertx.html#createhttpclient","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2029,"kind":2048,"name":"createDatagramSocket","url":"classes/vertx.html#createdatagramsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2030,"kind":2048,"name":"fileSystem","url":"classes/vertx.html#filesystem","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2031,"kind":2048,"name":"eventBus","url":"classes/vertx.html#eventbus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2032,"kind":2048,"name":"createDnsClient","url":"classes/vertx.html#creatednsclient","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2033,"kind":2048,"name":"sharedData","url":"classes/vertx.html#shareddata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2034,"kind":2048,"name":"setTimer","url":"classes/vertx.html#settimer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2035,"kind":2048,"name":"timerStream","url":"classes/vertx.html#timerstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2036,"kind":2048,"name":"setPeriodic","url":"classes/vertx.html#setperiodic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2037,"kind":2048,"name":"periodicStream","url":"classes/vertx.html#periodicstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2038,"kind":2048,"name":"cancelTimer","url":"classes/vertx.html#canceltimer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2039,"kind":2048,"name":"runOnContext","url":"classes/vertx.html#runoncontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2040,"kind":2048,"name":"close","url":"classes/vertx.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2041,"kind":2048,"name":"deployVerticle","url":"classes/vertx.html#deployverticle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2042,"kind":2048,"name":"undeploy","url":"classes/vertx.html#undeploy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2043,"kind":2048,"name":"deploymentIDs","url":"classes/vertx.html#deploymentids","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2044,"kind":2048,"name":"isClustered","url":"classes/vertx.html#isclustered","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2045,"kind":2048,"name":"executeBlocking","url":"classes/vertx.html#executeblocking","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Vertx"},{"id":2046,"kind":2048,"name":"createSharedWorkerExecutor","url":"classes/vertx.html#createsharedworkerexecutor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2047,"kind":2048,"name":"isNativeTransportEnabled","url":"classes/vertx.html#isnativetransportenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2048,"kind":2048,"name":"exceptionHandler","url":"classes/vertx.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2049,"kind":2048,"name":"registerVerticleFactory","url":"classes/vertx.html#registerverticlefactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2050,"kind":2048,"name":"unregisterVerticleFactory","url":"classes/vertx.html#unregisterverticlefactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2051,"kind":2048,"name":"verticleFactories","url":"classes/vertx.html#verticlefactories","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2052,"kind":2048,"name":"nettyEventLoopGroup","url":"classes/vertx.html#nettyeventloopgroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Vertx"},{"id":2053,"kind":128,"name":"WebSocket","url":"classes/websocket.html","classes":"tsd-kind-class"},{"id":2054,"kind":2048,"name":"end","url":"classes/websocket.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2055,"kind":2048,"name":"writeQueueFull","url":"classes/websocket.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2056,"kind":2048,"name":"pipe","url":"classes/websocket.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2057,"kind":2048,"name":"pipeTo","url":"classes/websocket.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2058,"kind":2048,"name":"binaryHandlerID","url":"classes/websocket.html#binaryhandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2059,"kind":2048,"name":"textHandlerID","url":"classes/websocket.html#texthandlerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2060,"kind":2048,"name":"subProtocol","url":"classes/websocket.html#subprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2061,"kind":2048,"name":"closeStatusCode","url":"classes/websocket.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2062,"kind":2048,"name":"closeReason","url":"classes/websocket.html#closereason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2063,"kind":2048,"name":"headers","url":"classes/websocket.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2064,"kind":2048,"name":"writePing","url":"classes/websocket.html#writeping","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2065,"kind":2048,"name":"writePong","url":"classes/websocket.html#writepong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2066,"kind":2048,"name":"textMessageHandler","url":"classes/websocket.html#textmessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2067,"kind":2048,"name":"binaryMessageHandler","url":"classes/websocket.html#binarymessagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2068,"kind":2048,"name":"pongHandler","url":"classes/websocket.html#ponghandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2069,"kind":2048,"name":"close","url":"classes/websocket.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2070,"kind":2048,"name":"remoteAddress","url":"classes/websocket.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2071,"kind":2048,"name":"localAddress","url":"classes/websocket.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2072,"kind":2048,"name":"isSsl","url":"classes/websocket.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2073,"kind":2048,"name":"isClosed","url":"classes/websocket.html#isclosed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2074,"kind":2048,"name":"exceptionHandler","url":"classes/websocket.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2075,"kind":2048,"name":"handler","url":"classes/websocket.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2076,"kind":2048,"name":"pause","url":"classes/websocket.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2077,"kind":2048,"name":"resume","url":"classes/websocket.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2078,"kind":2048,"name":"fetch","url":"classes/websocket.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2079,"kind":2048,"name":"endHandler","url":"classes/websocket.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2080,"kind":2048,"name":"write","url":"classes/websocket.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2081,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/websocket.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2082,"kind":2048,"name":"drainHandler","url":"classes/websocket.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2083,"kind":2048,"name":"writeFrame","url":"classes/websocket.html#writeframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2084,"kind":2048,"name":"writeFinalTextFrame","url":"classes/websocket.html#writefinaltextframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2085,"kind":2048,"name":"writeFinalBinaryFrame","url":"classes/websocket.html#writefinalbinaryframe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2086,"kind":2048,"name":"writeBinaryMessage","url":"classes/websocket.html#writebinarymessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2087,"kind":2048,"name":"writeTextMessage","url":"classes/websocket.html#writetextmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2088,"kind":2048,"name":"closeHandler","url":"classes/websocket.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2089,"kind":2048,"name":"frameHandler","url":"classes/websocket.html#framehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2090,"kind":2048,"name":"sslSession","url":"classes/websocket.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocket"},{"id":2091,"kind":256,"name":"WebSocketBase","url":"interfaces/websocketbase.html","classes":"tsd-kind-interface"},{"id":2092,"kind":2048,"name":"end","url":"interfaces/websocketbase.html#end","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2093,"kind":2048,"name":"writeQueueFull","url":"interfaces/websocketbase.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2094,"kind":2048,"name":"pipe","url":"interfaces/websocketbase.html#pipe","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2095,"kind":2048,"name":"pipeTo","url":"interfaces/websocketbase.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2096,"kind":2048,"name":"exceptionHandler","url":"interfaces/websocketbase.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2097,"kind":2048,"name":"handler","url":"interfaces/websocketbase.html#handler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2098,"kind":2048,"name":"pause","url":"interfaces/websocketbase.html#pause","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2099,"kind":2048,"name":"resume","url":"interfaces/websocketbase.html#resume","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2100,"kind":2048,"name":"fetch","url":"interfaces/websocketbase.html#fetch","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2101,"kind":2048,"name":"endHandler","url":"interfaces/websocketbase.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2102,"kind":2048,"name":"write","url":"interfaces/websocketbase.html#write","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2103,"kind":2048,"name":"setWriteQueueMaxSize","url":"interfaces/websocketbase.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2104,"kind":2048,"name":"drainHandler","url":"interfaces/websocketbase.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WebSocketBase"},{"id":2105,"kind":2048,"name":"binaryHandlerID","url":"interfaces/websocketbase.html#binaryhandlerid","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2106,"kind":2048,"name":"textHandlerID","url":"interfaces/websocketbase.html#texthandlerid","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2107,"kind":2048,"name":"subProtocol","url":"interfaces/websocketbase.html#subprotocol","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2108,"kind":2048,"name":"closeStatusCode","url":"interfaces/websocketbase.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2109,"kind":2048,"name":"closeReason","url":"interfaces/websocketbase.html#closereason","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2110,"kind":2048,"name":"headers","url":"interfaces/websocketbase.html#headers","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2111,"kind":2048,"name":"writeFrame","url":"interfaces/websocketbase.html#writeframe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2112,"kind":2048,"name":"writeFinalTextFrame","url":"interfaces/websocketbase.html#writefinaltextframe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2113,"kind":2048,"name":"writeFinalBinaryFrame","url":"interfaces/websocketbase.html#writefinalbinaryframe","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2114,"kind":2048,"name":"writeBinaryMessage","url":"interfaces/websocketbase.html#writebinarymessage","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2115,"kind":2048,"name":"writeTextMessage","url":"interfaces/websocketbase.html#writetextmessage","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2116,"kind":2048,"name":"writePing","url":"interfaces/websocketbase.html#writeping","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2117,"kind":2048,"name":"writePong","url":"interfaces/websocketbase.html#writepong","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2118,"kind":2048,"name":"closeHandler","url":"interfaces/websocketbase.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2119,"kind":2048,"name":"frameHandler","url":"interfaces/websocketbase.html#framehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2120,"kind":2048,"name":"textMessageHandler","url":"interfaces/websocketbase.html#textmessagehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2121,"kind":2048,"name":"binaryMessageHandler","url":"interfaces/websocketbase.html#binarymessagehandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2122,"kind":2048,"name":"pongHandler","url":"interfaces/websocketbase.html#ponghandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2123,"kind":2048,"name":"close","url":"interfaces/websocketbase.html#close","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2124,"kind":2048,"name":"remoteAddress","url":"interfaces/websocketbase.html#remoteaddress","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2125,"kind":2048,"name":"localAddress","url":"interfaces/websocketbase.html#localaddress","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2126,"kind":2048,"name":"isSsl","url":"interfaces/websocketbase.html#isssl","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2127,"kind":2048,"name":"isClosed","url":"interfaces/websocketbase.html#isclosed","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2128,"kind":2048,"name":"sslSession","url":"interfaces/websocketbase.html#sslsession","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WebSocketBase"},{"id":2129,"kind":128,"name":"WebSocketFrame","url":"classes/websocketframe.html","classes":"tsd-kind-class"},{"id":2130,"kind":2048,"name":"binaryFrame","url":"classes/websocketframe.html#binaryframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2131,"kind":2048,"name":"textFrame","url":"classes/websocketframe.html#textframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2132,"kind":2048,"name":"pingFrame","url":"classes/websocketframe.html#pingframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2133,"kind":2048,"name":"pongFrame","url":"classes/websocketframe.html#pongframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2134,"kind":2048,"name":"continuationFrame","url":"classes/websocketframe.html#continuationframe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebSocketFrame"},{"id":2135,"kind":2048,"name":"isText","url":"classes/websocketframe.html#istext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2136,"kind":2048,"name":"isBinary","url":"classes/websocketframe.html#isbinary","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2137,"kind":2048,"name":"isContinuation","url":"classes/websocketframe.html#iscontinuation","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2138,"kind":2048,"name":"isClose","url":"classes/websocketframe.html#isclose","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2139,"kind":2048,"name":"textData","url":"classes/websocketframe.html#textdata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2140,"kind":2048,"name":"binaryData","url":"classes/websocketframe.html#binarydata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2141,"kind":2048,"name":"isFinal","url":"classes/websocketframe.html#isfinal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2142,"kind":2048,"name":"closeStatusCode","url":"classes/websocketframe.html#closestatuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2143,"kind":2048,"name":"closeReason","url":"classes/websocketframe.html#closereason","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebSocketFrame"},{"id":2144,"kind":128,"name":"WorkerExecutor","url":"classes/workerexecutor.html","classes":"tsd-kind-class"},{"id":2145,"kind":2048,"name":"isMetricsEnabled","url":"classes/workerexecutor.html#ismetricsenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WorkerExecutor"},{"id":2146,"kind":2048,"name":"executeBlocking","url":"classes/workerexecutor.html#executeblocking","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"WorkerExecutor"},{"id":2147,"kind":2048,"name":"close","url":"classes/workerexecutor.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WorkerExecutor"},{"id":2148,"kind":256,"name":"WriteStream","url":"interfaces/writestream.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":2149,"kind":2048,"name":"exceptionHandler","url":"interfaces/writestream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite","parent":"WriteStream"},{"id":2150,"kind":2048,"name":"write","url":"interfaces/writestream.html#write","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2151,"kind":2048,"name":"end","url":"interfaces/writestream.html#end","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2152,"kind":2048,"name":"setWriteQueueMaxSize","url":"interfaces/writestream.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2153,"kind":2048,"name":"writeQueueFull","url":"interfaces/writestream.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"},{"id":2154,"kind":2048,"name":"drainHandler","url":"interfaces/writestream.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"WriteStream"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,61.719]],["parent/0",[]],["name/1",[1,67.597]],["parent/1",[0,6.048]],["name/2",[2,61.719]],["parent/2",[0,6.048]],["name/3",[3,72.705]],["parent/3",[0,6.048]],["name/4",[4,61.719]],["parent/4",[]],["name/5",[1,67.597]],["parent/5",[4,6.048]],["name/6",[5,72.705]],["parent/6",[4,6.048]],["name/7",[6,72.705]],["parent/7",[4,6.048]],["name/8",[7,48.726]],["parent/8",[]],["name/9",[8,72.705]],["parent/9",[7,4.775]],["name/10",[9,72.705]],["parent/10",[7,4.775]],["name/11",[10,72.705]],["parent/11",[7,4.775]],["name/12",[11,72.705]],["parent/12",[7,4.775]],["name/13",[12,72.705]],["parent/13",[7,4.775]],["name/14",[13,72.705]],["parent/14",[7,4.775]],["name/15",[14,72.705]],["parent/15",[7,4.775]],["name/16",[15,72.705]],["parent/16",[7,4.775]],["name/17",[16,72.705]],["parent/17",[7,4.775]],["name/18",[17,72.705]],["parent/18",[7,4.775]],["name/19",[18,72.705]],["parent/19",[7,4.775]],["name/20",[19,72.705]],["parent/20",[7,4.775]],["name/21",[20,72.705]],["parent/21",[7,4.775]],["name/22",[21,72.705]],["parent/22",[7,4.775]],["name/23",[22,72.705]],["parent/23",[7,4.775]],["name/24",[23,52.337]],["parent/24",[]],["name/25",[24,67.597]],["parent/25",[23,5.128]],["name/26",[25,56.611]],["parent/26",[23,5.128]],["name/27",[26,67.597]],["parent/27",[23,5.128]],["name/28",[27,67.597]],["parent/28",[23,5.128]],["name/29",[28,59.713]],["parent/29",[23,5.128]],["name/30",[29,61.719]],["parent/30",[23,5.128]],["name/31",[30,72.705]],["parent/31",[23,5.128]],["name/32",[31,67.597]],["parent/32",[23,5.128]],["name/33",[32,72.705]],["parent/33",[23,5.128]],["name/34",[33,72.705]],["parent/34",[23,5.128]],["name/35",[34,61.719]],["parent/35",[]],["name/36",[35,72.705]],["parent/36",[34,6.048]],["name/37",[36,72.705]],["parent/37",[34,6.048]],["name/38",[37,72.705]],["parent/38",[34,6.048]],["name/39",[38,58.042]],["parent/39",[]],["name/40",[39,72.705]],["parent/40",[38,5.687]],["name/41",[40,72.705]],["parent/41",[38,5.687]],["name/42",[41,72.705]],["parent/42",[38,5.687]],["name/43",[42,72.705]],["parent/43",[38,5.687]],["name/44",[43,67.597]],["parent/44",[38,5.687]],["name/45",[44,61.719]],["parent/45",[]],["name/46",[45,72.705]],["parent/46",[44,6.048]],["name/47",[46,72.705]],["parent/47",[44,6.048]],["name/48",[47,72.705]],["parent/48",[44,6.048]],["name/49",[48,61.719]],["parent/49",[]],["name/50",[49,72.705]],["parent/50",[48,6.048]],["name/51",[50,72.705]],["parent/51",[48,6.048]],["name/52",[51,72.705]],["parent/52",[48,6.048]],["name/53",[52,59.713]],["parent/53",[]],["name/54",[53,72.705]],["parent/54",[52,5.851]],["name/55",[54,72.705]],["parent/55",[52,5.851]],["name/56",[55,72.705]],["parent/56",[52,5.851]],["name/57",[56,72.705]],["parent/57",[52,5.851]],["name/58",[57,42.583]],["parent/58",[]],["name/59",[58,41.948]],["parent/59",[57,4.173]],["name/60",[59,72.705]],["parent/60",[57,4.173]],["name/61",[60,72.705]],["parent/61",[57,4.173]],["name/62",[61,72.705]],["parent/62",[57,4.173]],["name/63",[62,72.705]],["parent/63",[57,4.173]],["name/64",[63,72.705]],["parent/64",[57,4.173]],["name/65",[64,72.705]],["parent/65",[57,4.173]],["name/66",[65,72.705]],["parent/66",[57,4.173]],["name/67",[66,72.705]],["parent/67",[57,4.173]],["name/68",[67,72.705]],["parent/68",[57,4.173]],["name/69",[68,72.705]],["parent/69",[57,4.173]],["name/70",[69,72.705]],["parent/70",[57,4.173]],["name/71",[70,72.705]],["parent/71",[57,4.173]],["name/72",[71,72.705]],["parent/72",[57,4.173]],["name/73",[72,72.705]],["parent/73",[57,4.173]],["name/74",[73,72.705]],["parent/74",[57,4.173]],["name/75",[74,72.705]],["parent/75",[57,4.173]],["name/76",[75,67.597]],["parent/76",[57,4.173]],["name/77",[76,67.597]],["parent/77",[57,4.173]],["name/78",[77,72.705]],["parent/78",[57,4.173]],["name/79",[78,72.705]],["parent/79",[57,4.173]],["name/80",[79,72.705]],["parent/80",[57,4.173]],["name/81",[80,72.705]],["parent/81",[57,4.173]],["name/82",[81,72.705]],["parent/82",[57,4.173]],["name/83",[82,72.705]],["parent/83",[57,4.173]],["name/84",[83,72.705]],["parent/84",[57,4.173]],["name/85",[84,72.705]],["parent/85",[57,4.173]],["name/86",[85,72.705]],["parent/86",[57,4.173]],["name/87",[86,72.705]],["parent/87",[57,4.173]],["name/88",[87,48.726]],["parent/88",[]],["name/89",[58,41.948]],["parent/89",[87,4.775]],["name/90",[88,67.597]],["parent/90",[87,4.775]],["name/91",[89,67.597]],["parent/91",[87,4.775]],["name/92",[90,67.597]],["parent/92",[87,4.775]],["name/93",[91,67.597]],["parent/93",[87,4.775]],["name/94",[92,64.232]],["parent/94",[87,4.775]],["name/95",[93,64.232]],["parent/95",[87,4.775]],["name/96",[94,64.232]],["parent/96",[87,4.775]],["name/97",[95,64.232]],["parent/97",[87,4.775]],["name/98",[96,72.705]],["parent/98",[87,4.775]],["name/99",[97,72.705]],["parent/99",[87,4.775]],["name/100",[98,67.597]],["parent/100",[87,4.775]],["name/101",[99,67.597]],["parent/101",[87,4.775]],["name/102",[100,67.597]],["parent/102",[87,4.775]],["name/103",[101,67.597]],["parent/103",[87,4.775]],["name/104",[102,33.519]],["parent/104",[]],["name/105",[58,41.948]],["parent/105",[102,3.284]],["name/106",[103,61.719]],["parent/106",[102,3.284]],["name/107",[104,61.719]],["parent/107",[102,3.284]],["name/108",[105,56.611]],["parent/108",[102,3.284]],["name/109",[106,56.611]],["parent/109",[102,3.284]],["name/110",[107,56.611]],["parent/110",[102,3.284]],["name/111",[108,56.611]],["parent/111",[102,3.284]],["name/112",[109,56.611]],["parent/112",[102,3.284]],["name/113",[110,56.611]],["parent/113",[102,3.284]],["name/114",[111,56.611]],["parent/114",[102,3.284]],["name/115",[112,56.611]],["parent/115",[102,3.284]],["name/116",[113,56.611]],["parent/116",[102,3.284]],["name/117",[114,56.611]],["parent/117",[102,3.284]],["name/118",[115,56.611]],["parent/118",[102,3.284]],["name/119",[116,56.611]],["parent/119",[102,3.284]],["name/120",[117,56.611]],["parent/120",[102,3.284]],["name/121",[118,56.611]],["parent/121",[102,3.284]],["name/122",[119,56.611]],["parent/122",[102,3.284]],["name/123",[120,56.611]],["parent/123",[102,3.284]],["name/124",[121,56.611]],["parent/124",[102,3.284]],["name/125",[122,64.232]],["parent/125",[102,3.284]],["name/126",[123,64.232]],["parent/126",[102,3.284]],["name/127",[124,53.246]],["parent/127",[102,3.284]],["name/128",[125,53.246]],["parent/128",[102,3.284]],["name/129",[126,64.232]],["parent/129",[102,3.284]],["name/130",[127,64.232]],["parent/130",[102,3.284]],["name/131",[128,56.611]],["parent/131",[102,3.284]],["name/132",[129,56.611]],["parent/132",[102,3.284]],["name/133",[130,56.611]],["parent/133",[102,3.284]],["name/134",[131,56.611]],["parent/134",[102,3.284]],["name/135",[132,56.611]],["parent/135",[102,3.284]],["name/136",[133,56.611]],["parent/136",[102,3.284]],["name/137",[134,56.611]],["parent/137",[102,3.284]],["name/138",[135,56.611]],["parent/138",[102,3.284]],["name/139",[136,56.611]],["parent/139",[102,3.284]],["name/140",[137,56.611]],["parent/140",[102,3.284]],["name/141",[138,64.232]],["parent/141",[102,3.284]],["name/142",[139,64.232]],["parent/142",[102,3.284]],["name/143",[140,54.247]],["parent/143",[102,3.284]],["name/144",[141,54.247]],["parent/144",[102,3.284]],["name/145",[142,54.247]],["parent/145",[102,3.284]],["name/146",[143,54.247]],["parent/146",[102,3.284]],["name/147",[144,54.247]],["parent/147",[102,3.284]],["name/148",[145,54.247]],["parent/148",[102,3.284]],["name/149",[146,54.247]],["parent/149",[102,3.284]],["name/150",[147,54.247]],["parent/150",[102,3.284]],["name/151",[148,56.611]],["parent/151",[102,3.284]],["name/152",[149,56.611]],["parent/152",[102,3.284]],["name/153",[150,49.352]],["parent/153",[102,3.284]],["name/154",[151,54.247]],["parent/154",[102,3.284]],["name/155",[152,56.611]],["parent/155",[102,3.284]],["name/156",[153,56.611]],["parent/156",[102,3.284]],["name/157",[154,56.611]],["parent/157",[102,3.284]],["name/158",[155,56.611]],["parent/158",[102,3.284]],["name/159",[156,56.611]],["parent/159",[102,3.284]],["name/160",[157,56.611]],["parent/160",[102,3.284]],["name/161",[158,56.611]],["parent/161",[102,3.284]],["name/162",[159,56.611]],["parent/162",[102,3.284]],["name/163",[160,56.611]],["parent/163",[102,3.284]],["name/164",[161,56.611]],["parent/164",[102,3.284]],["name/165",[162,56.611]],["parent/165",[102,3.284]],["name/166",[163,56.611]],["parent/166",[102,3.284]],["name/167",[164,56.611]],["parent/167",[102,3.284]],["name/168",[165,56.611]],["parent/168",[102,3.284]],["name/169",[166,54.247]],["parent/169",[102,3.284]],["name/170",[167,54.247]],["parent/170",[102,3.284]],["name/171",[168,61.719]],["parent/171",[102,3.284]],["name/172",[169,61.719]],["parent/172",[102,3.284]],["name/173",[170,56.611]],["parent/173",[102,3.284]],["name/174",[171,56.611]],["parent/174",[102,3.284]],["name/175",[172,56.611]],["parent/175",[102,3.284]],["name/176",[173,56.611]],["parent/176",[102,3.284]],["name/177",[174,56.611]],["parent/177",[102,3.284]],["name/178",[175,56.611]],["parent/178",[102,3.284]],["name/179",[176,53.246]],["parent/179",[]],["name/180",[58,41.948]],["parent/180",[176,5.217]],["name/181",[177,72.705]],["parent/181",[176,5.217]],["name/182",[178,72.705]],["parent/182",[176,5.217]],["name/183",[179,72.705]],["parent/183",[176,5.217]],["name/184",[180,72.705]],["parent/184",[176,5.217]],["name/185",[181,72.705]],["parent/185",[176,5.217]],["name/186",[182,72.705]],["parent/186",[176,5.217]],["name/187",[183,72.705]],["parent/187",[176,5.217]],["name/188",[184,72.705]],["parent/188",[176,5.217]],["name/189",[185,44.773]],["parent/189",[]],["name/190",[58,41.948]],["parent/190",[185,4.387]],["name/191",[186,72.705]],["parent/191",[185,4.387]],["name/192",[187,72.705]],["parent/192",[185,4.387]],["name/193",[188,72.705]],["parent/193",[185,4.387]],["name/194",[189,72.705]],["parent/194",[185,4.387]],["name/195",[124,53.246]],["parent/195",[185,4.387]],["name/196",[125,53.246]],["parent/196",[185,4.387]],["name/197",[190,72.705]],["parent/197",[185,4.387]],["name/198",[191,72.705]],["parent/198",[185,4.387]],["name/199",[192,72.705]],["parent/199",[185,4.387]],["name/200",[193,72.705]],["parent/200",[185,4.387]],["name/201",[194,72.705]],["parent/201",[185,4.387]],["name/202",[195,72.705]],["parent/202",[185,4.387]],["name/203",[140,54.247]],["parent/203",[185,4.387]],["name/204",[141,54.247]],["parent/204",[185,4.387]],["name/205",[142,54.247]],["parent/205",[185,4.387]],["name/206",[143,54.247]],["parent/206",[185,4.387]],["name/207",[144,54.247]],["parent/207",[185,4.387]],["name/208",[145,54.247]],["parent/208",[185,4.387]],["name/209",[146,54.247]],["parent/209",[185,4.387]],["name/210",[147,54.247]],["parent/210",[185,4.387]],["name/211",[166,54.247]],["parent/211",[185,4.387]],["name/212",[167,54.247]],["parent/212",[185,4.387]],["name/213",[196,53.246]],["parent/213",[]],["name/214",[58,41.948]],["parent/214",[196,5.217]],["name/215",[197,72.705]],["parent/215",[196,5.217]],["name/216",[198,72.705]],["parent/216",[196,5.217]],["name/217",[199,64.232]],["parent/217",[196,5.217]],["name/218",[200,72.705]],["parent/218",[196,5.217]],["name/219",[201,72.705]],["parent/219",[196,5.217]],["name/220",[202,72.705]],["parent/220",[196,5.217]],["name/221",[203,72.705]],["parent/221",[196,5.217]],["name/222",[204,43.989]],["parent/222",[]],["name/223",[58,41.948]],["parent/223",[204,4.31]],["name/224",[205,72.705]],["parent/224",[204,4.31]],["name/225",[206,72.705]],["parent/225",[204,4.31]],["name/226",[207,72.705]],["parent/226",[204,4.31]],["name/227",[208,72.705]],["parent/227",[204,4.31]],["name/228",[209,72.705]],["parent/228",[204,4.31]],["name/229",[210,72.705]],["parent/229",[204,4.31]],["name/230",[211,72.705]],["parent/230",[204,4.31]],["name/231",[212,72.705]],["parent/231",[204,4.31]],["name/232",[213,72.705]],["parent/232",[204,4.31]],["name/233",[214,72.705]],["parent/233",[204,4.31]],["name/234",[215,72.705]],["parent/234",[204,4.31]],["name/235",[216,72.705]],["parent/235",[204,4.31]],["name/236",[217,67.597]],["parent/236",[204,4.31]],["name/237",[218,67.597]],["parent/237",[204,4.31]],["name/238",[219,67.597]],["parent/238",[204,4.31]],["name/239",[220,67.597]],["parent/239",[204,4.31]],["name/240",[221,72.705]],["parent/240",[204,4.31]],["name/241",[222,72.705]],["parent/241",[204,4.31]],["name/242",[223,72.705]],["parent/242",[204,4.31]],["name/243",[224,72.705]],["parent/243",[204,4.31]],["name/244",[225,72.705]],["parent/244",[204,4.31]],["name/245",[226,72.705]],["parent/245",[204,4.31]],["name/246",[227,67.597]],["parent/246",[204,4.31]],["name/247",[228,67.597]],["parent/247",[204,4.31]],["name/248",[229,51.503]],["parent/248",[]],["name/249",[58,41.948]],["parent/249",[229,5.047]],["name/250",[230,55.359]],["parent/250",[229,5.047]],["name/251",[231,55.359]],["parent/251",[229,5.047]],["name/252",[124,53.246]],["parent/252",[229,5.047]],["name/253",[125,53.246]],["parent/253",[229,5.047]],["name/254",[232,56.611]],["parent/254",[229,5.047]],["name/255",[233,56.611]],["parent/255",[229,5.047]],["name/256",[75,67.597]],["parent/256",[229,5.047]],["name/257",[76,67.597]],["parent/257",[229,5.047]],["name/258",[234,72.705]],["parent/258",[229,5.047]],["name/259",[235,72.705]],["parent/259",[229,5.047]],["name/260",[236,31.597]],["parent/260",[]],["name/261",[58,41.948]],["parent/261",[236,3.096]],["name/262",[237,64.232]],["parent/262",[236,3.096]],["name/263",[238,64.232]],["parent/263",[236,3.096]],["name/264",[239,64.232]],["parent/264",[236,3.096]],["name/265",[240,64.232]],["parent/265",[236,3.096]],["name/266",[241,67.597]],["parent/266",[236,3.096]],["name/267",[242,67.597]],["parent/267",[236,3.096]],["name/268",[243,67.597]],["parent/268",[236,3.096]],["name/269",[244,67.597]],["parent/269",[236,3.096]],["name/270",[245,67.597]],["parent/270",[236,3.096]],["name/271",[246,67.597]],["parent/271",[236,3.096]],["name/272",[247,67.597]],["parent/272",[236,3.096]],["name/273",[248,67.597]],["parent/273",[236,3.096]],["name/274",[249,64.232]],["parent/274",[236,3.096]],["name/275",[250,67.597]],["parent/275",[236,3.096]],["name/276",[103,61.719]],["parent/276",[236,3.096]],["name/277",[104,61.719]],["parent/277",[236,3.096]],["name/278",[105,56.611]],["parent/278",[236,3.096]],["name/279",[106,56.611]],["parent/279",[236,3.096]],["name/280",[107,56.611]],["parent/280",[236,3.096]],["name/281",[108,56.611]],["parent/281",[236,3.096]],["name/282",[109,56.611]],["parent/282",[236,3.096]],["name/283",[110,56.611]],["parent/283",[236,3.096]],["name/284",[111,56.611]],["parent/284",[236,3.096]],["name/285",[112,56.611]],["parent/285",[236,3.096]],["name/286",[113,56.611]],["parent/286",[236,3.096]],["name/287",[230,55.359]],["parent/287",[236,3.096]],["name/288",[231,55.359]],["parent/288",[236,3.096]],["name/289",[114,56.611]],["parent/289",[236,3.096]],["name/290",[115,56.611]],["parent/290",[236,3.096]],["name/291",[116,56.611]],["parent/291",[236,3.096]],["name/292",[117,56.611]],["parent/292",[236,3.096]],["name/293",[118,56.611]],["parent/293",[236,3.096]],["name/294",[119,56.611]],["parent/294",[236,3.096]],["name/295",[120,56.611]],["parent/295",[236,3.096]],["name/296",[121,56.611]],["parent/296",[236,3.096]],["name/297",[124,53.246]],["parent/297",[236,3.096]],["name/298",[125,53.246]],["parent/298",[236,3.096]],["name/299",[128,56.611]],["parent/299",[236,3.096]],["name/300",[129,56.611]],["parent/300",[236,3.096]],["name/301",[130,56.611]],["parent/301",[236,3.096]],["name/302",[131,56.611]],["parent/302",[236,3.096]],["name/303",[132,56.611]],["parent/303",[236,3.096]],["name/304",[133,56.611]],["parent/304",[236,3.096]],["name/305",[134,56.611]],["parent/305",[236,3.096]],["name/306",[135,56.611]],["parent/306",[236,3.096]],["name/307",[136,56.611]],["parent/307",[236,3.096]],["name/308",[137,56.611]],["parent/308",[236,3.096]],["name/309",[232,56.611]],["parent/309",[236,3.096]],["name/310",[233,56.611]],["parent/310",[236,3.096]],["name/311",[140,54.247]],["parent/311",[236,3.096]],["name/312",[141,54.247]],["parent/312",[236,3.096]],["name/313",[251,67.597]],["parent/313",[236,3.096]],["name/314",[252,67.597]],["parent/314",[236,3.096]],["name/315",[253,67.597]],["parent/315",[236,3.096]],["name/316",[254,67.597]],["parent/316",[236,3.096]],["name/317",[142,54.247]],["parent/317",[236,3.096]],["name/318",[143,54.247]],["parent/318",[236,3.096]],["name/319",[144,54.247]],["parent/319",[236,3.096]],["name/320",[145,54.247]],["parent/320",[236,3.096]],["name/321",[146,54.247]],["parent/321",[236,3.096]],["name/322",[147,54.247]],["parent/322",[236,3.096]],["name/323",[148,56.611]],["parent/323",[236,3.096]],["name/324",[149,56.611]],["parent/324",[236,3.096]],["name/325",[150,49.352]],["parent/325",[236,3.096]],["name/326",[151,54.247]],["parent/326",[236,3.096]],["name/327",[152,56.611]],["parent/327",[236,3.096]],["name/328",[153,56.611]],["parent/328",[236,3.096]],["name/329",[154,56.611]],["parent/329",[236,3.096]],["name/330",[155,56.611]],["parent/330",[236,3.096]],["name/331",[156,56.611]],["parent/331",[236,3.096]],["name/332",[157,56.611]],["parent/332",[236,3.096]],["name/333",[158,56.611]],["parent/333",[236,3.096]],["name/334",[159,56.611]],["parent/334",[236,3.096]],["name/335",[160,56.611]],["parent/335",[236,3.096]],["name/336",[161,56.611]],["parent/336",[236,3.096]],["name/337",[162,56.611]],["parent/337",[236,3.096]],["name/338",[163,56.611]],["parent/338",[236,3.096]],["name/339",[164,56.611]],["parent/339",[236,3.096]],["name/340",[165,56.611]],["parent/340",[236,3.096]],["name/341",[166,54.247]],["parent/341",[236,3.096]],["name/342",[167,54.247]],["parent/342",[236,3.096]],["name/343",[168,61.719]],["parent/343",[236,3.096]],["name/344",[169,61.719]],["parent/344",[236,3.096]],["name/345",[170,56.611]],["parent/345",[236,3.096]],["name/346",[171,56.611]],["parent/346",[236,3.096]],["name/347",[172,56.611]],["parent/347",[236,3.096]],["name/348",[173,56.611]],["parent/348",[236,3.096]],["name/349",[174,56.611]],["parent/349",[236,3.096]],["name/350",[175,56.611]],["parent/350",[236,3.096]],["name/351",[255,55.359]],["parent/351",[]],["name/352",[58,41.948]],["parent/352",[255,5.425]],["name/353",[256,72.705]],["parent/353",[255,5.425]],["name/354",[257,72.705]],["parent/354",[255,5.425]],["name/355",[258,72.705]],["parent/355",[255,5.425]],["name/356",[259,72.705]],["parent/356",[255,5.425]],["name/357",[260,72.705]],["parent/357",[255,5.425]],["name/358",[261,72.705]],["parent/358",[255,5.425]],["name/359",[262,54.247]],["parent/359",[]],["name/360",[58,41.948]],["parent/360",[262,5.316]],["name/361",[263,72.705]],["parent/361",[262,5.316]],["name/362",[264,72.705]],["parent/362",[262,5.316]],["name/363",[265,72.705]],["parent/363",[262,5.316]],["name/364",[266,72.705]],["parent/364",[262,5.316]],["name/365",[267,72.705]],["parent/365",[262,5.316]],["name/366",[268,72.705]],["parent/366",[262,5.316]],["name/367",[269,50.019]],["parent/367",[]],["name/368",[58,41.948]],["parent/368",[269,4.901]],["name/369",[270,72.705]],["parent/369",[269,4.901]],["name/370",[271,72.705]],["parent/370",[269,4.901]],["name/371",[272,72.705]],["parent/371",[269,4.901]],["name/372",[273,72.705]],["parent/372",[269,4.901]],["name/373",[274,72.705]],["parent/373",[269,4.901]],["name/374",[275,72.705]],["parent/374",[269,4.901]],["name/375",[276,72.705]],["parent/375",[269,4.901]],["name/376",[277,72.705]],["parent/376",[269,4.901]],["name/377",[278,72.705]],["parent/377",[269,4.901]],["name/378",[279,72.705]],["parent/378",[269,4.901]],["name/379",[280,72.705]],["parent/379",[269,4.901]],["name/380",[281,72.705]],["parent/380",[269,4.901]],["name/381",[282,26.166]],["parent/381",[]],["name/382",[58,41.948]],["parent/382",[282,2.564]],["name/383",[283,67.597]],["parent/383",[282,2.564]],["name/384",[284,67.597]],["parent/384",[282,2.564]],["name/385",[103,61.719]],["parent/385",[282,2.564]],["name/386",[104,61.719]],["parent/386",[282,2.564]],["name/387",[105,56.611]],["parent/387",[282,2.564]],["name/388",[106,56.611]],["parent/388",[282,2.564]],["name/389",[107,56.611]],["parent/389",[282,2.564]],["name/390",[108,56.611]],["parent/390",[282,2.564]],["name/391",[285,67.597]],["parent/391",[282,2.564]],["name/392",[286,67.597]],["parent/392",[282,2.564]],["name/393",[287,72.705]],["parent/393",[282,2.564]],["name/394",[288,72.705]],["parent/394",[282,2.564]],["name/395",[289,72.705]],["parent/395",[282,2.564]],["name/396",[290,72.705]],["parent/396",[282,2.564]],["name/397",[109,56.611]],["parent/397",[282,2.564]],["name/398",[110,56.611]],["parent/398",[282,2.564]],["name/399",[111,56.611]],["parent/399",[282,2.564]],["name/400",[112,56.611]],["parent/400",[282,2.564]],["name/401",[113,56.611]],["parent/401",[282,2.564]],["name/402",[291,72.705]],["parent/402",[282,2.564]],["name/403",[292,72.705]],["parent/403",[282,2.564]],["name/404",[293,72.705]],["parent/404",[282,2.564]],["name/405",[294,72.705]],["parent/405",[282,2.564]],["name/406",[295,67.597]],["parent/406",[282,2.564]],["name/407",[296,67.597]],["parent/407",[282,2.564]],["name/408",[297,72.705]],["parent/408",[282,2.564]],["name/409",[298,72.705]],["parent/409",[282,2.564]],["name/410",[299,72.705]],["parent/410",[282,2.564]],["name/411",[300,72.705]],["parent/411",[282,2.564]],["name/412",[301,72.705]],["parent/412",[282,2.564]],["name/413",[302,72.705]],["parent/413",[282,2.564]],["name/414",[114,56.611]],["parent/414",[282,2.564]],["name/415",[115,56.611]],["parent/415",[282,2.564]],["name/416",[116,56.611]],["parent/416",[282,2.564]],["name/417",[117,56.611]],["parent/417",[282,2.564]],["name/418",[303,67.597]],["parent/418",[282,2.564]],["name/419",[304,67.597]],["parent/419",[282,2.564]],["name/420",[118,56.611]],["parent/420",[282,2.564]],["name/421",[119,56.611]],["parent/421",[282,2.564]],["name/422",[305,72.705]],["parent/422",[282,2.564]],["name/423",[306,72.705]],["parent/423",[282,2.564]],["name/424",[307,72.705]],["parent/424",[282,2.564]],["name/425",[308,72.705]],["parent/425",[282,2.564]],["name/426",[120,56.611]],["parent/426",[282,2.564]],["name/427",[121,56.611]],["parent/427",[282,2.564]],["name/428",[122,64.232]],["parent/428",[282,2.564]],["name/429",[123,64.232]],["parent/429",[282,2.564]],["name/430",[124,53.246]],["parent/430",[282,2.564]],["name/431",[125,53.246]],["parent/431",[282,2.564]],["name/432",[309,67.597]],["parent/432",[282,2.564]],["name/433",[310,67.597]],["parent/433",[282,2.564]],["name/434",[311,67.597]],["parent/434",[282,2.564]],["name/435",[312,67.597]],["parent/435",[282,2.564]],["name/436",[313,67.597]],["parent/436",[282,2.564]],["name/437",[314,67.597]],["parent/437",[282,2.564]],["name/438",[315,72.705]],["parent/438",[282,2.564]],["name/439",[316,72.705]],["parent/439",[282,2.564]],["name/440",[317,72.705]],["parent/440",[282,2.564]],["name/441",[318,67.597]],["parent/441",[282,2.564]],["name/442",[319,72.705]],["parent/442",[282,2.564]],["name/443",[320,72.705]],["parent/443",[282,2.564]],["name/444",[321,61.719]],["parent/444",[282,2.564]],["name/445",[322,61.719]],["parent/445",[282,2.564]],["name/446",[323,61.719]],["parent/446",[282,2.564]],["name/447",[324,61.719]],["parent/447",[282,2.564]],["name/448",[321,61.719]],["parent/448",[282,2.564]],["name/449",[322,61.719]],["parent/449",[282,2.564]],["name/450",[323,61.719]],["parent/450",[282,2.564]],["name/451",[324,61.719]],["parent/451",[282,2.564]],["name/452",[126,64.232]],["parent/452",[282,2.564]],["name/453",[127,64.232]],["parent/453",[282,2.564]],["name/454",[128,56.611]],["parent/454",[282,2.564]],["name/455",[129,56.611]],["parent/455",[282,2.564]],["name/456",[130,56.611]],["parent/456",[282,2.564]],["name/457",[131,56.611]],["parent/457",[282,2.564]],["name/458",[132,56.611]],["parent/458",[282,2.564]],["name/459",[133,56.611]],["parent/459",[282,2.564]],["name/460",[134,56.611]],["parent/460",[282,2.564]],["name/461",[135,56.611]],["parent/461",[282,2.564]],["name/462",[136,56.611]],["parent/462",[282,2.564]],["name/463",[137,56.611]],["parent/463",[282,2.564]],["name/464",[325,72.705]],["parent/464",[282,2.564]],["name/465",[326,72.705]],["parent/465",[282,2.564]],["name/466",[327,72.705]],["parent/466",[282,2.564]],["name/467",[328,72.705]],["parent/467",[282,2.564]],["name/468",[329,72.705]],["parent/468",[282,2.564]],["name/469",[330,72.705]],["parent/469",[282,2.564]],["name/470",[331,72.705]],["parent/470",[282,2.564]],["name/471",[332,72.705]],["parent/471",[282,2.564]],["name/472",[138,64.232]],["parent/472",[282,2.564]],["name/473",[139,64.232]],["parent/473",[282,2.564]],["name/474",[140,54.247]],["parent/474",[282,2.564]],["name/475",[141,54.247]],["parent/475",[282,2.564]],["name/476",[142,54.247]],["parent/476",[282,2.564]],["name/477",[143,54.247]],["parent/477",[282,2.564]],["name/478",[144,54.247]],["parent/478",[282,2.564]],["name/479",[145,54.247]],["parent/479",[282,2.564]],["name/480",[146,54.247]],["parent/480",[282,2.564]],["name/481",[147,54.247]],["parent/481",[282,2.564]],["name/482",[333,72.705]],["parent/482",[282,2.564]],["name/483",[334,72.705]],["parent/483",[282,2.564]],["name/484",[148,56.611]],["parent/484",[282,2.564]],["name/485",[149,56.611]],["parent/485",[282,2.564]],["name/486",[150,49.352]],["parent/486",[282,2.564]],["name/487",[151,54.247]],["parent/487",[282,2.564]],["name/488",[152,56.611]],["parent/488",[282,2.564]],["name/489",[153,56.611]],["parent/489",[282,2.564]],["name/490",[154,56.611]],["parent/490",[282,2.564]],["name/491",[155,56.611]],["parent/491",[282,2.564]],["name/492",[156,56.611]],["parent/492",[282,2.564]],["name/493",[157,56.611]],["parent/493",[282,2.564]],["name/494",[158,56.611]],["parent/494",[282,2.564]],["name/495",[159,56.611]],["parent/495",[282,2.564]],["name/496",[160,56.611]],["parent/496",[282,2.564]],["name/497",[161,56.611]],["parent/497",[282,2.564]],["name/498",[162,56.611]],["parent/498",[282,2.564]],["name/499",[163,56.611]],["parent/499",[282,2.564]],["name/500",[164,56.611]],["parent/500",[282,2.564]],["name/501",[165,56.611]],["parent/501",[282,2.564]],["name/502",[166,54.247]],["parent/502",[282,2.564]],["name/503",[167,54.247]],["parent/503",[282,2.564]],["name/504",[168,61.719]],["parent/504",[282,2.564]],["name/505",[169,61.719]],["parent/505",[282,2.564]],["name/506",[170,56.611]],["parent/506",[282,2.564]],["name/507",[171,56.611]],["parent/507",[282,2.564]],["name/508",[335,72.705]],["parent/508",[282,2.564]],["name/509",[336,72.705]],["parent/509",[282,2.564]],["name/510",[337,67.597]],["parent/510",[282,2.564]],["name/511",[337,67.597]],["parent/511",[282,2.564]],["name/512",[338,67.597]],["parent/512",[282,2.564]],["name/513",[339,67.597]],["parent/513",[282,2.564]],["name/514",[338,67.597]],["parent/514",[282,2.564]],["name/515",[339,67.597]],["parent/515",[282,2.564]],["name/516",[340,67.597]],["parent/516",[282,2.564]],["name/517",[340,67.597]],["parent/517",[282,2.564]],["name/518",[172,56.611]],["parent/518",[282,2.564]],["name/519",[173,56.611]],["parent/519",[282,2.564]],["name/520",[174,56.611]],["parent/520",[282,2.564]],["name/521",[175,56.611]],["parent/521",[282,2.564]],["name/522",[341,72.705]],["parent/522",[282,2.564]],["name/523",[342,72.705]],["parent/523",[282,2.564]],["name/524",[343,72.705]],["parent/524",[282,2.564]],["name/525",[344,72.705]],["parent/525",[282,2.564]],["name/526",[345,67.597]],["parent/526",[282,2.564]],["name/527",[346,67.597]],["parent/527",[282,2.564]],["name/528",[347,61.719]],["parent/528",[282,2.564]],["name/529",[348,61.719]],["parent/529",[282,2.564]],["name/530",[349,67.597]],["parent/530",[282,2.564]],["name/531",[350,67.597]],["parent/531",[282,2.564]],["name/532",[345,67.597]],["parent/532",[282,2.564]],["name/533",[346,67.597]],["parent/533",[282,2.564]],["name/534",[347,61.719]],["parent/534",[282,2.564]],["name/535",[348,61.719]],["parent/535",[282,2.564]],["name/536",[349,67.597]],["parent/536",[282,2.564]],["name/537",[350,67.597]],["parent/537",[282,2.564]],["name/538",[351,27.744]],["parent/538",[]],["name/539",[58,41.948]],["parent/539",[351,2.719]],["name/540",[237,64.232]],["parent/540",[351,2.719]],["name/541",[238,64.232]],["parent/541",[351,2.719]],["name/542",[352,72.705]],["parent/542",[351,2.719]],["name/543",[353,72.705]],["parent/543",[351,2.719]],["name/544",[283,67.597]],["parent/544",[351,2.719]],["name/545",[284,67.597]],["parent/545",[351,2.719]],["name/546",[239,64.232]],["parent/546",[351,2.719]],["name/547",[240,64.232]],["parent/547",[351,2.719]],["name/548",[354,67.597]],["parent/548",[351,2.719]],["name/549",[355,67.597]],["parent/549",[351,2.719]],["name/550",[356,72.705]],["parent/550",[351,2.719]],["name/551",[357,72.705]],["parent/551",[351,2.719]],["name/552",[358,72.705]],["parent/552",[351,2.719]],["name/553",[359,72.705]],["parent/553",[351,2.719]],["name/554",[105,56.611]],["parent/554",[351,2.719]],["name/555",[106,56.611]],["parent/555",[351,2.719]],["name/556",[107,56.611]],["parent/556",[351,2.719]],["name/557",[108,56.611]],["parent/557",[351,2.719]],["name/558",[285,67.597]],["parent/558",[351,2.719]],["name/559",[286,67.597]],["parent/559",[351,2.719]],["name/560",[360,72.705]],["parent/560",[351,2.719]],["name/561",[361,72.705]],["parent/561",[351,2.719]],["name/562",[109,56.611]],["parent/562",[351,2.719]],["name/563",[110,56.611]],["parent/563",[351,2.719]],["name/564",[111,56.611]],["parent/564",[351,2.719]],["name/565",[112,56.611]],["parent/565",[351,2.719]],["name/566",[113,56.611]],["parent/566",[351,2.719]],["name/567",[362,72.705]],["parent/567",[351,2.719]],["name/568",[363,72.705]],["parent/568",[351,2.719]],["name/569",[230,55.359]],["parent/569",[351,2.719]],["name/570",[231,55.359]],["parent/570",[351,2.719]],["name/571",[295,67.597]],["parent/571",[351,2.719]],["name/572",[296,67.597]],["parent/572",[351,2.719]],["name/573",[114,56.611]],["parent/573",[351,2.719]],["name/574",[115,56.611]],["parent/574",[351,2.719]],["name/575",[116,56.611]],["parent/575",[351,2.719]],["name/576",[117,56.611]],["parent/576",[351,2.719]],["name/577",[303,67.597]],["parent/577",[351,2.719]],["name/578",[304,67.597]],["parent/578",[351,2.719]],["name/579",[118,56.611]],["parent/579",[351,2.719]],["name/580",[119,56.611]],["parent/580",[351,2.719]],["name/581",[120,56.611]],["parent/581",[351,2.719]],["name/582",[121,56.611]],["parent/582",[351,2.719]],["name/583",[124,53.246]],["parent/583",[351,2.719]],["name/584",[125,53.246]],["parent/584",[351,2.719]],["name/585",[309,67.597]],["parent/585",[351,2.719]],["name/586",[310,67.597]],["parent/586",[351,2.719]],["name/587",[311,67.597]],["parent/587",[351,2.719]],["name/588",[312,67.597]],["parent/588",[351,2.719]],["name/589",[313,67.597]],["parent/589",[351,2.719]],["name/590",[314,67.597]],["parent/590",[351,2.719]],["name/591",[321,61.719]],["parent/591",[351,2.719]],["name/592",[322,61.719]],["parent/592",[351,2.719]],["name/593",[323,61.719]],["parent/593",[351,2.719]],["name/594",[324,61.719]],["parent/594",[351,2.719]],["name/595",[321,61.719]],["parent/595",[351,2.719]],["name/596",[322,61.719]],["parent/596",[351,2.719]],["name/597",[323,61.719]],["parent/597",[351,2.719]],["name/598",[324,61.719]],["parent/598",[351,2.719]],["name/599",[128,56.611]],["parent/599",[351,2.719]],["name/600",[129,56.611]],["parent/600",[351,2.719]],["name/601",[130,56.611]],["parent/601",[351,2.719]],["name/602",[131,56.611]],["parent/602",[351,2.719]],["name/603",[132,56.611]],["parent/603",[351,2.719]],["name/604",[133,56.611]],["parent/604",[351,2.719]],["name/605",[364,67.597]],["parent/605",[351,2.719]],["name/606",[365,67.597]],["parent/606",[351,2.719]],["name/607",[364,67.597]],["parent/607",[351,2.719]],["name/608",[365,67.597]],["parent/608",[351,2.719]],["name/609",[366,67.597]],["parent/609",[351,2.719]],["name/610",[367,67.597]],["parent/610",[351,2.719]],["name/611",[366,67.597]],["parent/611",[351,2.719]],["name/612",[367,67.597]],["parent/612",[351,2.719]],["name/613",[134,56.611]],["parent/613",[351,2.719]],["name/614",[135,56.611]],["parent/614",[351,2.719]],["name/615",[136,56.611]],["parent/615",[351,2.719]],["name/616",[137,56.611]],["parent/616",[351,2.719]],["name/617",[232,56.611]],["parent/617",[351,2.719]],["name/618",[233,56.611]],["parent/618",[351,2.719]],["name/619",[140,54.247]],["parent/619",[351,2.719]],["name/620",[141,54.247]],["parent/620",[351,2.719]],["name/621",[142,54.247]],["parent/621",[351,2.719]],["name/622",[143,54.247]],["parent/622",[351,2.719]],["name/623",[144,54.247]],["parent/623",[351,2.719]],["name/624",[145,54.247]],["parent/624",[351,2.719]],["name/625",[146,54.247]],["parent/625",[351,2.719]],["name/626",[147,54.247]],["parent/626",[351,2.719]],["name/627",[368,67.597]],["parent/627",[351,2.719]],["name/628",[369,67.597]],["parent/628",[351,2.719]],["name/629",[148,56.611]],["parent/629",[351,2.719]],["name/630",[149,56.611]],["parent/630",[351,2.719]],["name/631",[150,49.352]],["parent/631",[351,2.719]],["name/632",[151,54.247]],["parent/632",[351,2.719]],["name/633",[152,56.611]],["parent/633",[351,2.719]],["name/634",[153,56.611]],["parent/634",[351,2.719]],["name/635",[154,56.611]],["parent/635",[351,2.719]],["name/636",[155,56.611]],["parent/636",[351,2.719]],["name/637",[156,56.611]],["parent/637",[351,2.719]],["name/638",[157,56.611]],["parent/638",[351,2.719]],["name/639",[158,56.611]],["parent/639",[351,2.719]],["name/640",[159,56.611]],["parent/640",[351,2.719]],["name/641",[160,56.611]],["parent/641",[351,2.719]],["name/642",[161,56.611]],["parent/642",[351,2.719]],["name/643",[162,56.611]],["parent/643",[351,2.719]],["name/644",[163,56.611]],["parent/644",[351,2.719]],["name/645",[164,56.611]],["parent/645",[351,2.719]],["name/646",[165,56.611]],["parent/646",[351,2.719]],["name/647",[166,54.247]],["parent/647",[351,2.719]],["name/648",[167,54.247]],["parent/648",[351,2.719]],["name/649",[170,56.611]],["parent/649",[351,2.719]],["name/650",[171,56.611]],["parent/650",[351,2.719]],["name/651",[172,56.611]],["parent/651",[351,2.719]],["name/652",[173,56.611]],["parent/652",[351,2.719]],["name/653",[174,56.611]],["parent/653",[351,2.719]],["name/654",[175,56.611]],["parent/654",[351,2.719]],["name/655",[370,67.597]],["parent/655",[351,2.719]],["name/656",[371,67.597]],["parent/656",[351,2.719]],["name/657",[347,61.719]],["parent/657",[351,2.719]],["name/658",[348,61.719]],["parent/658",[351,2.719]],["name/659",[372,67.597]],["parent/659",[351,2.719]],["name/660",[373,67.597]],["parent/660",[351,2.719]],["name/661",[374,67.597]],["parent/661",[351,2.719]],["name/662",[375,67.597]],["parent/662",[351,2.719]],["name/663",[376,72.705]],["parent/663",[351,2.719]],["name/664",[370,67.597]],["parent/664",[351,2.719]],["name/665",[371,67.597]],["parent/665",[351,2.719]],["name/666",[347,61.719]],["parent/666",[351,2.719]],["name/667",[348,61.719]],["parent/667",[351,2.719]],["name/668",[372,67.597]],["parent/668",[351,2.719]],["name/669",[373,67.597]],["parent/669",[351,2.719]],["name/670",[374,67.597]],["parent/670",[351,2.719]],["name/671",[375,67.597]],["parent/671",[351,2.719]],["name/672",[377,67.597]],["parent/672",[]],["name/673",[58,41.948]],["parent/673",[377,6.624]],["name/674",[378,55.359]],["parent/674",[]],["name/675",[58,41.948]],["parent/675",[378,5.425]],["name/676",[379,64.232]],["parent/676",[378,5.425]],["name/677",[380,64.232]],["parent/677",[378,5.425]],["name/678",[381,64.232]],["parent/678",[378,5.425]],["name/679",[382,64.232]],["parent/679",[378,5.425]],["name/680",[383,64.232]],["parent/680",[378,5.425]],["name/681",[384,64.232]],["parent/681",[378,5.425]],["name/682",[385,61.719]],["parent/682",[]],["name/683",[58,41.948]],["parent/683",[385,6.048]],["name/684",[386,72.705]],["parent/684",[385,6.048]],["name/685",[387,72.705]],["parent/685",[385,6.048]],["name/686",[388,32.754]],["parent/686",[]],["name/687",[58,41.948]],["parent/687",[388,3.21]],["name/688",[103,61.719]],["parent/688",[388,3.21]],["name/689",[104,61.719]],["parent/689",[388,3.21]],["name/690",[105,56.611]],["parent/690",[388,3.21]],["name/691",[106,56.611]],["parent/691",[388,3.21]],["name/692",[107,56.611]],["parent/692",[388,3.21]],["name/693",[108,56.611]],["parent/693",[388,3.21]],["name/694",[109,56.611]],["parent/694",[388,3.21]],["name/695",[110,56.611]],["parent/695",[388,3.21]],["name/696",[111,56.611]],["parent/696",[388,3.21]],["name/697",[112,56.611]],["parent/697",[388,3.21]],["name/698",[113,56.611]],["parent/698",[388,3.21]],["name/699",[389,72.705]],["parent/699",[388,3.21]],["name/700",[390,72.705]],["parent/700",[388,3.21]],["name/701",[114,56.611]],["parent/701",[388,3.21]],["name/702",[115,56.611]],["parent/702",[388,3.21]],["name/703",[116,56.611]],["parent/703",[388,3.21]],["name/704",[117,56.611]],["parent/704",[388,3.21]],["name/705",[118,56.611]],["parent/705",[388,3.21]],["name/706",[119,56.611]],["parent/706",[388,3.21]],["name/707",[120,56.611]],["parent/707",[388,3.21]],["name/708",[121,56.611]],["parent/708",[388,3.21]],["name/709",[122,64.232]],["parent/709",[388,3.21]],["name/710",[123,64.232]],["parent/710",[388,3.21]],["name/711",[124,53.246]],["parent/711",[388,3.21]],["name/712",[125,53.246]],["parent/712",[388,3.21]],["name/713",[126,64.232]],["parent/713",[388,3.21]],["name/714",[127,64.232]],["parent/714",[388,3.21]],["name/715",[128,56.611]],["parent/715",[388,3.21]],["name/716",[129,56.611]],["parent/716",[388,3.21]],["name/717",[130,56.611]],["parent/717",[388,3.21]],["name/718",[131,56.611]],["parent/718",[388,3.21]],["name/719",[132,56.611]],["parent/719",[388,3.21]],["name/720",[133,56.611]],["parent/720",[388,3.21]],["name/721",[134,56.611]],["parent/721",[388,3.21]],["name/722",[135,56.611]],["parent/722",[388,3.21]],["name/723",[136,56.611]],["parent/723",[388,3.21]],["name/724",[137,56.611]],["parent/724",[388,3.21]],["name/725",[138,64.232]],["parent/725",[388,3.21]],["name/726",[139,64.232]],["parent/726",[388,3.21]],["name/727",[140,54.247]],["parent/727",[388,3.21]],["name/728",[141,54.247]],["parent/728",[388,3.21]],["name/729",[251,67.597]],["parent/729",[388,3.21]],["name/730",[252,67.597]],["parent/730",[388,3.21]],["name/731",[253,67.597]],["parent/731",[388,3.21]],["name/732",[254,67.597]],["parent/732",[388,3.21]],["name/733",[142,54.247]],["parent/733",[388,3.21]],["name/734",[143,54.247]],["parent/734",[388,3.21]],["name/735",[144,54.247]],["parent/735",[388,3.21]],["name/736",[145,54.247]],["parent/736",[388,3.21]],["name/737",[146,54.247]],["parent/737",[388,3.21]],["name/738",[147,54.247]],["parent/738",[388,3.21]],["name/739",[148,56.611]],["parent/739",[388,3.21]],["name/740",[149,56.611]],["parent/740",[388,3.21]],["name/741",[150,49.352]],["parent/741",[388,3.21]],["name/742",[151,54.247]],["parent/742",[388,3.21]],["name/743",[152,56.611]],["parent/743",[388,3.21]],["name/744",[153,56.611]],["parent/744",[388,3.21]],["name/745",[154,56.611]],["parent/745",[388,3.21]],["name/746",[155,56.611]],["parent/746",[388,3.21]],["name/747",[156,56.611]],["parent/747",[388,3.21]],["name/748",[157,56.611]],["parent/748",[388,3.21]],["name/749",[158,56.611]],["parent/749",[388,3.21]],["name/750",[159,56.611]],["parent/750",[388,3.21]],["name/751",[160,56.611]],["parent/751",[388,3.21]],["name/752",[161,56.611]],["parent/752",[388,3.21]],["name/753",[162,56.611]],["parent/753",[388,3.21]],["name/754",[163,56.611]],["parent/754",[388,3.21]],["name/755",[164,56.611]],["parent/755",[388,3.21]],["name/756",[165,56.611]],["parent/756",[388,3.21]],["name/757",[166,54.247]],["parent/757",[388,3.21]],["name/758",[167,54.247]],["parent/758",[388,3.21]],["name/759",[168,61.719]],["parent/759",[388,3.21]],["name/760",[169,61.719]],["parent/760",[388,3.21]],["name/761",[170,56.611]],["parent/761",[388,3.21]],["name/762",[171,56.611]],["parent/762",[388,3.21]],["name/763",[172,56.611]],["parent/763",[388,3.21]],["name/764",[173,56.611]],["parent/764",[388,3.21]],["name/765",[174,56.611]],["parent/765",[388,3.21]],["name/766",[175,56.611]],["parent/766",[388,3.21]],["name/767",[391,33.257]],["parent/767",[]],["name/768",[58,41.948]],["parent/768",[391,3.259]],["name/769",[237,64.232]],["parent/769",[391,3.259]],["name/770",[238,64.232]],["parent/770",[391,3.259]],["name/771",[239,64.232]],["parent/771",[391,3.259]],["name/772",[240,64.232]],["parent/772",[391,3.259]],["name/773",[354,67.597]],["parent/773",[391,3.259]],["name/774",[355,67.597]],["parent/774",[391,3.259]],["name/775",[105,56.611]],["parent/775",[391,3.259]],["name/776",[106,56.611]],["parent/776",[391,3.259]],["name/777",[107,56.611]],["parent/777",[391,3.259]],["name/778",[108,56.611]],["parent/778",[391,3.259]],["name/779",[109,56.611]],["parent/779",[391,3.259]],["name/780",[110,56.611]],["parent/780",[391,3.259]],["name/781",[111,56.611]],["parent/781",[391,3.259]],["name/782",[112,56.611]],["parent/782",[391,3.259]],["name/783",[113,56.611]],["parent/783",[391,3.259]],["name/784",[230,55.359]],["parent/784",[391,3.259]],["name/785",[231,55.359]],["parent/785",[391,3.259]],["name/786",[114,56.611]],["parent/786",[391,3.259]],["name/787",[115,56.611]],["parent/787",[391,3.259]],["name/788",[116,56.611]],["parent/788",[391,3.259]],["name/789",[117,56.611]],["parent/789",[391,3.259]],["name/790",[118,56.611]],["parent/790",[391,3.259]],["name/791",[119,56.611]],["parent/791",[391,3.259]],["name/792",[120,56.611]],["parent/792",[391,3.259]],["name/793",[121,56.611]],["parent/793",[391,3.259]],["name/794",[124,53.246]],["parent/794",[391,3.259]],["name/795",[125,53.246]],["parent/795",[391,3.259]],["name/796",[128,56.611]],["parent/796",[391,3.259]],["name/797",[129,56.611]],["parent/797",[391,3.259]],["name/798",[130,56.611]],["parent/798",[391,3.259]],["name/799",[131,56.611]],["parent/799",[391,3.259]],["name/800",[132,56.611]],["parent/800",[391,3.259]],["name/801",[133,56.611]],["parent/801",[391,3.259]],["name/802",[134,56.611]],["parent/802",[391,3.259]],["name/803",[135,56.611]],["parent/803",[391,3.259]],["name/804",[136,56.611]],["parent/804",[391,3.259]],["name/805",[137,56.611]],["parent/805",[391,3.259]],["name/806",[232,56.611]],["parent/806",[391,3.259]],["name/807",[233,56.611]],["parent/807",[391,3.259]],["name/808",[140,54.247]],["parent/808",[391,3.259]],["name/809",[141,54.247]],["parent/809",[391,3.259]],["name/810",[142,54.247]],["parent/810",[391,3.259]],["name/811",[143,54.247]],["parent/811",[391,3.259]],["name/812",[144,54.247]],["parent/812",[391,3.259]],["name/813",[145,54.247]],["parent/813",[391,3.259]],["name/814",[146,54.247]],["parent/814",[391,3.259]],["name/815",[147,54.247]],["parent/815",[391,3.259]],["name/816",[368,67.597]],["parent/816",[391,3.259]],["name/817",[369,67.597]],["parent/817",[391,3.259]],["name/818",[148,56.611]],["parent/818",[391,3.259]],["name/819",[149,56.611]],["parent/819",[391,3.259]],["name/820",[150,49.352]],["parent/820",[391,3.259]],["name/821",[151,54.247]],["parent/821",[391,3.259]],["name/822",[152,56.611]],["parent/822",[391,3.259]],["name/823",[153,56.611]],["parent/823",[391,3.259]],["name/824",[154,56.611]],["parent/824",[391,3.259]],["name/825",[155,56.611]],["parent/825",[391,3.259]],["name/826",[156,56.611]],["parent/826",[391,3.259]],["name/827",[157,56.611]],["parent/827",[391,3.259]],["name/828",[158,56.611]],["parent/828",[391,3.259]],["name/829",[159,56.611]],["parent/829",[391,3.259]],["name/830",[160,56.611]],["parent/830",[391,3.259]],["name/831",[161,56.611]],["parent/831",[391,3.259]],["name/832",[162,56.611]],["parent/832",[391,3.259]],["name/833",[163,56.611]],["parent/833",[391,3.259]],["name/834",[164,56.611]],["parent/834",[391,3.259]],["name/835",[165,56.611]],["parent/835",[391,3.259]],["name/836",[166,54.247]],["parent/836",[391,3.259]],["name/837",[167,54.247]],["parent/837",[391,3.259]],["name/838",[170,56.611]],["parent/838",[391,3.259]],["name/839",[171,56.611]],["parent/839",[391,3.259]],["name/840",[172,56.611]],["parent/840",[391,3.259]],["name/841",[173,56.611]],["parent/841",[391,3.259]],["name/842",[174,56.611]],["parent/842",[391,3.259]],["name/843",[175,56.611]],["parent/843",[391,3.259]],["name/844",[392,50.019]],["parent/844",[]],["name/845",[58,41.948]],["parent/845",[392,4.901]],["name/846",[124,53.246]],["parent/846",[392,4.901]],["name/847",[125,53.246]],["parent/847",[392,4.901]],["name/848",[140,54.247]],["parent/848",[392,4.901]],["name/849",[141,54.247]],["parent/849",[392,4.901]],["name/850",[142,54.247]],["parent/850",[392,4.901]],["name/851",[143,54.247]],["parent/851",[392,4.901]],["name/852",[144,54.247]],["parent/852",[392,4.901]],["name/853",[145,54.247]],["parent/853",[392,4.901]],["name/854",[146,54.247]],["parent/854",[392,4.901]],["name/855",[147,54.247]],["parent/855",[392,4.901]],["name/856",[166,54.247]],["parent/856",[392,4.901]],["name/857",[167,54.247]],["parent/857",[392,4.901]],["name/858",[393,44.773]],["parent/858",[]],["name/859",[58,41.948]],["parent/859",[393,4.387]],["name/860",[394,72.705]],["parent/860",[393,4.387]],["name/861",[395,72.705]],["parent/861",[393,4.387]],["name/862",[396,72.705]],["parent/862",[393,4.387]],["name/863",[397,72.705]],["parent/863",[393,4.387]],["name/864",[398,72.705]],["parent/864",[393,4.387]],["name/865",[399,72.705]],["parent/865",[393,4.387]],["name/866",[400,72.705]],["parent/866",[393,4.387]],["name/867",[401,72.705]],["parent/867",[393,4.387]],["name/868",[402,72.705]],["parent/868",[393,4.387]],["name/869",[403,72.705]],["parent/869",[393,4.387]],["name/870",[404,72.705]],["parent/870",[393,4.387]],["name/871",[405,72.705]],["parent/871",[393,4.387]],["name/872",[406,72.705]],["parent/872",[393,4.387]],["name/873",[407,72.705]],["parent/873",[393,4.387]],["name/874",[408,72.705]],["parent/874",[393,4.387]],["name/875",[409,72.705]],["parent/875",[393,4.387]],["name/876",[410,72.705]],["parent/876",[393,4.387]],["name/877",[411,72.705]],["parent/877",[393,4.387]],["name/878",[412,72.705]],["parent/878",[393,4.387]],["name/879",[413,72.705]],["parent/879",[393,4.387]],["name/880",[414,72.705]],["parent/880",[393,4.387]],["name/881",[415,72.705]],["parent/881",[393,4.387]],["name/882",[416,61.719]],["parent/882",[]],["name/883",[58,41.948]],["parent/883",[416,6.048]],["name/884",[417,72.705]],["parent/884",[416,6.048]],["name/885",[418,72.705]],["parent/885",[416,6.048]],["name/886",[419,43.261]],["parent/886",[]],["name/887",[58,41.948]],["parent/887",[419,4.239]],["name/888",[88,67.597]],["parent/888",[419,4.239]],["name/889",[89,67.597]],["parent/889",[419,4.239]],["name/890",[420,72.705]],["parent/890",[419,4.239]],["name/891",[421,72.705]],["parent/891",[419,4.239]],["name/892",[422,72.705]],["parent/892",[419,4.239]],["name/893",[90,67.597]],["parent/893",[419,4.239]],["name/894",[91,67.597]],["parent/894",[419,4.239]],["name/895",[92,64.232]],["parent/895",[419,4.239]],["name/896",[93,64.232]],["parent/896",[419,4.239]],["name/897",[423,72.705]],["parent/897",[419,4.239]],["name/898",[424,72.705]],["parent/898",[419,4.239]],["name/899",[425,72.705]],["parent/899",[419,4.239]],["name/900",[426,72.705]],["parent/900",[419,4.239]],["name/901",[94,64.232]],["parent/901",[419,4.239]],["name/902",[95,64.232]],["parent/902",[419,4.239]],["name/903",[427,72.705]],["parent/903",[419,4.239]],["name/904",[428,72.705]],["parent/904",[419,4.239]],["name/905",[98,67.597]],["parent/905",[419,4.239]],["name/906",[99,67.597]],["parent/906",[419,4.239]],["name/907",[429,64.232]],["parent/907",[419,4.239]],["name/908",[100,67.597]],["parent/908",[419,4.239]],["name/909",[101,67.597]],["parent/909",[419,4.239]],["name/910",[430,72.705]],["parent/910",[419,4.239]],["name/911",[431,72.705]],["parent/911",[419,4.239]],["name/912",[432,72.705]],["parent/912",[419,4.239]],["name/913",[433,72.705]],["parent/913",[419,4.239]],["name/914",[434,50.019]],["parent/914",[]],["name/915",[58,41.948]],["parent/915",[434,4.901]],["name/916",[435,72.705]],["parent/916",[434,4.901]],["name/917",[436,67.597]],["parent/917",[434,4.901]],["name/918",[437,72.705]],["parent/918",[434,4.901]],["name/919",[438,72.705]],["parent/919",[434,4.901]],["name/920",[439,67.597]],["parent/920",[434,4.901]],["name/921",[440,72.705]],["parent/921",[434,4.901]],["name/922",[441,72.705]],["parent/922",[434,4.901]],["name/923",[442,72.705]],["parent/923",[434,4.901]],["name/924",[443,72.705]],["parent/924",[434,4.901]],["name/925",[444,72.705]],["parent/925",[434,4.901]],["name/926",[445,72.705]],["parent/926",[434,4.901]],["name/927",[446,72.705]],["parent/927",[434,4.901]],["name/928",[447,58.042]],["parent/928",[]],["name/929",[58,41.948]],["parent/929",[447,5.687]],["name/930",[436,67.597]],["parent/930",[447,5.687]],["name/931",[448,72.705]],["parent/931",[447,5.687]],["name/932",[439,67.597]],["parent/932",[447,5.687]],["name/933",[449,72.705]],["parent/933",[447,5.687]],["name/934",[450,55.359]],["parent/934",[]],["name/935",[58,41.948]],["parent/935",[450,5.425]],["name/936",[379,64.232]],["parent/936",[450,5.425]],["name/937",[380,64.232]],["parent/937",[450,5.425]],["name/938",[381,64.232]],["parent/938",[450,5.425]],["name/939",[382,64.232]],["parent/939",[450,5.425]],["name/940",[383,64.232]],["parent/940",[450,5.425]],["name/941",[384,64.232]],["parent/941",[450,5.425]],["name/942",[451,51.503]],["parent/942",[]],["name/943",[58,41.948]],["parent/943",[451,5.047]],["name/944",[230,55.359]],["parent/944",[451,5.047]],["name/945",[231,55.359]],["parent/945",[451,5.047]],["name/946",[379,64.232]],["parent/946",[451,5.047]],["name/947",[380,64.232]],["parent/947",[451,5.047]],["name/948",[232,56.611]],["parent/948",[451,5.047]],["name/949",[233,56.611]],["parent/949",[451,5.047]],["name/950",[452,72.705]],["parent/950",[451,5.047]],["name/951",[453,72.705]],["parent/951",[451,5.047]],["name/952",[454,72.705]],["parent/952",[451,5.047]],["name/953",[455,72.705]],["parent/953",[451,5.047]],["name/954",[456,52.337]],["parent/954",[]],["name/955",[58,41.948]],["parent/955",[456,5.128]],["name/956",[199,64.232]],["parent/956",[456,5.128]],["name/957",[230,55.359]],["parent/957",[456,5.128]],["name/958",[231,55.359]],["parent/958",[456,5.128]],["name/959",[232,56.611]],["parent/959",[456,5.128]],["name/960",[233,56.611]],["parent/960",[456,5.128]],["name/961",[150,49.352]],["parent/961",[456,5.128]],["name/962",[151,54.247]],["parent/962",[456,5.128]],["name/963",[457,67.597]],["parent/963",[456,5.128]],["name/964",[458,67.597]],["parent/964",[456,5.128]],["name/965",[459,54.247]],["parent/965",[]],["name/966",[58,41.948]],["parent/966",[459,5.316]],["name/967",[460,72.705]],["parent/967",[459,5.316]],["name/968",[461,72.705]],["parent/968",[459,5.316]],["name/969",[462,72.705]],["parent/969",[459,5.316]],["name/970",[463,72.705]],["parent/970",[459,5.316]],["name/971",[464,72.705]],["parent/971",[459,5.316]],["name/972",[465,72.705]],["parent/972",[459,5.316]],["name/973",[466,34.94]],["parent/973",[]],["name/974",[58,41.948]],["parent/974",[466,3.424]],["name/975",[105,56.611]],["parent/975",[466,3.424]],["name/976",[106,56.611]],["parent/976",[466,3.424]],["name/977",[107,56.611]],["parent/977",[466,3.424]],["name/978",[108,56.611]],["parent/978",[466,3.424]],["name/979",[109,56.611]],["parent/979",[466,3.424]],["name/980",[110,56.611]],["parent/980",[466,3.424]],["name/981",[111,56.611]],["parent/981",[466,3.424]],["name/982",[112,56.611]],["parent/982",[466,3.424]],["name/983",[113,56.611]],["parent/983",[466,3.424]],["name/984",[114,56.611]],["parent/984",[466,3.424]],["name/985",[115,56.611]],["parent/985",[466,3.424]],["name/986",[116,56.611]],["parent/986",[466,3.424]],["name/987",[117,56.611]],["parent/987",[466,3.424]],["name/988",[118,56.611]],["parent/988",[466,3.424]],["name/989",[119,56.611]],["parent/989",[466,3.424]],["name/990",[120,56.611]],["parent/990",[466,3.424]],["name/991",[121,56.611]],["parent/991",[466,3.424]],["name/992",[124,53.246]],["parent/992",[466,3.424]],["name/993",[125,53.246]],["parent/993",[466,3.424]],["name/994",[128,56.611]],["parent/994",[466,3.424]],["name/995",[129,56.611]],["parent/995",[466,3.424]],["name/996",[130,56.611]],["parent/996",[466,3.424]],["name/997",[131,56.611]],["parent/997",[466,3.424]],["name/998",[132,56.611]],["parent/998",[466,3.424]],["name/999",[133,56.611]],["parent/999",[466,3.424]],["name/1000",[134,56.611]],["parent/1000",[466,3.424]],["name/1001",[135,56.611]],["parent/1001",[466,3.424]],["name/1002",[136,56.611]],["parent/1002",[466,3.424]],["name/1003",[137,56.611]],["parent/1003",[466,3.424]],["name/1004",[140,54.247]],["parent/1004",[466,3.424]],["name/1005",[141,54.247]],["parent/1005",[466,3.424]],["name/1006",[142,54.247]],["parent/1006",[466,3.424]],["name/1007",[143,54.247]],["parent/1007",[466,3.424]],["name/1008",[144,54.247]],["parent/1008",[466,3.424]],["name/1009",[145,54.247]],["parent/1009",[466,3.424]],["name/1010",[146,54.247]],["parent/1010",[466,3.424]],["name/1011",[147,54.247]],["parent/1011",[466,3.424]],["name/1012",[148,56.611]],["parent/1012",[466,3.424]],["name/1013",[149,56.611]],["parent/1013",[466,3.424]],["name/1014",[150,49.352]],["parent/1014",[466,3.424]],["name/1015",[151,54.247]],["parent/1015",[466,3.424]],["name/1016",[152,56.611]],["parent/1016",[466,3.424]],["name/1017",[153,56.611]],["parent/1017",[466,3.424]],["name/1018",[154,56.611]],["parent/1018",[466,3.424]],["name/1019",[155,56.611]],["parent/1019",[466,3.424]],["name/1020",[156,56.611]],["parent/1020",[466,3.424]],["name/1021",[157,56.611]],["parent/1021",[466,3.424]],["name/1022",[158,56.611]],["parent/1022",[466,3.424]],["name/1023",[159,56.611]],["parent/1023",[466,3.424]],["name/1024",[160,56.611]],["parent/1024",[466,3.424]],["name/1025",[161,56.611]],["parent/1025",[466,3.424]],["name/1026",[162,56.611]],["parent/1026",[466,3.424]],["name/1027",[163,56.611]],["parent/1027",[466,3.424]],["name/1028",[164,56.611]],["parent/1028",[466,3.424]],["name/1029",[165,56.611]],["parent/1029",[466,3.424]],["name/1030",[166,54.247]],["parent/1030",[466,3.424]],["name/1031",[167,54.247]],["parent/1031",[466,3.424]],["name/1032",[170,56.611]],["parent/1032",[466,3.424]],["name/1033",[171,56.611]],["parent/1033",[466,3.424]],["name/1034",[172,56.611]],["parent/1034",[466,3.424]],["name/1035",[173,56.611]],["parent/1035",[466,3.424]],["name/1036",[174,56.611]],["parent/1036",[466,3.424]],["name/1037",[175,56.611]],["parent/1037",[466,3.424]],["name/1038",[467,36.418]],["parent/1038",[]],["name/1039",[58,41.948]],["parent/1039",[467,3.568]],["name/1040",[468,72.705]],["parent/1040",[467,3.568]],["name/1041",[469,72.705]],["parent/1041",[467,3.568]],["name/1042",[470,72.705]],["parent/1042",[467,3.568]],["name/1043",[471,72.705]],["parent/1043",[467,3.568]],["name/1044",[472,72.705]],["parent/1044",[467,3.568]],["name/1045",[473,72.705]],["parent/1045",[467,3.568]],["name/1046",[474,72.705]],["parent/1046",[467,3.568]],["name/1047",[475,72.705]],["parent/1047",[467,3.568]],["name/1048",[241,67.597]],["parent/1048",[467,3.568]],["name/1049",[242,67.597]],["parent/1049",[467,3.568]],["name/1050",[243,67.597]],["parent/1050",[467,3.568]],["name/1051",[244,67.597]],["parent/1051",[467,3.568]],["name/1052",[476,72.705]],["parent/1052",[467,3.568]],["name/1053",[477,72.705]],["parent/1053",[467,3.568]],["name/1054",[245,67.597]],["parent/1054",[467,3.568]],["name/1055",[246,67.597]],["parent/1055",[467,3.568]],["name/1056",[247,67.597]],["parent/1056",[467,3.568]],["name/1057",[248,67.597]],["parent/1057",[467,3.568]],["name/1058",[249,64.232]],["parent/1058",[467,3.568]],["name/1059",[250,67.597]],["parent/1059",[467,3.568]],["name/1060",[478,72.705]],["parent/1060",[467,3.568]],["name/1061",[479,72.705]],["parent/1061",[467,3.568]],["name/1062",[480,72.705]],["parent/1062",[467,3.568]],["name/1063",[481,72.705]],["parent/1063",[467,3.568]],["name/1064",[482,72.705]],["parent/1064",[467,3.568]],["name/1065",[483,72.705]],["parent/1065",[467,3.568]],["name/1066",[484,72.705]],["parent/1066",[467,3.568]],["name/1067",[485,72.705]],["parent/1067",[467,3.568]],["name/1068",[486,72.705]],["parent/1068",[467,3.568]],["name/1069",[487,72.705]],["parent/1069",[467,3.568]],["name/1070",[488,72.705]],["parent/1070",[467,3.568]],["name/1071",[489,72.705]],["parent/1071",[467,3.568]],["name/1072",[490,72.705]],["parent/1072",[467,3.568]],["name/1073",[491,72.705]],["parent/1073",[467,3.568]],["name/1074",[492,72.705]],["parent/1074",[467,3.568]],["name/1075",[493,72.705]],["parent/1075",[467,3.568]],["name/1076",[494,72.705]],["parent/1076",[467,3.568]],["name/1077",[495,72.705]],["parent/1077",[467,3.568]],["name/1078",[217,67.597]],["parent/1078",[467,3.568]],["name/1079",[218,67.597]],["parent/1079",[467,3.568]],["name/1080",[219,67.597]],["parent/1080",[467,3.568]],["name/1081",[220,67.597]],["parent/1081",[467,3.568]],["name/1082",[496,72.705]],["parent/1082",[467,3.568]],["name/1083",[497,72.705]],["parent/1083",[467,3.568]],["name/1084",[498,72.705]],["parent/1084",[467,3.568]],["name/1085",[499,72.705]],["parent/1085",[467,3.568]],["name/1086",[500,72.705]],["parent/1086",[467,3.568]],["name/1087",[501,72.705]],["parent/1087",[467,3.568]],["name/1088",[502,72.705]],["parent/1088",[467,3.568]],["name/1089",[503,72.705]],["parent/1089",[467,3.568]],["name/1090",[504,72.705]],["parent/1090",[467,3.568]],["name/1091",[505,72.705]],["parent/1091",[467,3.568]],["name/1092",[227,67.597]],["parent/1092",[467,3.568]],["name/1093",[228,67.597]],["parent/1093",[467,3.568]],["name/1094",[506,48.726]],["parent/1094",[]],["name/1095",[58,41.948]],["parent/1095",[506,4.775]],["name/1096",[199,64.232]],["parent/1096",[506,4.775]],["name/1097",[230,55.359]],["parent/1097",[506,4.775]],["name/1098",[231,55.359]],["parent/1098",[506,4.775]],["name/1099",[232,56.611]],["parent/1099",[506,4.775]],["name/1100",[233,56.611]],["parent/1100",[506,4.775]],["name/1101",[150,49.352]],["parent/1101",[506,4.775]],["name/1102",[151,54.247]],["parent/1102",[506,4.775]],["name/1103",[507,72.705]],["parent/1103",[506,4.775]],["name/1104",[508,72.705]],["parent/1104",[506,4.775]],["name/1105",[509,72.705]],["parent/1105",[506,4.775]],["name/1106",[457,67.597]],["parent/1106",[506,4.775]],["name/1107",[458,67.597]],["parent/1107",[506,4.775]],["name/1108",[510,72.705]],["parent/1108",[506,4.775]],["name/1109",[511,72.705]],["parent/1109",[506,4.775]],["name/1110",[512,48.138]],["parent/1110",[]],["name/1111",[513,64.232]],["parent/1111",[512,4.717]],["name/1112",[514,59.713]],["parent/1112",[]],["name/1113",[515,64.232]],["parent/1113",[514,5.851]],["name/1114",[516,64.232]],["parent/1114",[514,5.851]],["name/1115",[517,64.232]],["parent/1115",[514,5.851]],["name/1116",[518,64.232]],["parent/1116",[514,5.851]],["name/1117",[519,45.625]],["parent/1117",[]],["name/1118",[520,53.246]],["parent/1118",[519,4.471]],["name/1119",[521,54.247]],["parent/1119",[519,4.471]],["name/1120",[522,46.08]],["parent/1120",[519,4.471]],["name/1121",[523,49.352]],["parent/1121",[519,4.471]],["name/1122",[512,48.138]],["parent/1122",[519,4.471]],["name/1123",[524,49.352]],["parent/1123",[519,4.471]],["name/1124",[525,49.352]],["parent/1124",[519,4.471]],["name/1125",[526,48.726]],["parent/1125",[519,4.471]],["name/1126",[527,52.337]],["parent/1126",[519,4.471]],["name/1127",[528,53.246]],["parent/1127",[519,4.471]],["name/1128",[529,54.247]],["parent/1128",[519,4.471]],["name/1129",[530,45.19]],["parent/1129",[519,4.471]],["name/1130",[531,49.352]],["parent/1130",[519,4.471]],["name/1131",[532,48.138]],["parent/1131",[519,4.471]],["name/1132",[533,72.705]],["parent/1132",[519,4.471]],["name/1133",[534,72.705]],["parent/1133",[519,4.471]],["name/1134",[535,72.705]],["parent/1134",[519,4.471]],["name/1135",[536,72.705]],["parent/1135",[519,4.471]],["name/1136",[537,72.705]],["parent/1136",[519,4.471]],["name/1137",[538,72.705]],["parent/1137",[519,4.471]],["name/1138",[539,72.705]],["parent/1138",[519,4.471]],["name/1139",[540,53.246]],["parent/1139",[]],["name/1140",[25,56.611]],["parent/1140",[540,5.217]],["name/1141",[28,59.713]],["parent/1141",[540,5.217]],["name/1142",[541,67.597]],["parent/1142",[540,5.217]],["name/1143",[542,61.719]],["parent/1143",[540,5.217]],["name/1144",[543,67.597]],["parent/1144",[540,5.217]],["name/1145",[544,67.597]],["parent/1145",[540,5.217]],["name/1146",[545,67.597]],["parent/1146",[540,5.217]],["name/1147",[546,64.232]],["parent/1147",[540,5.217]],["name/1148",[547,58.042]],["parent/1148",[540,5.217]],["name/1149",[548,34.204]],["parent/1149",[]],["name/1150",[548,34.204]],["parent/1150",[548,3.352]],["name/1151",[549,67.597]],["parent/1151",[548,3.352]],["name/1152",[550,72.705]],["parent/1152",[548,3.352]],["name/1153",[551,72.705]],["parent/1153",[548,3.352]],["name/1154",[552,72.705]],["parent/1154",[548,3.352]],["name/1155",[553,72.705]],["parent/1155",[548,3.352]],["name/1156",[554,72.705]],["parent/1156",[548,3.352]],["name/1157",[555,72.705]],["parent/1157",[548,3.352]],["name/1158",[556,72.705]],["parent/1158",[548,3.352]],["name/1159",[557,72.705]],["parent/1159",[548,3.352]],["name/1160",[558,72.705]],["parent/1160",[548,3.352]],["name/1161",[559,72.705]],["parent/1161",[548,3.352]],["name/1162",[560,72.705]],["parent/1162",[548,3.352]],["name/1163",[561,72.705]],["parent/1163",[548,3.352]],["name/1164",[562,72.705]],["parent/1164",[548,3.352]],["name/1165",[563,72.705]],["parent/1165",[548,3.352]],["name/1166",[564,72.705]],["parent/1166",[548,3.352]],["name/1167",[565,72.705]],["parent/1167",[548,3.352]],["name/1168",[566,72.705]],["parent/1168",[548,3.352]],["name/1169",[567,72.705]],["parent/1169",[548,3.352]],["name/1170",[568,72.705]],["parent/1170",[548,3.352]],["name/1171",[569,72.705]],["parent/1171",[548,3.352]],["name/1172",[570,72.705]],["parent/1172",[548,3.352]],["name/1173",[571,72.705]],["parent/1173",[548,3.352]],["name/1174",[572,72.705]],["parent/1174",[548,3.352]],["name/1175",[573,72.705]],["parent/1175",[548,3.352]],["name/1176",[574,72.705]],["parent/1176",[548,3.352]],["name/1177",[575,72.705]],["parent/1177",[548,3.352]],["name/1178",[576,72.705]],["parent/1178",[548,3.352]],["name/1179",[577,72.705]],["parent/1179",[548,3.352]],["name/1180",[578,72.705]],["parent/1180",[548,3.352]],["name/1181",[579,72.705]],["parent/1181",[548,3.352]],["name/1182",[580,72.705]],["parent/1182",[548,3.352]],["name/1183",[581,72.705]],["parent/1183",[548,3.352]],["name/1184",[582,72.705]],["parent/1184",[548,3.352]],["name/1185",[583,72.705]],["parent/1185",[548,3.352]],["name/1186",[584,72.705]],["parent/1186",[548,3.352]],["name/1187",[585,72.705]],["parent/1187",[548,3.352]],["name/1188",[586,72.705]],["parent/1188",[548,3.352]],["name/1189",[587,72.705]],["parent/1189",[548,3.352]],["name/1190",[588,72.705]],["parent/1190",[548,3.352]],["name/1191",[589,72.705]],["parent/1191",[548,3.352]],["name/1192",[590,72.705]],["parent/1192",[548,3.352]],["name/1193",[591,72.705]],["parent/1193",[548,3.352]],["name/1194",[592,72.705]],["parent/1194",[548,3.352]],["name/1195",[593,72.705]],["parent/1195",[548,3.352]],["name/1196",[594,72.705]],["parent/1196",[548,3.352]],["name/1197",[595,72.705]],["parent/1197",[548,3.352]],["name/1198",[596,72.705]],["parent/1198",[548,3.352]],["name/1199",[597,72.705]],["parent/1199",[548,3.352]],["name/1200",[598,72.705]],["parent/1200",[548,3.352]],["name/1201",[599,72.705]],["parent/1201",[548,3.352]],["name/1202",[600,72.705]],["parent/1202",[548,3.352]],["name/1203",[601,72.705]],["parent/1203",[548,3.352]],["name/1204",[602,72.705]],["parent/1204",[548,3.352]],["name/1205",[603,72.705]],["parent/1205",[548,3.352]],["name/1206",[604,72.705]],["parent/1206",[548,3.352]],["name/1207",[605,72.705]],["parent/1207",[548,3.352]],["name/1208",[606,72.705]],["parent/1208",[548,3.352]],["name/1209",[607,72.705]],["parent/1209",[548,3.352]],["name/1210",[608,72.705]],["parent/1210",[548,3.352]],["name/1211",[609,72.705]],["parent/1211",[548,3.352]],["name/1212",[610,64.232]],["parent/1212",[548,3.352]],["name/1213",[611,72.705]],["parent/1213",[548,3.352]],["name/1214",[612,72.705]],["parent/1214",[548,3.352]],["name/1215",[613,72.705]],["parent/1215",[548,3.352]],["name/1216",[614,72.705]],["parent/1216",[548,3.352]],["name/1217",[615,72.705]],["parent/1217",[548,3.352]],["name/1218",[616,43.989]],["parent/1218",[]],["name/1219",[617,61.719]],["parent/1219",[616,4.31]],["name/1220",[618,72.705]],["parent/1220",[616,4.31]],["name/1221",[429,64.232]],["parent/1221",[616,4.31]],["name/1222",[619,72.705]],["parent/1222",[616,4.31]],["name/1223",[92,64.232]],["parent/1223",[616,4.31]],["name/1224",[93,64.232]],["parent/1224",[616,4.31]],["name/1225",[620,72.705]],["parent/1225",[616,4.31]],["name/1226",[621,72.705]],["parent/1226",[616,4.31]],["name/1227",[94,64.232]],["parent/1227",[616,4.31]],["name/1228",[95,64.232]],["parent/1228",[616,4.31]],["name/1229",[622,72.705]],["parent/1229",[616,4.31]],["name/1230",[623,72.705]],["parent/1230",[616,4.31]],["name/1231",[624,72.705]],["parent/1231",[616,4.31]],["name/1232",[625,72.705]],["parent/1232",[616,4.31]],["name/1233",[626,72.705]],["parent/1233",[616,4.31]],["name/1234",[627,72.705]],["parent/1234",[616,4.31]],["name/1235",[628,72.705]],["parent/1235",[616,4.31]],["name/1236",[629,72.705]],["parent/1236",[616,4.31]],["name/1237",[630,72.705]],["parent/1237",[616,4.31]],["name/1238",[631,72.705]],["parent/1238",[616,4.31]],["name/1239",[632,72.705]],["parent/1239",[616,4.31]],["name/1240",[633,72.705]],["parent/1240",[616,4.31]],["name/1241",[634,72.705]],["parent/1241",[616,4.31]],["name/1242",[635,72.705]],["parent/1242",[616,4.31]],["name/1243",[636,47.582]],["parent/1243",[]],["name/1244",[617,61.719]],["parent/1244",[636,4.662]],["name/1245",[616,43.989]],["parent/1245",[636,4.662]],["name/1246",[637,72.705]],["parent/1246",[636,4.662]],["name/1247",[638,72.705]],["parent/1247",[636,4.662]],["name/1248",[639,72.705]],["parent/1248",[636,4.662]],["name/1249",[640,72.705]],["parent/1249",[636,4.662]],["name/1250",[641,72.705]],["parent/1250",[636,4.662]],["name/1251",[642,72.705]],["parent/1251",[636,4.662]],["name/1252",[643,72.705]],["parent/1252",[636,4.662]],["name/1253",[644,72.705]],["parent/1253",[636,4.662]],["name/1254",[645,72.705]],["parent/1254",[636,4.662]],["name/1255",[646,72.705]],["parent/1255",[636,4.662]],["name/1256",[647,72.705]],["parent/1256",[636,4.662]],["name/1257",[648,72.705]],["parent/1257",[636,4.662]],["name/1258",[649,72.705]],["parent/1258",[636,4.662]],["name/1259",[650,72.705]],["parent/1259",[636,4.662]],["name/1260",[651,72.705]],["parent/1260",[636,4.662]],["name/1261",[652,42.26]],["parent/1261",[]],["name/1262",[653,64.232]],["parent/1262",[652,4.141]],["name/1263",[654,64.232]],["parent/1263",[652,4.141]],["name/1264",[518,64.232]],["parent/1264",[652,4.141]],["name/1265",[655,67.597]],["parent/1265",[652,4.141]],["name/1266",[656,67.597]],["parent/1266",[652,4.141]],["name/1267",[657,67.597]],["parent/1267",[652,4.141]],["name/1268",[658,67.597]],["parent/1268",[652,4.141]],["name/1269",[659,67.597]],["parent/1269",[652,4.141]],["name/1270",[660,67.597]],["parent/1270",[652,4.141]],["name/1271",[661,67.597]],["parent/1271",[652,4.141]],["name/1272",[662,72.705]],["parent/1272",[652,4.141]],["name/1273",[663,72.705]],["parent/1273",[652,4.141]],["name/1274",[664,72.705]],["parent/1274",[652,4.141]],["name/1275",[665,67.597]],["parent/1275",[652,4.141]],["name/1276",[666,67.597]],["parent/1276",[652,4.141]],["name/1277",[667,67.597]],["parent/1277",[652,4.141]],["name/1278",[668,67.597]],["parent/1278",[652,4.141]],["name/1279",[517,64.232]],["parent/1279",[652,4.141]],["name/1280",[515,64.232]],["parent/1280",[652,4.141]],["name/1281",[516,64.232]],["parent/1281",[652,4.141]],["name/1282",[669,67.597]],["parent/1282",[652,4.141]],["name/1283",[670,72.705]],["parent/1283",[652,4.141]],["name/1284",[547,58.042]],["parent/1284",[652,4.141]],["name/1285",[671,42.916]],["parent/1285",[652,4.141]],["name/1286",[672,67.597]],["parent/1286",[652,4.141]],["name/1287",[673,67.597]],["parent/1287",[652,4.141]],["name/1288",[674,61.719]],["parent/1288",[652,4.141]],["name/1289",[675,64.232]],["parent/1289",[652,4.141]],["name/1290",[676,67.597]],["parent/1290",[652,4.141]],["name/1291",[677,67.597]],["parent/1291",[652,4.141]],["name/1292",[678,46.556]],["parent/1292",[]],["name/1293",[679,72.705]],["parent/1293",[678,4.562]],["name/1294",[680,72.705]],["parent/1294",[678,4.562]],["name/1295",[681,72.705]],["parent/1295",[678,4.562]],["name/1296",[682,67.597]],["parent/1296",[678,4.562]],["name/1297",[683,64.232]],["parent/1297",[678,4.562]],["name/1298",[684,72.705]],["parent/1298",[678,4.562]],["name/1299",[685,72.705]],["parent/1299",[678,4.562]],["name/1300",[686,72.705]],["parent/1300",[678,4.562]],["name/1301",[687,72.705]],["parent/1301",[678,4.562]],["name/1302",[688,72.705]],["parent/1302",[678,4.562]],["name/1303",[689,72.705]],["parent/1303",[678,4.562]],["name/1304",[25,56.611]],["parent/1304",[678,4.562]],["name/1305",[28,59.713]],["parent/1305",[678,4.562]],["name/1306",[542,61.719]],["parent/1306",[678,4.562]],["name/1307",[690,72.705]],["parent/1307",[678,4.562]],["name/1308",[691,72.705]],["parent/1308",[678,4.562]],["name/1309",[530,45.19]],["parent/1309",[678,4.562]],["name/1310",[692,72.705]],["parent/1310",[678,4.562]],["name/1311",[693,72.705]],["parent/1311",[678,4.562]],["name/1312",[694,47.582]],["parent/1312",[]],["name/1313",[694,47.582]],["parent/1313",[694,4.662]],["name/1314",[429,64.232]],["parent/1314",[694,4.662]],["name/1315",[383,64.232]],["parent/1315",[694,4.662]],["name/1316",[384,64.232]],["parent/1316",[694,4.662]],["name/1317",[695,72.705]],["parent/1317",[694,4.662]],["name/1318",[696,72.705]],["parent/1318",[694,4.662]],["name/1319",[382,64.232]],["parent/1319",[694,4.662]],["name/1320",[381,64.232]],["parent/1320",[694,4.662]],["name/1321",[697,72.705]],["parent/1321",[694,4.662]],["name/1322",[698,72.705]],["parent/1322",[694,4.662]],["name/1323",[699,72.705]],["parent/1323",[694,4.662]],["name/1324",[700,72.705]],["parent/1324",[694,4.662]],["name/1325",[701,72.705]],["parent/1325",[694,4.662]],["name/1326",[702,72.705]],["parent/1326",[694,4.662]],["name/1327",[703,72.705]],["parent/1327",[694,4.662]],["name/1328",[704,72.705]],["parent/1328",[694,4.662]],["name/1329",[705,55.359]],["parent/1329",[]],["name/1330",[25,56.611]],["parent/1330",[705,5.425]],["name/1331",[706,72.705]],["parent/1331",[705,5.425]],["name/1332",[707,72.705]],["parent/1332",[705,5.425]],["name/1333",[708,72.705]],["parent/1333",[705,5.425]],["name/1334",[709,72.705]],["parent/1334",[705,5.425]],["name/1335",[710,72.705]],["parent/1335",[705,5.425]],["name/1336",[711,72.705]],["parent/1336",[705,5.425]],["name/1337",[712,64.232]],["parent/1337",[]],["name/1338",[713,64.232]],["parent/1338",[712,6.294]],["name/1339",[714,72.705]],["parent/1339",[712,6.294]],["name/1340",[715,47.582]],["parent/1340",[]],["name/1341",[716,54.247]],["parent/1341",[715,4.662]],["name/1342",[522,46.08]],["parent/1342",[715,4.662]],["name/1343",[523,49.352]],["parent/1343",[715,4.662]],["name/1344",[717,61.719]],["parent/1344",[715,4.662]],["name/1345",[713,64.232]],["parent/1345",[715,4.662]],["name/1346",[532,48.138]],["parent/1346",[715,4.662]],["name/1347",[718,56.611]],["parent/1347",[715,4.662]],["name/1348",[719,72.705]],["parent/1348",[715,4.662]],["name/1349",[720,72.705]],["parent/1349",[715,4.662]],["name/1350",[721,72.705]],["parent/1350",[715,4.662]],["name/1351",[722,64.232]],["parent/1351",[715,4.662]],["name/1352",[524,49.352]],["parent/1352",[715,4.662]],["name/1353",[525,49.352]],["parent/1353",[715,4.662]],["name/1354",[531,49.352]],["parent/1354",[715,4.662]],["name/1355",[526,48.726]],["parent/1355",[715,4.662]],["name/1356",[512,48.138]],["parent/1356",[715,4.662]],["name/1357",[530,45.19]],["parent/1357",[715,4.662]],["name/1358",[723,59.713]],["parent/1358",[]],["name/1359",[724,53.246]],["parent/1359",[723,5.851]],["name/1360",[725,72.705]],["parent/1360",[723,5.851]],["name/1361",[717,61.719]],["parent/1361",[723,5.851]],["name/1362",[726,67.597]],["parent/1362",[723,5.851]],["name/1363",[727,50.733]],["parent/1363",[]],["name/1364",[728,72.705]],["parent/1364",[727,4.971]],["name/1365",[729,72.705]],["parent/1365",[727,4.971]],["name/1366",[730,72.705]],["parent/1366",[727,4.971]],["name/1367",[731,72.705]],["parent/1367",[727,4.971]],["name/1368",[732,72.705]],["parent/1368",[727,4.971]],["name/1369",[733,72.705]],["parent/1369",[727,4.971]],["name/1370",[734,72.705]],["parent/1370",[727,4.971]],["name/1371",[735,72.705]],["parent/1371",[727,4.971]],["name/1372",[736,72.705]],["parent/1372",[727,4.971]],["name/1373",[737,72.705]],["parent/1373",[727,4.971]],["name/1374",[738,72.705]],["parent/1374",[727,4.971]],["name/1375",[739,72.705]],["parent/1375",[727,4.971]],["name/1376",[740,48.726]],["parent/1376",[]],["name/1377",[716,54.247]],["parent/1377",[740,4.775]],["name/1378",[717,61.719]],["parent/1378",[740,4.775]],["name/1379",[2,61.719]],["parent/1379",[740,4.775]],["name/1380",[741,72.705]],["parent/1380",[740,4.775]],["name/1381",[742,72.705]],["parent/1381",[740,4.775]],["name/1382",[743,72.705]],["parent/1382",[740,4.775]],["name/1383",[713,64.232]],["parent/1383",[740,4.775]],["name/1384",[744,72.705]],["parent/1384",[740,4.775]],["name/1385",[745,72.705]],["parent/1385",[740,4.775]],["name/1386",[746,72.705]],["parent/1386",[740,4.775]],["name/1387",[747,72.705]],["parent/1387",[740,4.775]],["name/1388",[748,72.705]],["parent/1388",[740,4.775]],["name/1389",[749,72.705]],["parent/1389",[740,4.775]],["name/1390",[750,72.705]],["parent/1390",[740,4.775]],["name/1391",[751,54.247]],["parent/1391",[]],["name/1392",[752,72.705]],["parent/1392",[751,5.316]],["name/1393",[753,72.705]],["parent/1393",[751,5.316]],["name/1394",[754,72.705]],["parent/1394",[751,5.316]],["name/1395",[755,72.705]],["parent/1395",[751,5.316]],["name/1396",[756,72.705]],["parent/1396",[751,5.316]],["name/1397",[757,72.705]],["parent/1397",[751,5.316]],["name/1398",[758,72.705]],["parent/1398",[751,5.316]],["name/1399",[547,58.042]],["parent/1399",[751,5.316]],["name/1400",[759,36.778]],["parent/1400",[]],["name/1401",[610,64.232]],["parent/1401",[759,3.604]],["name/1402",[760,72.705]],["parent/1402",[759,3.604]],["name/1403",[761,72.705]],["parent/1403",[759,3.604]],["name/1404",[762,72.705]],["parent/1404",[759,3.604]],["name/1405",[763,72.705]],["parent/1405",[759,3.604]],["name/1406",[764,72.705]],["parent/1406",[759,3.604]],["name/1407",[765,72.705]],["parent/1407",[759,3.604]],["name/1408",[766,72.705]],["parent/1408",[759,3.604]],["name/1409",[767,72.705]],["parent/1409",[759,3.604]],["name/1410",[768,72.705]],["parent/1410",[759,3.604]],["name/1411",[769,72.705]],["parent/1411",[759,3.604]],["name/1412",[770,72.705]],["parent/1412",[759,3.604]],["name/1413",[771,72.705]],["parent/1413",[759,3.604]],["name/1414",[772,72.705]],["parent/1414",[759,3.604]],["name/1415",[773,72.705]],["parent/1415",[759,3.604]],["name/1416",[774,72.705]],["parent/1416",[759,3.604]],["name/1417",[775,72.705]],["parent/1417",[759,3.604]],["name/1418",[776,72.705]],["parent/1418",[759,3.604]],["name/1419",[777,72.705]],["parent/1419",[759,3.604]],["name/1420",[778,72.705]],["parent/1420",[759,3.604]],["name/1421",[779,72.705]],["parent/1421",[759,3.604]],["name/1422",[780,72.705]],["parent/1422",[759,3.604]],["name/1423",[781,72.705]],["parent/1423",[759,3.604]],["name/1424",[782,72.705]],["parent/1424",[759,3.604]],["name/1425",[783,72.705]],["parent/1425",[759,3.604]],["name/1426",[784,72.705]],["parent/1426",[759,3.604]],["name/1427",[29,61.719]],["parent/1427",[759,3.604]],["name/1428",[785,72.705]],["parent/1428",[759,3.604]],["name/1429",[786,72.705]],["parent/1429",[759,3.604]],["name/1430",[787,72.705]],["parent/1430",[759,3.604]],["name/1431",[788,72.705]],["parent/1431",[759,3.604]],["name/1432",[789,72.705]],["parent/1432",[759,3.604]],["name/1433",[790,72.705]],["parent/1433",[759,3.604]],["name/1434",[791,72.705]],["parent/1434",[759,3.604]],["name/1435",[792,72.705]],["parent/1435",[759,3.604]],["name/1436",[793,72.705]],["parent/1436",[759,3.604]],["name/1437",[794,72.705]],["parent/1437",[759,3.604]],["name/1438",[795,72.705]],["parent/1438",[759,3.604]],["name/1439",[796,72.705]],["parent/1439",[759,3.604]],["name/1440",[797,72.705]],["parent/1440",[759,3.604]],["name/1441",[798,72.705]],["parent/1441",[759,3.604]],["name/1442",[799,72.705]],["parent/1442",[759,3.604]],["name/1443",[800,72.705]],["parent/1443",[759,3.604]],["name/1444",[801,72.705]],["parent/1444",[759,3.604]],["name/1445",[802,72.705]],["parent/1445",[759,3.604]],["name/1446",[803,72.705]],["parent/1446",[759,3.604]],["name/1447",[804,72.705]],["parent/1447",[759,3.604]],["name/1448",[805,72.705]],["parent/1448",[759,3.604]],["name/1449",[806,72.705]],["parent/1449",[759,3.604]],["name/1450",[807,72.705]],["parent/1450",[759,3.604]],["name/1451",[808,72.705]],["parent/1451",[759,3.604]],["name/1452",[809,72.705]],["parent/1452",[759,3.604]],["name/1453",[810,61.719]],["parent/1453",[]],["name/1454",[811,72.705]],["parent/1454",[810,6.048]],["name/1455",[812,72.705]],["parent/1455",[810,6.048]],["name/1456",[813,72.705]],["parent/1456",[810,6.048]],["name/1457",[671,42.916]],["parent/1457",[]],["name/1458",[671,42.916]],["parent/1458",[671,4.205]],["name/1459",[672,67.597]],["parent/1459",[671,4.205]],["name/1460",[673,67.597]],["parent/1460",[671,4.205]],["name/1461",[669,67.597]],["parent/1461",[671,4.205]],["name/1462",[665,67.597]],["parent/1462",[671,4.205]],["name/1463",[666,67.597]],["parent/1463",[671,4.205]],["name/1464",[667,67.597]],["parent/1464",[671,4.205]],["name/1465",[668,67.597]],["parent/1465",[671,4.205]],["name/1466",[653,64.232]],["parent/1466",[671,4.205]],["name/1467",[674,61.719]],["parent/1467",[671,4.205]],["name/1468",[654,64.232]],["parent/1468",[671,4.205]],["name/1469",[675,64.232]],["parent/1469",[671,4.205]],["name/1470",[518,64.232]],["parent/1470",[671,4.205]],["name/1471",[517,64.232]],["parent/1471",[671,4.205]],["name/1472",[515,64.232]],["parent/1472",[671,4.205]],["name/1473",[516,64.232]],["parent/1473",[671,4.205]],["name/1474",[655,67.597]],["parent/1474",[671,4.205]],["name/1475",[656,67.597]],["parent/1475",[671,4.205]],["name/1476",[657,67.597]],["parent/1476",[671,4.205]],["name/1477",[676,67.597]],["parent/1477",[671,4.205]],["name/1478",[658,67.597]],["parent/1478",[671,4.205]],["name/1479",[659,67.597]],["parent/1479",[671,4.205]],["name/1480",[660,67.597]],["parent/1480",[671,4.205]],["name/1481",[661,67.597]],["parent/1481",[671,4.205]],["name/1482",[677,67.597]],["parent/1482",[671,4.205]],["name/1483",[814,43.261]],["parent/1483",[]],["name/1484",[716,54.247]],["parent/1484",[814,4.239]],["name/1485",[2,61.719]],["parent/1485",[814,4.239]],["name/1486",[815,72.705]],["parent/1486",[814,4.239]],["name/1487",[25,56.611]],["parent/1487",[814,4.239]],["name/1488",[816,72.705]],["parent/1488",[814,4.239]],["name/1489",[817,72.705]],["parent/1489",[814,4.239]],["name/1490",[27,67.597]],["parent/1490",[814,4.239]],["name/1491",[818,72.705]],["parent/1491",[814,4.239]],["name/1492",[26,67.597]],["parent/1492",[814,4.239]],["name/1493",[819,72.705]],["parent/1493",[814,4.239]],["name/1494",[820,72.705]],["parent/1494",[814,4.239]],["name/1495",[24,67.597]],["parent/1495",[814,4.239]],["name/1496",[821,72.705]],["parent/1496",[814,4.239]],["name/1497",[822,72.705]],["parent/1497",[814,4.239]],["name/1498",[28,59.713]],["parent/1498",[814,4.239]],["name/1499",[823,72.705]],["parent/1499",[814,4.239]],["name/1500",[29,61.719]],["parent/1500",[814,4.239]],["name/1501",[824,72.705]],["parent/1501",[814,4.239]],["name/1502",[825,39.747]],["parent/1502",[814,4.239]],["name/1503",[826,67.597]],["parent/1503",[814,4.239]],["name/1504",[825,39.747]],["parent/1504",[814,4.239]],["name/1505",[826,67.597]],["parent/1505",[814,4.239]],["name/1506",[827,64.232]],["parent/1506",[814,4.239]],["name/1507",[828,72.705]],["parent/1507",[814,4.239]],["name/1508",[829,64.232]],["parent/1508",[814,4.239]],["name/1509",[830,72.705]],["parent/1509",[814,4.239]],["name/1510",[532,48.138]],["parent/1510",[814,4.239]],["name/1511",[831,39.747]],["parent/1511",[]],["name/1512",[521,54.247]],["parent/1512",[831,3.895]],["name/1513",[522,46.08]],["parent/1513",[831,3.895]],["name/1514",[523,49.352]],["parent/1514",[831,3.895]],["name/1515",[530,45.19]],["parent/1515",[831,3.895]],["name/1516",[527,52.337]],["parent/1516",[831,3.895]],["name/1517",[528,53.246]],["parent/1517",[831,3.895]],["name/1518",[529,54.247]],["parent/1518",[831,3.895]],["name/1519",[512,48.138]],["parent/1519",[831,3.895]],["name/1520",[524,49.352]],["parent/1520",[831,3.895]],["name/1521",[525,49.352]],["parent/1521",[831,3.895]],["name/1522",[531,49.352]],["parent/1522",[831,3.895]],["name/1523",[526,48.726]],["parent/1523",[831,3.895]],["name/1524",[832,72.705]],["parent/1524",[831,3.895]],["name/1525",[318,67.597]],["parent/1525",[831,3.895]],["name/1526",[833,67.597]],["parent/1526",[831,3.895]],["name/1527",[834,67.597]],["parent/1527",[831,3.895]],["name/1528",[835,67.597]],["parent/1528",[831,3.895]],["name/1529",[836,72.705]],["parent/1529",[831,3.895]],["name/1530",[837,72.705]],["parent/1530",[831,3.895]],["name/1531",[838,67.597]],["parent/1531",[831,3.895]],["name/1532",[839,64.232]],["parent/1532",[831,3.895]],["name/1533",[840,61.719]],["parent/1533",[831,3.895]],["name/1534",[841,61.719]],["parent/1534",[831,3.895]],["name/1535",[231,55.359]],["parent/1535",[831,3.895]],["name/1536",[230,55.359]],["parent/1536",[831,3.895]],["name/1537",[842,55.359]],["parent/1537",[831,3.895]],["name/1538",[843,67.597]],["parent/1538",[831,3.895]],["name/1539",[844,72.705]],["parent/1539",[831,3.895]],["name/1540",[845,72.705]],["parent/1540",[831,3.895]],["name/1541",[520,53.246]],["parent/1541",[831,3.895]],["name/1542",[846,72.705]],["parent/1542",[831,3.895]],["name/1543",[847,72.705]],["parent/1543",[831,3.895]],["name/1544",[848,67.597]],["parent/1544",[831,3.895]],["name/1545",[849,67.597]],["parent/1545",[831,3.895]],["name/1546",[829,64.232]],["parent/1546",[831,3.895]],["name/1547",[850,67.597]],["parent/1547",[831,3.895]],["name/1548",[851,67.597]],["parent/1548",[831,3.895]],["name/1549",[852,67.597]],["parent/1549",[831,3.895]],["name/1550",[853,72.705]],["parent/1550",[831,3.895]],["name/1551",[854,45.625]],["parent/1551",[]],["name/1552",[522,46.08]],["parent/1552",[854,4.471]],["name/1553",[523,49.352]],["parent/1553",[854,4.471]],["name/1554",[531,49.352]],["parent/1554",[854,4.471]],["name/1555",[525,49.352]],["parent/1555",[854,4.471]],["name/1556",[530,45.19]],["parent/1556",[854,4.471]],["name/1557",[512,48.138]],["parent/1557",[854,4.471]],["name/1558",[524,49.352]],["parent/1558",[854,4.471]],["name/1559",[526,48.726]],["parent/1559",[854,4.471]],["name/1560",[855,67.597]],["parent/1560",[854,4.471]],["name/1561",[856,72.705]],["parent/1561",[854,4.471]],["name/1562",[857,72.705]],["parent/1562",[854,4.471]],["name/1563",[842,55.359]],["parent/1563",[854,4.471]],["name/1564",[858,67.597]],["parent/1564",[854,4.471]],["name/1565",[859,72.705]],["parent/1565",[854,4.471]],["name/1566",[860,67.597]],["parent/1566",[854,4.471]],["name/1567",[861,72.705]],["parent/1567",[854,4.471]],["name/1568",[862,67.597]],["parent/1568",[854,4.471]],["name/1569",[863,67.597]],["parent/1569",[854,4.471]],["name/1570",[864,43.989]],["parent/1570",[854,4.471]],["name/1571",[2,61.719]],["parent/1571",[854,4.471]],["name/1572",[865,67.597]],["parent/1572",[854,4.471]],["name/1573",[866,46.08]],["parent/1573",[]],["name/1574",[867,72.705]],["parent/1574",[866,4.515]],["name/1575",[868,72.705]],["parent/1575",[866,4.515]],["name/1576",[262,54.247]],["parent/1576",[866,4.515]],["name/1577",[869,72.705]],["parent/1577",[866,4.515]],["name/1578",[870,72.705]],["parent/1578",[866,4.515]],["name/1579",[871,72.705]],["parent/1579",[866,4.515]],["name/1580",[872,58.042]],["parent/1580",[866,4.515]],["name/1581",[532,48.138]],["parent/1581",[866,4.515]],["name/1582",[873,72.705]],["parent/1582",[866,4.515]],["name/1583",[874,72.705]],["parent/1583",[866,4.515]],["name/1584",[875,72.705]],["parent/1584",[866,4.515]],["name/1585",[876,72.705]],["parent/1585",[866,4.515]],["name/1586",[877,72.705]],["parent/1586",[866,4.515]],["name/1587",[878,72.705]],["parent/1587",[866,4.515]],["name/1588",[530,45.19]],["parent/1588",[866,4.515]],["name/1589",[879,58.042]],["parent/1589",[866,4.515]],["name/1590",[718,56.611]],["parent/1590",[866,4.515]],["name/1591",[150,49.352]],["parent/1591",[866,4.515]],["name/1592",[880,67.597]],["parent/1592",[866,4.515]],["name/1593",[881,58.042]],["parent/1593",[866,4.515]],["name/1594",[882,61.719]],["parent/1594",[]],["name/1595",[883,67.597]],["parent/1595",[882,6.048]],["name/1596",[884,72.705]],["parent/1596",[882,6.048]],["name/1597",[885,72.705]],["parent/1597",[882,6.048]],["name/1598",[886,50.733]],["parent/1598",[]],["name/1599",[716,54.247]],["parent/1599",[886,4.971]],["name/1600",[887,72.705]],["parent/1600",[886,4.971]],["name/1601",[888,72.705]],["parent/1601",[886,4.971]],["name/1602",[829,64.232]],["parent/1602",[886,4.971]],["name/1603",[530,45.19]],["parent/1603",[886,4.971]],["name/1604",[827,64.232]],["parent/1604",[886,4.971]],["name/1605",[827,64.232]],["parent/1605",[886,4.971]],["name/1606",[889,67.597]],["parent/1606",[886,4.971]],["name/1607",[889,67.597]],["parent/1607",[886,4.971]],["name/1608",[722,64.232]],["parent/1608",[886,4.971]],["name/1609",[532,48.138]],["parent/1609",[886,4.971]],["name/1610",[890,67.597]],["parent/1610",[886,4.971]],["name/1611",[891,47.582]],["parent/1611",[]],["name/1612",[522,46.08]],["parent/1612",[891,4.662]],["name/1613",[523,49.352]],["parent/1613",[891,4.662]],["name/1614",[530,45.19]],["parent/1614",[891,4.662]],["name/1615",[512,48.138]],["parent/1615",[891,4.662]],["name/1616",[526,48.726]],["parent/1616",[891,4.662]],["name/1617",[524,49.352]],["parent/1617",[891,4.662]],["name/1618",[525,49.352]],["parent/1618",[891,4.662]],["name/1619",[531,49.352]],["parent/1619",[891,4.662]],["name/1620",[892,72.705]],["parent/1620",[891,4.662]],["name/1621",[893,72.705]],["parent/1621",[891,4.662]],["name/1622",[894,64.232]],["parent/1622",[891,4.662]],["name/1623",[895,72.705]],["parent/1623",[891,4.662]],["name/1624",[896,72.705]],["parent/1624",[891,4.662]],["name/1625",[897,72.705]],["parent/1625",[891,4.662]],["name/1626",[547,58.042]],["parent/1626",[891,4.662]],["name/1627",[898,72.705]],["parent/1627",[891,4.662]],["name/1628",[899,72.705]],["parent/1628",[891,4.662]],["name/1629",[900,38.583]],["parent/1629",[]],["name/1630",[522,46.08]],["parent/1630",[900,3.781]],["name/1631",[523,49.352]],["parent/1631",[900,3.781]],["name/1632",[530,45.19]],["parent/1632",[900,3.781]],["name/1633",[512,48.138]],["parent/1633",[900,3.781]],["name/1634",[524,49.352]],["parent/1634",[900,3.781]],["name/1635",[525,49.352]],["parent/1635",[900,3.781]],["name/1636",[531,49.352]],["parent/1636",[900,3.781]],["name/1637",[526,48.726]],["parent/1637",[900,3.781]],["name/1638",[855,67.597]],["parent/1638",[900,3.781]],["name/1639",[835,67.597]],["parent/1639",[900,3.781]],["name/1640",[901,72.705]],["parent/1640",[900,3.781]],["name/1641",[150,49.352]],["parent/1641",[900,3.781]],["name/1642",[902,72.705]],["parent/1642",[900,3.781]],["name/1643",[839,64.232]],["parent/1643",[900,3.781]],["name/1644",[840,61.719]],["parent/1644",[900,3.781]],["name/1645",[841,61.719]],["parent/1645",[900,3.781]],["name/1646",[903,67.597]],["parent/1646",[900,3.781]],["name/1647",[904,72.705]],["parent/1647",[900,3.781]],["name/1648",[905,72.705]],["parent/1648",[900,3.781]],["name/1649",[842,55.359]],["parent/1649",[900,3.781]],["name/1650",[858,67.597]],["parent/1650",[900,3.781]],["name/1651",[906,72.705]],["parent/1651",[900,3.781]],["name/1652",[907,72.705]],["parent/1652",[900,3.781]],["name/1653",[879,58.042]],["parent/1653",[900,3.781]],["name/1654",[718,56.611]],["parent/1654",[900,3.781]],["name/1655",[838,67.597]],["parent/1655",[900,3.781]],["name/1656",[862,67.597]],["parent/1656",[900,3.781]],["name/1657",[864,43.989]],["parent/1657",[900,3.781]],["name/1658",[908,72.705]],["parent/1658",[900,3.781]],["name/1659",[909,72.705]],["parent/1659",[900,3.781]],["name/1660",[910,72.705]],["parent/1660",[900,3.781]],["name/1661",[911,72.705]],["parent/1661",[900,3.781]],["name/1662",[912,72.705]],["parent/1662",[900,3.781]],["name/1663",[913,72.705]],["parent/1663",[900,3.781]],["name/1664",[914,72.705]],["parent/1664",[900,3.781]],["name/1665",[915,72.705]],["parent/1665",[900,3.781]],["name/1666",[916,72.705]],["parent/1666",[900,3.781]],["name/1667",[863,67.597]],["parent/1667",[900,3.781]],["name/1668",[849,67.597]],["parent/1668",[900,3.781]],["name/1669",[459,54.247]],["parent/1669",[900,3.781]],["name/1670",[865,67.597]],["parent/1670",[900,3.781]],["name/1671",[917,72.705]],["parent/1671",[900,3.781]],["name/1672",[918,72.705]],["parent/1672",[900,3.781]],["name/1673",[881,58.042]],["parent/1673",[900,3.781]],["name/1674",[919,41.065]],["parent/1674",[]],["name/1675",[520,53.246]],["parent/1675",[919,4.024]],["name/1676",[521,54.247]],["parent/1676",[919,4.024]],["name/1677",[530,45.19]],["parent/1677",[919,4.024]],["name/1678",[527,52.337]],["parent/1678",[919,4.024]],["name/1679",[528,53.246]],["parent/1679",[919,4.024]],["name/1680",[529,54.247]],["parent/1680",[919,4.024]],["name/1681",[920,72.705]],["parent/1681",[919,4.024]],["name/1682",[921,72.705]],["parent/1682",[919,4.024]],["name/1683",[922,72.705]],["parent/1683",[919,4.024]],["name/1684",[923,72.705]],["parent/1684",[919,4.024]],["name/1685",[833,67.597]],["parent/1685",[919,4.024]],["name/1686",[834,67.597]],["parent/1686",[919,4.024]],["name/1687",[842,55.359]],["parent/1687",[919,4.024]],["name/1688",[843,67.597]],["parent/1688",[919,4.024]],["name/1689",[860,67.597]],["parent/1689",[919,4.024]],["name/1690",[924,72.705]],["parent/1690",[919,4.024]],["name/1691",[872,58.042]],["parent/1691",[919,4.024]],["name/1692",[526,48.726]],["parent/1692",[919,4.024]],["name/1693",[925,72.705]],["parent/1693",[919,4.024]],["name/1694",[926,67.597]],["parent/1694",[919,4.024]],["name/1695",[532,48.138]],["parent/1695",[919,4.024]],["name/1696",[927,72.705]],["parent/1696",[919,4.024]],["name/1697",[928,72.705]],["parent/1697",[919,4.024]],["name/1698",[929,72.705]],["parent/1698",[919,4.024]],["name/1699",[930,72.705]],["parent/1699",[919,4.024]],["name/1700",[931,72.705]],["parent/1700",[919,4.024]],["name/1701",[932,72.705]],["parent/1701",[919,4.024]],["name/1702",[851,67.597]],["parent/1702",[919,4.024]],["name/1703",[933,72.705]],["parent/1703",[919,4.024]],["name/1704",[848,67.597]],["parent/1704",[919,4.024]],["name/1705",[850,67.597]],["parent/1705",[919,4.024]],["name/1706",[852,67.597]],["parent/1706",[919,4.024]],["name/1707",[934,72.705]],["parent/1707",[919,4.024]],["name/1708",[935,72.705]],["parent/1708",[919,4.024]],["name/1709",[936,46.08]],["parent/1709",[]],["name/1710",[883,67.597]],["parent/1710",[936,4.515]],["name/1711",[937,72.705]],["parent/1711",[936,4.515]],["name/1712",[43,67.597]],["parent/1712",[936,4.515]],["name/1713",[938,72.705]],["parent/1713",[936,4.515]],["name/1714",[939,72.705]],["parent/1714",[936,4.515]],["name/1715",[940,72.705]],["parent/1715",[936,4.515]],["name/1716",[941,72.705]],["parent/1716",[936,4.515]],["name/1717",[942,72.705]],["parent/1717",[936,4.515]],["name/1718",[943,72.705]],["parent/1718",[936,4.515]],["name/1719",[944,72.705]],["parent/1719",[936,4.515]],["name/1720",[945,72.705]],["parent/1720",[936,4.515]],["name/1721",[946,72.705]],["parent/1721",[936,4.515]],["name/1722",[947,72.705]],["parent/1722",[936,4.515]],["name/1723",[948,67.597]],["parent/1723",[936,4.515]],["name/1724",[949,67.597]],["parent/1724",[936,4.515]],["name/1725",[950,72.705]],["parent/1725",[936,4.515]],["name/1726",[951,67.597]],["parent/1726",[936,4.515]],["name/1727",[952,72.705]],["parent/1727",[936,4.515]],["name/1728",[953,72.705]],["parent/1728",[936,4.515]],["name/1729",[954,72.705]],["parent/1729",[936,4.515]],["name/1730",[955,48.138]],["parent/1730",[]],["name/1731",[513,64.232]],["parent/1731",[955,4.717]],["name/1732",[522,46.08]],["parent/1732",[955,4.717]],["name/1733",[523,49.352]],["parent/1733",[955,4.717]],["name/1734",[956,72.705]],["parent/1734",[955,4.717]],["name/1735",[527,52.337]],["parent/1735",[955,4.717]],["name/1736",[520,53.246]],["parent/1736",[955,4.717]],["name/1737",[957,72.705]],["parent/1737",[955,4.717]],["name/1738",[958,72.705]],["parent/1738",[955,4.717]],["name/1739",[959,72.705]],["parent/1739",[955,4.717]],["name/1740",[960,72.705]],["parent/1740",[955,4.717]],["name/1741",[524,49.352]],["parent/1741",[955,4.717]],["name/1742",[525,49.352]],["parent/1742",[955,4.717]],["name/1743",[531,49.352]],["parent/1743",[955,4.717]],["name/1744",[526,48.726]],["parent/1744",[955,4.717]],["name/1745",[512,48.138]],["parent/1745",[955,4.717]],["name/1746",[530,45.19]],["parent/1746",[955,4.717]],["name/1747",[961,46.556]],["parent/1747",[]],["name/1748",[962,72.705]],["parent/1748",[961,4.562]],["name/1749",[963,72.705]],["parent/1749",[961,4.562]],["name/1750",[964,72.705]],["parent/1750",[961,4.562]],["name/1751",[549,67.597]],["parent/1751",[961,4.562]],["name/1752",[965,72.705]],["parent/1752",[961,4.562]],["name/1753",[966,72.705]],["parent/1753",[961,4.562]],["name/1754",[841,61.719]],["parent/1754",[961,4.562]],["name/1755",[967,72.705]],["parent/1755",[961,4.562]],["name/1756",[968,72.705]],["parent/1756",[961,4.562]],["name/1757",[969,72.705]],["parent/1757",[961,4.562]],["name/1758",[970,72.705]],["parent/1758",[961,4.562]],["name/1759",[527,52.337]],["parent/1759",[961,4.562]],["name/1760",[971,72.705]],["parent/1760",[961,4.562]],["name/1761",[610,64.232]],["parent/1761",[961,4.562]],["name/1762",[617,61.719]],["parent/1762",[961,4.562]],["name/1763",[972,72.705]],["parent/1763",[961,4.562]],["name/1764",[973,72.705]],["parent/1764",[961,4.562]],["name/1765",[974,72.705]],["parent/1765",[961,4.562]],["name/1766",[975,72.705]],["parent/1766",[961,4.562]],["name/1767",[976,52.337]],["parent/1767",[]],["name/1768",[977,72.705]],["parent/1768",[976,5.128]],["name/1769",[949,67.597]],["parent/1769",[976,5.128]],["name/1770",[951,67.597]],["parent/1770",[976,5.128]],["name/1771",[948,67.597]],["parent/1771",[976,5.128]],["name/1772",[978,72.705]],["parent/1772",[976,5.128]],["name/1773",[979,72.705]],["parent/1773",[976,5.128]],["name/1774",[980,72.705]],["parent/1774",[976,5.128]],["name/1775",[981,72.705]],["parent/1775",[976,5.128]],["name/1776",[982,72.705]],["parent/1776",[976,5.128]],["name/1777",[983,72.705]],["parent/1777",[976,5.128]],["name/1778",[984,49.352]],["parent/1778",[]],["name/1779",[25,56.611]],["parent/1779",[984,4.836]],["name/1780",[28,59.713]],["parent/1780",[984,4.836]],["name/1781",[542,61.719]],["parent/1781",[984,4.836]],["name/1782",[546,64.232]],["parent/1782",[984,4.836]],["name/1783",[547,58.042]],["parent/1783",[984,4.836]],["name/1784",[985,67.597]],["parent/1784",[984,4.836]],["name/1785",[541,67.597]],["parent/1785",[984,4.836]],["name/1786",[543,67.597]],["parent/1786",[984,4.836]],["name/1787",[545,67.597]],["parent/1787",[984,4.836]],["name/1788",[544,67.597]],["parent/1788",[984,4.836]],["name/1789",[532,48.138]],["parent/1789",[984,4.836]],["name/1790",[986,72.705]],["parent/1790",[984,4.836]],["name/1791",[987,72.705]],["parent/1791",[984,4.836]],["name/1792",[988,72.705]],["parent/1792",[984,4.836]],["name/1793",[989,67.597]],["parent/1793",[]],["name/1794",[990,72.705]],["parent/1794",[989,6.624]],["name/1795",[991,67.597]],["parent/1795",[]],["name/1796",[716,54.247]],["parent/1796",[991,6.624]],["name/1797",[724,53.246]],["parent/1797",[]],["name/1798",[992,64.232]],["parent/1798",[724,5.217]],["name/1799",[842,55.359]],["parent/1799",[724,5.217]],["name/1800",[726,67.597]],["parent/1800",[724,5.217]],["name/1801",[993,72.705]],["parent/1801",[724,5.217]],["name/1802",[994,72.705]],["parent/1802",[724,5.217]],["name/1803",[995,72.705]],["parent/1803",[724,5.217]],["name/1804",[996,72.705]],["parent/1804",[724,5.217]],["name/1805",[674,61.719]],["parent/1805",[724,5.217]],["name/1806",[997,48.726]],["parent/1806",[]],["name/1807",[522,46.08]],["parent/1807",[997,4.775]],["name/1808",[523,49.352]],["parent/1808",[997,4.775]],["name/1809",[530,45.19]],["parent/1809",[997,4.775]],["name/1810",[512,48.138]],["parent/1810",[997,4.775]],["name/1811",[524,49.352]],["parent/1811",[997,4.775]],["name/1812",[525,49.352]],["parent/1812",[997,4.775]],["name/1813",[531,49.352]],["parent/1813",[997,4.775]],["name/1814",[526,48.726]],["parent/1814",[997,4.775]],["name/1815",[998,72.705]],["parent/1815",[997,4.775]],["name/1816",[999,72.705]],["parent/1816",[997,4.775]],["name/1817",[992,64.232]],["parent/1817",[997,4.775]],["name/1818",[1000,72.705]],["parent/1818",[997,4.775]],["name/1819",[1001,72.705]],["parent/1819",[997,4.775]],["name/1820",[1002,72.705]],["parent/1820",[997,4.775]],["name/1821",[1003,72.705]],["parent/1821",[997,4.775]],["name/1822",[1004,51.503]],["parent/1822",[]],["name/1823",[1005,72.705]],["parent/1823",[1004,5.047]],["name/1824",[520,53.246]],["parent/1824",[1004,5.047]],["name/1825",[521,54.247]],["parent/1825",[1004,5.047]],["name/1826",[717,61.719]],["parent/1826",[1004,5.047]],["name/1827",[530,45.19]],["parent/1827",[1004,5.047]],["name/1828",[527,52.337]],["parent/1828",[1004,5.047]],["name/1829",[528,53.246]],["parent/1829",[1004,5.047]],["name/1830",[529,54.247]],["parent/1830",[1004,5.047]],["name/1831",[196,53.246]],["parent/1831",[1004,5.047]],["name/1832",[992,64.232]],["parent/1832",[1004,5.047]],["name/1833",[532,48.138]],["parent/1833",[1004,5.047]],["name/1834",[1006,49.352]],["parent/1834",[]],["name/1835",[1007,72.705]],["parent/1835",[1006,4.836]],["name/1836",[25,56.611]],["parent/1836",[1006,4.836]],["name/1837",[1008,72.705]],["parent/1837",[1006,4.836]],["name/1838",[1009,72.705]],["parent/1838",[1006,4.836]],["name/1839",[985,67.597]],["parent/1839",[1006,4.836]],["name/1840",[1010,72.705]],["parent/1840",[1006,4.836]],["name/1841",[1011,72.705]],["parent/1841",[1006,4.836]],["name/1842",[1012,72.705]],["parent/1842",[1006,4.836]],["name/1843",[1013,72.705]],["parent/1843",[1006,4.836]],["name/1844",[1014,72.705]],["parent/1844",[1006,4.836]],["name/1845",[542,61.719]],["parent/1845",[1006,4.836]],["name/1846",[546,64.232]],["parent/1846",[1006,4.836]],["name/1847",[547,58.042]],["parent/1847",[1006,4.836]],["name/1848",[1015,72.705]],["parent/1848",[1006,4.836]],["name/1849",[1016,64.232]],["parent/1849",[]],["name/1850",[1017,67.597]],["parent/1850",[1016,6.294]],["name/1851",[894,64.232]],["parent/1851",[1016,6.294]],["name/1852",[1018,61.719]],["parent/1852",[]],["name/1853",[716,54.247]],["parent/1853",[1018,6.048]],["name/1854",[31,67.597]],["parent/1854",[1018,6.048]],["name/1855",[532,48.138]],["parent/1855",[1018,6.048]],["name/1856",[1019,56.611]],["parent/1856",[]],["name/1857",[716,54.247]],["parent/1857",[1019,5.547]],["name/1858",[1020,72.705]],["parent/1858",[1019,5.547]],["name/1859",[1021,72.705]],["parent/1859",[1019,5.547]],["name/1860",[722,64.232]],["parent/1860",[1019,5.547]],["name/1861",[532,48.138]],["parent/1861",[1019,5.547]],["name/1862",[890,67.597]],["parent/1862",[1019,5.547]],["name/1863",[864,43.989]],["parent/1863",[]],["name/1864",[520,53.246]],["parent/1864",[864,4.31]],["name/1865",[521,54.247]],["parent/1865",[864,4.31]],["name/1866",[522,46.08]],["parent/1866",[864,4.31]],["name/1867",[523,49.352]],["parent/1867",[864,4.31]],["name/1868",[530,45.19]],["parent/1868",[864,4.31]],["name/1869",[512,48.138]],["parent/1869",[864,4.31]],["name/1870",[524,49.352]],["parent/1870",[864,4.31]],["name/1871",[525,49.352]],["parent/1871",[864,4.31]],["name/1872",[531,49.352]],["parent/1872",[864,4.31]],["name/1873",[526,48.726]],["parent/1873",[864,4.31]],["name/1874",[527,52.337]],["parent/1874",[864,4.31]],["name/1875",[528,53.246]],["parent/1875",[864,4.31]],["name/1876",[529,54.247]],["parent/1876",[864,4.31]],["name/1877",[1022,72.705]],["parent/1877",[864,4.31]],["name/1878",[926,67.597]],["parent/1878",[864,4.31]],["name/1879",[879,58.042]],["parent/1879",[864,4.31]],["name/1880",[718,56.611]],["parent/1880",[864,4.31]],["name/1881",[532,48.138]],["parent/1881",[864,4.31]],["name/1882",[872,58.042]],["parent/1882",[864,4.31]],["name/1883",[1023,72.705]],["parent/1883",[864,4.31]],["name/1884",[150,49.352]],["parent/1884",[864,4.31]],["name/1885",[880,67.597]],["parent/1885",[864,4.31]],["name/1886",[881,58.042]],["parent/1886",[864,4.31]],["name/1887",[522,46.08]],["parent/1887",[]],["name/1888",[1024,72.705]],["parent/1888",[522,4.515]],["name/1889",[1025,72.705]],["parent/1889",[522,4.515]],["name/1890",[1026,72.705]],["parent/1890",[522,4.515]],["name/1891",[1027,72.705]],["parent/1891",[522,4.515]],["name/1892",[532,48.138]],["parent/1892",[522,4.515]],["name/1893",[1028,55.359]],["parent/1893",[]],["name/1894",[1028,55.359]],["parent/1894",[1028,5.425]],["name/1895",[653,64.232]],["parent/1895",[1028,5.425]],["name/1896",[674,61.719]],["parent/1896",[1028,5.425]],["name/1897",[654,64.232]],["parent/1897",[1028,5.425]],["name/1898",[675,64.232]],["parent/1898",[1028,5.425]],["name/1899",[671,42.916]],["parent/1899",[1028,5.425]],["name/1900",[1029,56.611]],["parent/1900",[]],["name/1901",[1029,56.611]],["parent/1901",[1029,5.547]],["name/1902",[528,53.246]],["parent/1902",[1029,5.547]],["name/1903",[1030,72.705]],["parent/1903",[1029,5.547]],["name/1904",[1031,72.705]],["parent/1904",[1029,5.547]],["name/1905",[1032,72.705]],["parent/1905",[1029,5.547]],["name/1906",[1033,54.247]],["parent/1906",[]],["name/1907",[530,45.19]],["parent/1907",[1033,5.316]],["name/1908",[512,48.138]],["parent/1908",[1033,5.316]],["name/1909",[524,49.352]],["parent/1909",[1033,5.316]],["name/1910",[525,49.352]],["parent/1910",[1033,5.316]],["name/1911",[531,49.352]],["parent/1911",[1033,5.316]],["name/1912",[526,48.726]],["parent/1912",[1033,5.316]],["name/1913",[522,46.08]],["parent/1913",[1033,5.316]],["name/1914",[523,49.352]],["parent/1914",[1033,5.316]],["name/1915",[1034,48.726]],["parent/1915",[]],["name/1916",[522,46.08]],["parent/1916",[1034,4.775]],["name/1917",[523,49.352]],["parent/1917",[1034,4.775]],["name/1918",[1035,72.705]],["parent/1918",[1034,4.775]],["name/1919",[1036,72.705]],["parent/1919",[1034,4.775]],["name/1920",[1037,72.705]],["parent/1920",[1034,4.775]],["name/1921",[1038,72.705]],["parent/1921",[1034,4.775]],["name/1922",[1039,72.705]],["parent/1922",[1034,4.775]],["name/1923",[1040,72.705]],["parent/1923",[1034,4.775]],["name/1924",[513,64.232]],["parent/1924",[1034,4.775]],["name/1925",[530,45.19]],["parent/1925",[1034,4.775]],["name/1926",[512,48.138]],["parent/1926",[1034,4.775]],["name/1927",[524,49.352]],["parent/1927",[1034,4.775]],["name/1928",[531,49.352]],["parent/1928",[1034,4.775]],["name/1929",[525,49.352]],["parent/1929",[1034,4.775]],["name/1930",[526,48.726]],["parent/1930",[1034,4.775]],["name/1931",[1041,56.611]],["parent/1931",[]],["name/1932",[1042,72.705]],["parent/1932",[1041,5.547]],["name/1933",[1043,72.705]],["parent/1933",[1041,5.547]],["name/1934",[1044,72.705]],["parent/1934",[1041,5.547]],["name/1935",[1045,72.705]],["parent/1935",[1041,5.547]],["name/1936",[29,61.719]],["parent/1936",[1041,5.547]],["name/1937",[617,61.719]],["parent/1937",[1041,5.547]],["name/1938",[1046,38.805]],["parent/1938",[]],["name/1939",[520,53.246]],["parent/1939",[1046,3.802]],["name/1940",[521,54.247]],["parent/1940",[1046,3.802]],["name/1941",[522,46.08]],["parent/1941",[1046,3.802]],["name/1942",[523,49.352]],["parent/1942",[1046,3.802]],["name/1943",[1047,64.232]],["parent/1943",[1046,3.802]],["name/1944",[1048,64.232]],["parent/1944",[1046,3.802]],["name/1945",[1049,64.232]],["parent/1945",[1046,3.802]],["name/1946",[1050,61.719]],["parent/1946",[1046,3.802]],["name/1947",[1051,61.719]],["parent/1947",[1046,3.802]],["name/1948",[842,55.359]],["parent/1948",[1046,3.802]],["name/1949",[1052,64.232]],["parent/1949",[1046,3.802]],["name/1950",[1053,64.232]],["parent/1950",[1046,3.802]],["name/1951",[1054,64.232]],["parent/1951",[1046,3.802]],["name/1952",[1055,64.232]],["parent/1952",[1046,3.802]],["name/1953",[1056,64.232]],["parent/1953",[1046,3.802]],["name/1954",[532,48.138]],["parent/1954",[1046,3.802]],["name/1955",[879,58.042]],["parent/1955",[1046,3.802]],["name/1956",[718,56.611]],["parent/1956",[1046,3.802]],["name/1957",[150,49.352]],["parent/1957",[1046,3.802]],["name/1958",[1057,64.232]],["parent/1958",[1046,3.802]],["name/1959",[530,45.19]],["parent/1959",[1046,3.802]],["name/1960",[512,48.138]],["parent/1960",[1046,3.802]],["name/1961",[524,49.352]],["parent/1961",[1046,3.802]],["name/1962",[525,49.352]],["parent/1962",[1046,3.802]],["name/1963",[531,49.352]],["parent/1963",[1046,3.802]],["name/1964",[526,48.726]],["parent/1964",[1046,3.802]],["name/1965",[527,52.337]],["parent/1965",[1046,3.802]],["name/1966",[528,53.246]],["parent/1966",[1046,3.802]],["name/1967",[529,54.247]],["parent/1967",[1046,3.802]],["name/1968",[1058,64.232]],["parent/1968",[1046,3.802]],["name/1969",[1059,64.232]],["parent/1969",[1046,3.802]],["name/1970",[1060,64.232]],["parent/1970",[1046,3.802]],["name/1971",[1061,64.232]],["parent/1971",[1046,3.802]],["name/1972",[1062,64.232]],["parent/1972",[1046,3.802]],["name/1973",[872,58.042]],["parent/1973",[1046,3.802]],["name/1974",[1063,64.232]],["parent/1974",[1046,3.802]],["name/1975",[839,64.232]],["parent/1975",[1046,3.802]],["name/1976",[840,61.719]],["parent/1976",[1046,3.802]],["name/1977",[841,61.719]],["parent/1977",[1046,3.802]],["name/1978",[1064,72.705]],["parent/1978",[1046,3.802]],["name/1979",[1065,72.705]],["parent/1979",[1046,3.802]],["name/1980",[1066,72.705]],["parent/1980",[1046,3.802]],["name/1981",[881,58.042]],["parent/1981",[1046,3.802]],["name/1982",[1067,51.503]],["parent/1982",[]],["name/1983",[1068,72.705]],["parent/1983",[1067,5.047]],["name/1984",[1069,72.705]],["parent/1984",[1067,5.047]],["name/1985",[1070,72.705]],["parent/1985",[1067,5.047]],["name/1986",[1071,72.705]],["parent/1986",[1067,5.047]],["name/1987",[1072,72.705]],["parent/1987",[1067,5.047]],["name/1988",[1073,72.705]],["parent/1988",[1067,5.047]],["name/1989",[1074,72.705]],["parent/1989",[1067,5.047]],["name/1990",[1075,72.705]],["parent/1990",[1067,5.047]],["name/1991",[1076,72.705]],["parent/1991",[1067,5.047]],["name/1992",[1077,72.705]],["parent/1992",[1067,5.047]],["name/1993",[1078,58.042]],["parent/1993",[]],["name/1994",[1079,72.705]],["parent/1994",[1078,5.687]],["name/1995",[1080,72.705]],["parent/1995",[1078,5.687]],["name/1996",[903,67.597]],["parent/1996",[1078,5.687]],["name/1997",[1081,67.597]],["parent/1997",[1078,5.687]],["name/1998",[840,61.719]],["parent/1998",[1078,5.687]],["name/1999",[1082,55.359]],["parent/1999",[]],["name/2000",[1017,67.597]],["parent/2000",[1082,5.425]],["name/2001",[1083,72.705]],["parent/2001",[1082,5.425]],["name/2002",[1081,67.597]],["parent/2002",[1082,5.425]],["name/2003",[894,64.232]],["parent/2003",[1082,5.425]],["name/2004",[1084,72.705]],["parent/2004",[1082,5.425]],["name/2005",[1085,72.705]],["parent/2005",[1082,5.425]],["name/2006",[1086,72.705]],["parent/2006",[1082,5.425]],["name/2007",[1087,67.597]],["parent/2007",[]],["name/2008",[530,45.19]],["parent/2008",[1087,6.624]],["name/2009",[1088,53.246]],["parent/2009",[]],["name/2010",[522,46.08]],["parent/2010",[1088,5.217]],["name/2011",[523,49.352]],["parent/2011",[1088,5.217]],["name/2012",[530,45.19]],["parent/2012",[1088,5.217]],["name/2013",[512,48.138]],["parent/2013",[1088,5.217]],["name/2014",[524,49.352]],["parent/2014",[1088,5.217]],["name/2015",[525,49.352]],["parent/2015",[1088,5.217]],["name/2016",[531,49.352]],["parent/2016",[1088,5.217]],["name/2017",[526,48.726]],["parent/2017",[1088,5.217]],["name/2018",[1089,72.705]],["parent/2018",[1088,5.217]],["name/2019",[1090,41.065]],["parent/2019",[]],["name/2020",[716,54.247]],["parent/2020",[1090,4.024]],["name/2021",[1090,41.065]],["parent/2021",[1090,4.024]],["name/2022",[1091,72.705]],["parent/2022",[1090,4.024]],["name/2023",[1092,72.705]],["parent/2023",[1090,4.024]],["name/2024",[1093,72.705]],["parent/2024",[1090,4.024]],["name/2025",[1094,72.705]],["parent/2025",[1090,4.024]],["name/2026",[1095,72.705]],["parent/2026",[1090,4.024]],["name/2027",[1096,72.705]],["parent/2027",[1090,4.024]],["name/2028",[1097,72.705]],["parent/2028",[1090,4.024]],["name/2029",[1098,72.705]],["parent/2029",[1090,4.024]],["name/2030",[759,36.778]],["parent/2030",[1090,4.024]],["name/2031",[740,48.726]],["parent/2031",[1090,4.024]],["name/2032",[1099,72.705]],["parent/2032",[1090,4.024]],["name/2033",[1067,51.503]],["parent/2033",[1090,4.024]],["name/2034",[1100,72.705]],["parent/2034",[1090,4.024]],["name/2035",[1101,72.705]],["parent/2035",[1090,4.024]],["name/2036",[1102,72.705]],["parent/2036",[1090,4.024]],["name/2037",[1103,72.705]],["parent/2037",[1090,4.024]],["name/2038",[1104,72.705]],["parent/2038",[1090,4.024]],["name/2039",[682,67.597]],["parent/2039",[1090,4.024]],["name/2040",[532,48.138]],["parent/2040",[1090,4.024]],["name/2041",[1105,72.705]],["parent/2041",[1090,4.024]],["name/2042",[1106,72.705]],["parent/2042",[1090,4.024]],["name/2043",[1107,72.705]],["parent/2043",[1090,4.024]],["name/2044",[249,64.232]],["parent/2044",[1090,4.024]],["name/2045",[683,64.232]],["parent/2045",[1090,4.024]],["name/2046",[1108,72.705]],["parent/2046",[1090,4.024]],["name/2047",[1109,72.705]],["parent/2047",[1090,4.024]],["name/2048",[530,45.19]],["parent/2048",[1090,4.024]],["name/2049",[1110,72.705]],["parent/2049",[1090,4.024]],["name/2050",[1111,72.705]],["parent/2050",[1090,4.024]],["name/2051",[1112,72.705]],["parent/2051",[1090,4.024]],["name/2052",[1113,72.705]],["parent/2052",[1090,4.024]],["name/2053",[825,39.747]],["parent/2053",[]],["name/2054",[520,53.246]],["parent/2054",[825,3.895]],["name/2055",[521,54.247]],["parent/2055",[825,3.895]],["name/2056",[522,46.08]],["parent/2056",[825,3.895]],["name/2057",[523,49.352]],["parent/2057",[825,3.895]],["name/2058",[1047,64.232]],["parent/2058",[825,3.895]],["name/2059",[1048,64.232]],["parent/2059",[825,3.895]],["name/2060",[1049,64.232]],["parent/2060",[825,3.895]],["name/2061",[1050,61.719]],["parent/2061",[825,3.895]],["name/2062",[1051,61.719]],["parent/2062",[825,3.895]],["name/2063",[842,55.359]],["parent/2063",[825,3.895]],["name/2064",[1052,64.232]],["parent/2064",[825,3.895]],["name/2065",[1053,64.232]],["parent/2065",[825,3.895]],["name/2066",[1054,64.232]],["parent/2066",[825,3.895]],["name/2067",[1055,64.232]],["parent/2067",[825,3.895]],["name/2068",[1056,64.232]],["parent/2068",[825,3.895]],["name/2069",[532,48.138]],["parent/2069",[825,3.895]],["name/2070",[879,58.042]],["parent/2070",[825,3.895]],["name/2071",[718,56.611]],["parent/2071",[825,3.895]],["name/2072",[150,49.352]],["parent/2072",[825,3.895]],["name/2073",[1057,64.232]],["parent/2073",[825,3.895]],["name/2074",[530,45.19]],["parent/2074",[825,3.895]],["name/2075",[512,48.138]],["parent/2075",[825,3.895]],["name/2076",[524,49.352]],["parent/2076",[825,3.895]],["name/2077",[525,49.352]],["parent/2077",[825,3.895]],["name/2078",[531,49.352]],["parent/2078",[825,3.895]],["name/2079",[526,48.726]],["parent/2079",[825,3.895]],["name/2080",[527,52.337]],["parent/2080",[825,3.895]],["name/2081",[528,53.246]],["parent/2081",[825,3.895]],["name/2082",[529,54.247]],["parent/2082",[825,3.895]],["name/2083",[1058,64.232]],["parent/2083",[825,3.895]],["name/2084",[1059,64.232]],["parent/2084",[825,3.895]],["name/2085",[1060,64.232]],["parent/2085",[825,3.895]],["name/2086",[1061,64.232]],["parent/2086",[825,3.895]],["name/2087",[1062,64.232]],["parent/2087",[825,3.895]],["name/2088",[872,58.042]],["parent/2088",[825,3.895]],["name/2089",[1063,64.232]],["parent/2089",[825,3.895]],["name/2090",[881,58.042]],["parent/2090",[825,3.895]],["name/2091",[1114,40.254]],["parent/2091",[]],["name/2092",[520,53.246]],["parent/2092",[1114,3.944]],["name/2093",[521,54.247]],["parent/2093",[1114,3.944]],["name/2094",[522,46.08]],["parent/2094",[1114,3.944]],["name/2095",[523,49.352]],["parent/2095",[1114,3.944]],["name/2096",[530,45.19]],["parent/2096",[1114,3.944]],["name/2097",[512,48.138]],["parent/2097",[1114,3.944]],["name/2098",[524,49.352]],["parent/2098",[1114,3.944]],["name/2099",[525,49.352]],["parent/2099",[1114,3.944]],["name/2100",[531,49.352]],["parent/2100",[1114,3.944]],["name/2101",[526,48.726]],["parent/2101",[1114,3.944]],["name/2102",[527,52.337]],["parent/2102",[1114,3.944]],["name/2103",[528,53.246]],["parent/2103",[1114,3.944]],["name/2104",[529,54.247]],["parent/2104",[1114,3.944]],["name/2105",[1047,64.232]],["parent/2105",[1114,3.944]],["name/2106",[1048,64.232]],["parent/2106",[1114,3.944]],["name/2107",[1049,64.232]],["parent/2107",[1114,3.944]],["name/2108",[1050,61.719]],["parent/2108",[1114,3.944]],["name/2109",[1051,61.719]],["parent/2109",[1114,3.944]],["name/2110",[842,55.359]],["parent/2110",[1114,3.944]],["name/2111",[1058,64.232]],["parent/2111",[1114,3.944]],["name/2112",[1059,64.232]],["parent/2112",[1114,3.944]],["name/2113",[1060,64.232]],["parent/2113",[1114,3.944]],["name/2114",[1061,64.232]],["parent/2114",[1114,3.944]],["name/2115",[1062,64.232]],["parent/2115",[1114,3.944]],["name/2116",[1052,64.232]],["parent/2116",[1114,3.944]],["name/2117",[1053,64.232]],["parent/2117",[1114,3.944]],["name/2118",[872,58.042]],["parent/2118",[1114,3.944]],["name/2119",[1063,64.232]],["parent/2119",[1114,3.944]],["name/2120",[1054,64.232]],["parent/2120",[1114,3.944]],["name/2121",[1055,64.232]],["parent/2121",[1114,3.944]],["name/2122",[1056,64.232]],["parent/2122",[1114,3.944]],["name/2123",[532,48.138]],["parent/2123",[1114,3.944]],["name/2124",[879,58.042]],["parent/2124",[1114,3.944]],["name/2125",[718,56.611]],["parent/2125",[1114,3.944]],["name/2126",[150,49.352]],["parent/2126",[1114,3.944]],["name/2127",[1057,64.232]],["parent/2127",[1114,3.944]],["name/2128",[881,58.042]],["parent/2128",[1114,3.944]],["name/2129",[1115,49.352]],["parent/2129",[]],["name/2130",[1116,72.705]],["parent/2130",[1115,4.836]],["name/2131",[1117,72.705]],["parent/2131",[1115,4.836]],["name/2132",[1118,72.705]],["parent/2132",[1115,4.836]],["name/2133",[1119,72.705]],["parent/2133",[1115,4.836]],["name/2134",[1120,72.705]],["parent/2134",[1115,4.836]],["name/2135",[1121,72.705]],["parent/2135",[1115,4.836]],["name/2136",[1122,72.705]],["parent/2136",[1115,4.836]],["name/2137",[1123,72.705]],["parent/2137",[1115,4.836]],["name/2138",[1124,72.705]],["parent/2138",[1115,4.836]],["name/2139",[1125,72.705]],["parent/2139",[1115,4.836]],["name/2140",[1126,72.705]],["parent/2140",[1115,4.836]],["name/2141",[1127,72.705]],["parent/2141",[1115,4.836]],["name/2142",[1050,61.719]],["parent/2142",[1115,4.836]],["name/2143",[1051,61.719]],["parent/2143",[1115,4.836]],["name/2144",[1128,61.719]],["parent/2144",[]],["name/2145",[716,54.247]],["parent/2145",[1128,6.048]],["name/2146",[683,64.232]],["parent/2146",[1128,6.048]],["name/2147",[532,48.138]],["parent/2147",[1128,6.048]],["name/2148",[1129,56.611]],["parent/2148",[]],["name/2149",[530,45.19]],["parent/2149",[1129,5.547]],["name/2150",[527,52.337]],["parent/2150",[1129,5.547]],["name/2151",[520,53.246]],["parent/2151",[1129,5.547]],["name/2152",[528,53.246]],["parent/2152",[1129,5.547]],["name/2153",[521,54.247]],["parent/2153",[1129,5.547]],["name/2154",[529,54.247]],["parent/2154",[1129,5.547]]],"invertedIndex":[["absoluteuri",{"_index":838,"name":{"1531":{},"1655":{}},"parent":{}}],["accept",{"_index":1064,"name":{"1978":{}},"parent":{}}],["acceptmorevalues",{"_index":646,"name":{"1255":{}},"parent":{}}],["actualport",{"_index":890,"name":{"1610":{},"1862":{}},"parent":{}}],["add",{"_index":1011,"name":{"1841":{}},"parent":{}}],["addall",{"_index":1012,"name":{"1842":{}},"parent":{}}],["addandget",{"_index":709,"name":{"1334":{}},"parent":{}}],["addargument",{"_index":627,"name":{"1234":{}},"parent":{}}],["addarguments",{"_index":628,"name":{"1235":{}},"parent":{}}],["addcertpath",{"_index":448,"name":{"931":{}},"parent":{}}],["addcertvalue",{"_index":449,"name":{"933":{}},"parent":{}}],["addchoice",{"_index":422,"name":{"892":{}},"parent":{}}],["addclosehook",{"_index":692,"name":{"1310":{}},"parent":{}}],["addcookie",{"_index":934,"name":{"1707":{}},"parent":{}}],["addcrlpath",{"_index":106,"name":{"109":{},"279":{},"388":{},"555":{},"691":{},"776":{},"976":{}},"parent":{}}],["addcrlvalue",{"_index":108,"name":{"111":{},"281":{},"390":{},"557":{},"693":{},"778":{},"978":{}},"parent":{}}],["addenabledciphersuite",{"_index":110,"name":{"113":{},"283":{},"398":{},"563":{},"695":{},"780":{},"980":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":113,"name":{"116":{},"286":{},"401":{},"566":{},"698":{},"783":{},"983":{}},"parent":{}}],["addheader",{"_index":199,"name":{"217":{},"956":{},"1096":{}},"parent":{}}],["addinboundinterceptor",{"_index":747,"name":{"1387":{}},"parent":{}}],["addoption",{"_index":623,"name":{"1230":{}},"parent":{}}],["addoptions",{"_index":624,"name":{"1231":{}},"parent":{}}],["addoutboundinterceptor",{"_index":745,"name":{"1385":{}},"parent":{}}],["address",{"_index":992,"name":{"1798":{},"1817":{},"1832":{}},"parent":{}}],["addressresolveroptions",{"_index":57,"name":{"58":{}},"parent":{"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{}}}],["addsearchdomain",{"_index":83,"name":{"84":{}},"parent":{}}],["addserver",{"_index":86,"name":{"87":{}},"parent":{}}],["addsubprotocol",{"_index":509,"name":{"1105":{}},"parent":{}}],["addwebsocketsubprotocol",{"_index":376,"name":{"663":{}},"parent":{}}],["all",{"_index":662,"name":{"1272":{}},"parent":{}}],["allarguments",{"_index":637,"name":{"1246":{}},"parent":{}}],["any",{"_index":663,"name":{"1273":{}},"parent":{}}],["append",{"_index":965,"name":{"1752":{}},"parent":{}}],["appendarrayelement",{"_index":983,"name":{"1777":{}},"parent":{}}],["appendbuffer",{"_index":573,"name":{"1175":{}},"parent":{}}],["appendbyte",{"_index":574,"name":{"1176":{}},"parent":{}}],["appendbytes",{"_index":613,"name":{"1215":{}},"parent":{}}],["appenddouble",{"_index":589,"name":{"1191":{}},"parent":{}}],["appendfloat",{"_index":588,"name":{"1190":{}},"parent":{}}],["appendint",{"_index":576,"name":{"1178":{}},"parent":{}}],["appendintle",{"_index":577,"name":{"1179":{}},"parent":{}}],["appendlong",{"_index":582,"name":{"1184":{}},"parent":{}}],["appendlongle",{"_index":583,"name":{"1185":{}},"parent":{}}],["appendmedium",{"_index":580,"name":{"1182":{}},"parent":{}}],["appendmediumle",{"_index":581,"name":{"1183":{}},"parent":{}}],["appendshort",{"_index":584,"name":{"1186":{}},"parent":{}}],["appendshortle",{"_index":585,"name":{"1187":{}},"parent":{}}],["appendstring",{"_index":590,"name":{"1192":{}},"parent":{}}],["appendunsignedbyte",{"_index":575,"name":{"1177":{}},"parent":{}}],["appendunsignedint",{"_index":578,"name":{"1180":{}},"parent":{}}],["appendunsignedintle",{"_index":579,"name":{"1181":{}},"parent":{}}],["appendunsignedshort",{"_index":586,"name":{"1188":{}},"parent":{}}],["appendunsignedshortle",{"_index":587,"name":{"1189":{}},"parent":{}}],["argument",{"_index":87,"name":{"88":{}},"parent":{"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{}}}],["arrayeventmode",{"_index":959,"name":{"1739":{}},"parent":{}}],["arrayvalue",{"_index":952,"name":{"1727":{}},"parent":{}}],["arrayvaluemode",{"_index":960,"name":{"1740":{}},"parent":{}}],["asyncfile",{"_index":519,"name":{"1117":{}},"parent":{"1118":{},"1119":{},"1120":{},"1121":{},"1122":{},"1123":{},"1124":{},"1125":{},"1126":{},"1127":{},"1128":{},"1129":{},"1130":{},"1131":{},"1132":{},"1133":{},"1134":{},"1135":{},"1136":{},"1137":{},"1138":{}}}],["asyncmap",{"_index":540,"name":{"1139":{}},"parent":{"1140":{},"1141":{},"1142":{},"1143":{},"1144":{},"1145":{},"1146":{},"1147":{},"1148":{}}}],["asyncresult",{"_index":514,"name":{"1112":{}},"parent":{"1113":{},"1114":{},"1115":{},"1116":{}}}],["badkey",{"_index":21,"name":{"22":{}},"parent":{}}],["badsig",{"_index":20,"name":{"21":{}},"parent":{}}],["badtime",{"_index":22,"name":{"23":{}},"parent":{}}],["badvers",{"_index":19,"name":{"20":{}},"parent":{}}],["binarydata",{"_index":1126,"name":{"2140":{}},"parent":{}}],["binaryframe",{"_index":1116,"name":{"2130":{}},"parent":{}}],["binaryhandlerid",{"_index":1047,"name":{"1943":{},"2058":{},"2105":{}},"parent":{}}],["binarymessagehandler",{"_index":1055,"name":{"1952":{},"2067":{},"2121":{}},"parent":{}}],["binaryvalue",{"_index":947,"name":{"1722":{}},"parent":{}}],["blockmulticastgroup",{"_index":721,"name":{"1350":{}},"parent":{}}],["body",{"_index":726,"name":{"1362":{},"1800":{}},"parent":{}}],["bodyendhandler",{"_index":931,"name":{"1700":{}},"parent":{}}],["bodyhandler",{"_index":862,"name":{"1568":{},"1656":{}},"parent":{}}],["bodystream",{"_index":998,"name":{"1815":{}},"parent":{}}],["booleanvalue",{"_index":944,"name":{"1719":{}},"parent":{}}],["buffer",{"_index":548,"name":{"1149":{},"1150":{}},"parent":{"1150":{},"1151":{},"1152":{},"1153":{},"1154":{},"1155":{},"1156":{},"1157":{},"1158":{},"1159":{},"1160":{},"1161":{},"1162":{},"1163":{},"1164":{},"1165":{},"1166":{},"1167":{},"1168":{},"1169":{},"1170":{},"1171":{},"1172":{},"1173":{},"1174":{},"1175":{},"1176":{},"1177":{},"1178":{},"1179":{},"1180":{},"1181":{},"1182":{},"1183":{},"1184":{},"1185":{},"1186":{},"1187":{},"1188":{},"1189":{},"1190":{},"1191":{},"1192":{},"1193":{},"1194":{},"1195":{},"1196":{},"1197":{},"1198":{},"1199":{},"1200":{},"1201":{},"1202":{},"1203":{},"1204":{},"1205":{},"1206":{},"1207":{},"1208":{},"1209":{},"1210":{},"1211":{},"1212":{},"1213":{},"1214":{},"1215":{},"1216":{},"1217":{}}}],["bytesread",{"_index":904,"name":{"1647":{}},"parent":{}}],["byteswritten",{"_index":932,"name":{"1701":{}},"parent":{}}],["cancel",{"_index":1089,"name":{"2018":{}},"parent":{}}],["canceltimer",{"_index":1104,"name":{"2038":{}},"parent":{}}],["caseinsensitivemultimap",{"_index":1007,"name":{"1835":{}},"parent":{}}],["cause",{"_index":517,"name":{"1115":{},"1279":{},"1471":{}},"parent":{}}],["certificatepath",{"_index":1045,"name":{"1935":{}},"parent":{}}],["charset",{"_index":897,"name":{"1625":{}},"parent":{}}],["chmod",{"_index":767,"name":{"1409":{}},"parent":{}}],["chmodblocking",{"_index":768,"name":{"1410":{}},"parent":{}}],["chmodrecursive",{"_index":769,"name":{"1411":{}},"parent":{}}],["chmodrecursiveblocking",{"_index":770,"name":{"1412":{}},"parent":{}}],["chown",{"_index":771,"name":{"1413":{}},"parent":{}}],["chownblocking",{"_index":772,"name":{"1414":{}},"parent":{}}],["clear",{"_index":546,"name":{"1147":{},"1782":{},"1846":{}},"parent":{}}],["cli",{"_index":616,"name":{"1218":{},"1245":{}},"parent":{"1219":{},"1220":{},"1221":{},"1222":{},"1223":{},"1224":{},"1225":{},"1226":{},"1227":{},"1228":{},"1229":{},"1230":{},"1231":{},"1232":{},"1233":{},"1234":{},"1235":{},"1236":{},"1237":{},"1238":{},"1239":{},"1240":{},"1241":{},"1242":{}}}],["clientauth",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{}}}],["clientoptionsbase",{"_index":102,"name":{"104":{}},"parent":{"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{}}}],["close",{"_index":532,"name":{"1131":{},"1346":{},"1510":{},"1581":{},"1609":{},"1695":{},"1789":{},"1833":{},"1855":{},"1861":{},"1881":{},"1892":{},"1954":{},"2040":{},"2069":{},"2123":{},"2147":{}},"parent":{}}],["closed",{"_index":928,"name":{"1697":{}},"parent":{}}],["closehandler",{"_index":872,"name":{"1580":{},"1691":{},"1882":{},"1973":{},"2088":{},"2118":{}},"parent":{}}],["closereason",{"_index":1051,"name":{"1947":{},"2062":{},"2109":{},"2143":{}},"parent":{}}],["closestatuscode",{"_index":1050,"name":{"1946":{},"2061":{},"2108":{},"2142":{}},"parent":{}}],["clusteredvertx",{"_index":1091,"name":{"2022":{}},"parent":{}}],["commandline",{"_index":636,"name":{"1243":{}},"parent":{"1244":{},"1245":{},"1246":{},"1247":{},"1248":{},"1249":{},"1250":{},"1251":{},"1252":{},"1253":{},"1254":{},"1255":{},"1256":{},"1257":{},"1258":{},"1259":{},"1260":{}}}],["compareandset",{"_index":711,"name":{"1336":{}},"parent":{}}],["complete",{"_index":653,"name":{"1262":{},"1466":{},"1895":{}},"parent":{}}],["completer",{"_index":658,"name":{"1268":{},"1478":{}},"parent":{}}],["completionhandler",{"_index":1002,"name":{"1820":{}},"parent":{}}],["compose",{"_index":656,"name":{"1266":{},"1475":{}},"parent":{}}],["compositefuture",{"_index":652,"name":{"1261":{}},"parent":{"1262":{},"1263":{},"1264":{},"1265":{},"1266":{},"1267":{},"1268":{},"1269":{},"1270":{},"1271":{},"1272":{},"1273":{},"1274":{},"1275":{},"1276":{},"1277":{},"1278":{},"1279":{},"1280":{},"1281":{},"1282":{},"1283":{},"1284":{},"1285":{},"1286":{},"1287":{},"1288":{},"1289":{},"1290":{},"1291":{}}}],["config",{"_index":685,"name":{"1299":{}},"parent":{}}],["connect",{"_index":31,"name":{"32":{},"1854":{}},"parent":{}}],["connecthandler",{"_index":1021,"name":{"1859":{}},"parent":{}}],["connection",{"_index":849,"name":{"1545":{},"1668":{}},"parent":{}}],["connectionhandler",{"_index":829,"name":{"1508":{},"1546":{},"1602":{}},"parent":{}}],["connectstream",{"_index":1020,"name":{"1858":{}},"parent":{}}],["constructor",{"_index":58,"name":{"59":{},"89":{},"105":{},"180":{},"190":{},"214":{},"223":{},"249":{},"261":{},"352":{},"360":{},"368":{},"382":{},"539":{},"673":{},"675":{},"683":{},"687":{},"768":{},"845":{},"859":{},"883":{},"887":{},"915":{},"929":{},"935":{},"943":{},"955":{},"966":{},"974":{},"1039":{},"1095":{}},"parent":{}}],["consumer",{"_index":742,"name":{"1381":{}},"parent":{}}],["contains",{"_index":1009,"name":{"1838":{}},"parent":{}}],["containskey",{"_index":986,"name":{"1790":{}},"parent":{}}],["containsvalue",{"_index":987,"name":{"1791":{}},"parent":{}}],["contenttransferencoding",{"_index":896,"name":{"1624":{}},"parent":{}}],["contenttype",{"_index":895,"name":{"1623":{}},"parent":{}}],["context",{"_index":678,"name":{"1292":{}},"parent":{"1293":{},"1294":{},"1295":{},"1296":{},"1297":{},"1298":{},"1299":{},"1300":{},"1301":{},"1302":{},"1303":{},"1304":{},"1305":{},"1306":{},"1307":{},"1308":{},"1309":{},"1310":{},"1311":{}}}],["continuationframe",{"_index":1120,"name":{"2134":{}},"parent":{}}],["continuehandler",{"_index":844,"name":{"1539":{}},"parent":{}}],["cookie",{"_index":694,"name":{"1312":{},"1313":{}},"parent":{"1313":{},"1314":{},"1315":{},"1316":{},"1317":{},"1318":{},"1319":{},"1320":{},"1321":{},"1322":{},"1323":{},"1324":{},"1325":{},"1326":{},"1327":{},"1328":{}}}],["cookiecount",{"_index":918,"name":{"1672":{}},"parent":{}}],["cookies",{"_index":861,"name":{"1567":{}},"parent":{}}],["cookiesamesite",{"_index":4,"name":{"4":{}},"parent":{"5":{},"6":{},"7":{}}}],["copy",{"_index":610,"name":{"1212":{},"1401":{},"1761":{}},"parent":{}}],["copyblocking",{"_index":760,"name":{"1402":{}},"parent":{}}],["copyoptions",{"_index":176,"name":{"179":{}},"parent":{"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{}}}],["copyrecursive",{"_index":761,"name":{"1403":{}},"parent":{}}],["copyrecursiveblocking",{"_index":762,"name":{"1404":{}},"parent":{}}],["counter",{"_index":705,"name":{"1329":{}},"parent":{"1330":{},"1331":{},"1332":{},"1333":{},"1334":{},"1335":{},"1336":{}}}],["create",{"_index":617,"name":{"1219":{},"1244":{},"1762":{},"1937":{}},"parent":{}}],["createdatagramsocket",{"_index":1098,"name":{"2029":{}},"parent":{}}],["creatednsclient",{"_index":1099,"name":{"2032":{}},"parent":{}}],["createfile",{"_index":800,"name":{"1443":{}},"parent":{}}],["createfileblocking",{"_index":801,"name":{"1444":{}},"parent":{}}],["createhttpclient",{"_index":1097,"name":{"2028":{}},"parent":{}}],["createhttpserver",{"_index":1096,"name":{"2027":{}},"parent":{}}],["createnetclient",{"_index":1095,"name":{"2026":{}},"parent":{}}],["createnetserver",{"_index":1094,"name":{"2025":{}},"parent":{}}],["createsharedworkerexecutor",{"_index":1108,"name":{"2046":{}},"parent":{}}],["createtempdirectory",{"_index":806,"name":{"1449":{}},"parent":{}}],["createtempdirectoryblocking",{"_index":807,"name":{"1450":{}},"parent":{}}],["createtempfile",{"_index":808,"name":{"1451":{}},"parent":{}}],["createtempfileblocking",{"_index":809,"name":{"1452":{}},"parent":{}}],["creationtime",{"_index":752,"name":{"1392":{}},"parent":{}}],["currentcontext",{"_index":1092,"name":{"2023":{}},"parent":{}}],["customframehandler",{"_index":863,"name":{"1569":{},"1667":{}},"parent":{}}],["data",{"_index":714,"name":{"1339":{}},"parent":{}}],["datagrampacket",{"_index":712,"name":{"1337":{}},"parent":{"1338":{},"1339":{}}}],["datagramsocket",{"_index":715,"name":{"1340":{}},"parent":{"1341":{},"1342":{},"1343":{},"1344":{},"1345":{},"1346":{},"1347":{},"1348":{},"1349":{},"1350":{},"1351":{},"1352":{},"1353":{},"1354":{},"1355":{},"1356":{},"1357":{}}}],["datagramsocketoptions",{"_index":185,"name":{"189":{}},"parent":{"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{}}}],["decrementandget",{"_index":708,"name":{"1333":{}},"parent":{}}],["default_write_queue_max_size",{"_index":1005,"name":{"1823":{}},"parent":{}}],["delete",{"_index":29,"name":{"30":{},"1427":{},"1500":{},"1936":{}},"parent":{}}],["deleteabs",{"_index":824,"name":{"1501":{}},"parent":{}}],["deleteblocking",{"_index":785,"name":{"1428":{}},"parent":{}}],["deleterecursive",{"_index":786,"name":{"1429":{}},"parent":{}}],["deleterecursiveblocking",{"_index":787,"name":{"1430":{}},"parent":{}}],["delimitedmode",{"_index":1038,"name":{"1921":{}},"parent":{}}],["deliverycontext",{"_index":723,"name":{"1358":{}},"parent":{"1359":{},"1360":{},"1361":{},"1362":{}}}],["deliveryoptions",{"_index":196,"name":{"213":{},"1831":{}},"parent":{"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{}}}],["deploymentid",{"_index":684,"name":{"1298":{}},"parent":{}}],["deploymentids",{"_index":1107,"name":{"2043":{}},"parent":{}}],["deploymentoptions",{"_index":204,"name":{"222":{}},"parent":{"223":{},"224":{},"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{},"245":{},"246":{},"247":{}}}],["deployverticle",{"_index":1105,"name":{"2041":{}},"parent":{}}],["dnsclient",{"_index":727,"name":{"1363":{}},"parent":{"1364":{},"1365":{},"1366":{},"1367":{},"1368":{},"1369":{},"1370":{},"1371":{},"1372":{},"1373":{},"1374":{},"1375":{}}}],["dnsclientoptions",{"_index":229,"name":{"248":{}},"parent":{"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{},"258":{},"259":{}}}],["dnsresponsecode",{"_index":7,"name":{"8":{}},"parent":{"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{}}}],["domainsocketaddress",{"_index":1080,"name":{"1995":{}},"parent":{}}],["doublevalue",{"_index":942,"name":{"1717":{}},"parent":{}}],["drainhandler",{"_index":529,"name":{"1128":{},"1518":{},"1680":{},"1830":{},"1876":{},"1967":{},"2082":{},"2104":{},"2154":{}},"parent":{}}],["encode",{"_index":704,"name":{"1328":{}},"parent":{}}],["end",{"_index":520,"name":{"1118":{},"1541":{},"1675":{},"1736":{},"1824":{},"1864":{},"1939":{},"2054":{},"2092":{},"2151":{}},"parent":{}}],["end_array",{"_index":42,"name":{"43":{}},"parent":{}}],["end_object",{"_index":40,"name":{"41":{}},"parent":{}}],["ended",{"_index":927,"name":{"1696":{}},"parent":{}}],["endhandler",{"_index":526,"name":{"1125":{},"1355":{},"1523":{},"1559":{},"1616":{},"1637":{},"1692":{},"1744":{},"1814":{},"1873":{},"1912":{},"1930":{},"1964":{},"2017":{},"2079":{},"2101":{}},"parent":{}}],["endoncomplete",{"_index":1026,"name":{"1890":{}},"parent":{}}],["endonfailure",{"_index":1024,"name":{"1888":{}},"parent":{}}],["endonsuccess",{"_index":1025,"name":{"1889":{}},"parent":{}}],["entries",{"_index":1015,"name":{"1848":{}},"parent":{}}],["eventbus",{"_index":740,"name":{"1376":{},"2031":{}},"parent":{"1377":{},"1378":{},"1379":{},"1380":{},"1381":{},"1382":{},"1383":{},"1384":{},"1385":{},"1386":{},"1387":{},"1388":{},"1389":{},"1390":{}}}],["eventbusoptions",{"_index":236,"name":{"260":{}},"parent":{"261":{},"262":{},"263":{},"264":{},"265":{},"266":{},"267":{},"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{},"285":{},"286":{},"287":{},"288":{},"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{},"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"322":{},"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{},"331":{},"332":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{},"340":{},"341":{},"342":{},"343":{},"344":{},"345":{},"346":{},"347":{},"348":{},"349":{},"350":{}}}],["exceptionhandler",{"_index":530,"name":{"1129":{},"1309":{},"1357":{},"1515":{},"1556":{},"1588":{},"1603":{},"1614":{},"1632":{},"1677":{},"1746":{},"1809":{},"1827":{},"1868":{},"1907":{},"1925":{},"1959":{},"2008":{},"2012":{},"2048":{},"2074":{},"2096":{},"2149":{}},"parent":{}}],["executeblocking",{"_index":683,"name":{"1297":{},"2045":{},"2146":{}},"parent":{}}],["exists",{"_index":802,"name":{"1445":{}},"parent":{}}],["existsblocking",{"_index":803,"name":{"1446":{}},"parent":{}}],["fail",{"_index":674,"name":{"1288":{},"1467":{},"1805":{},"1896":{}},"parent":{}}],["failed",{"_index":516,"name":{"1114":{},"1281":{},"1473":{}},"parent":{}}],["failedfuture",{"_index":673,"name":{"1287":{},"1460":{}},"parent":{}}],["fetch",{"_index":531,"name":{"1130":{},"1354":{},"1522":{},"1554":{},"1619":{},"1636":{},"1743":{},"1813":{},"1872":{},"1911":{},"1928":{},"1963":{},"2016":{},"2078":{},"2100":{}},"parent":{}}],["fieldname",{"_index":937,"name":{"1711":{}},"parent":{}}],["file",{"_index":899,"name":{"1628":{}},"parent":{}}],["filename",{"_index":893,"name":{"1621":{}},"parent":{}}],["fileprops",{"_index":751,"name":{"1391":{}},"parent":{"1392":{},"1393":{},"1394":{},"1395":{},"1396":{},"1397":{},"1398":{},"1399":{}}}],["filesystem",{"_index":759,"name":{"1400":{},"2030":{}},"parent":{"1401":{},"1402":{},"1403":{},"1404":{},"1405":{},"1406":{},"1407":{},"1408":{},"1409":{},"1410":{},"1411":{},"1412":{},"1413":{},"1414":{},"1415":{},"1416":{},"1417":{},"1418":{},"1419":{},"1420":{},"1421":{},"1422":{},"1423":{},"1424":{},"1425":{},"1426":{},"1427":{},"1428":{},"1429":{},"1430":{},"1431":{},"1432":{},"1433":{},"1434":{},"1435":{},"1436":{},"1437":{},"1438":{},"1439":{},"1440":{},"1441":{},"1442":{},"1443":{},"1444":{},"1445":{},"1446":{},"1447":{},"1448":{},"1449":{},"1450":{},"1451":{},"1452":{}}}],["filesystemoptions",{"_index":255,"name":{"351":{}},"parent":{"352":{},"353":{},"354":{},"355":{},"356":{},"357":{},"358":{}}}],["filesystemprops",{"_index":810,"name":{"1453":{}},"parent":{"1454":{},"1455":{},"1456":{}}}],["fixedsizemode",{"_index":1039,"name":{"1922":{}},"parent":{}}],["flags",{"_index":884,"name":{"1596":{}},"parent":{}}],["flatmap",{"_index":655,"name":{"1265":{},"1474":{}},"parent":{}}],["floatvalue",{"_index":941,"name":{"1716":{}},"parent":{}}],["flush",{"_index":534,"name":{"1133":{}},"parent":{}}],["formattributes",{"_index":912,"name":{"1662":{}},"parent":{}}],["formerror",{"_index":9,"name":{"10":{}},"parent":{}}],["framehandler",{"_index":1063,"name":{"1974":{},"2089":{},"2119":{}},"parent":{}}],["from",{"_index":972,"name":{"1763":{}},"parent":{}}],["fromuri",{"_index":975,"name":{"1766":{}},"parent":{}}],["fsprops",{"_index":804,"name":{"1447":{}},"parent":{}}],["fspropsblocking",{"_index":805,"name":{"1448":{}},"parent":{}}],["future",{"_index":671,"name":{"1285":{},"1457":{},"1458":{},"1899":{}},"parent":{"1458":{},"1459":{},"1460":{},"1461":{},"1462":{},"1463":{},"1464":{},"1465":{},"1466":{},"1467":{},"1468":{},"1469":{},"1470":{},"1471":{},"1472":{},"1473":{},"1474":{},"1475":{},"1476":{},"1477":{},"1478":{},"1479":{},"1480":{},"1481":{},"1482":{}}}],["get",{"_index":25,"name":{"26":{},"1140":{},"1304":{},"1330":{},"1487":{},"1779":{},"1836":{}},"parent":{}}],["getabs",{"_index":816,"name":{"1488":{}},"parent":{}}],["getacceptbacklog",{"_index":237,"name":{"262":{},"540":{},"769":{}},"parent":{}}],["getaddressresolveroptions",{"_index":468,"name":{"1040":{}},"parent":{}}],["getall",{"_index":1008,"name":{"1837":{}},"parent":{}}],["getalpnversions",{"_index":283,"name":{"383":{},"544":{}},"parent":{}}],["getandadd",{"_index":710,"name":{"1335":{}},"parent":{}}],["getandincrement",{"_index":707,"name":{"1332":{}},"parent":{}}],["getargname",{"_index":88,"name":{"90":{},"888":{}},"parent":{}}],["getargument",{"_index":631,"name":{"1238":{}},"parent":{}}],["getarguments",{"_index":626,"name":{"1233":{}},"parent":{}}],["getargumentvalue",{"_index":639,"name":{"1248":{}},"parent":{}}],["getarrayelement",{"_index":980,"name":{"1774":{}},"parent":{}}],["getasyncmap",{"_index":1069,"name":{"1984":{}},"parent":{}}],["getblockedthreadcheckinterval",{"_index":470,"name":{"1042":{}},"parent":{}}],["getblockedthreadcheckintervalunit",{"_index":472,"name":{"1044":{}},"parent":{}}],["getbuffer",{"_index":571,"name":{"1173":{}},"parent":{}}],["getbyte",{"_index":553,"name":{"1155":{}},"parent":{}}],["getbytebuf",{"_index":615,"name":{"1217":{}},"parent":{}}],["getbytes",{"_index":612,"name":{"1214":{}},"parent":{}}],["getcachemaxtimetolive",{"_index":59,"name":{"60":{}},"parent":{}}],["getcachemintimetolive",{"_index":61,"name":{"62":{}},"parent":{}}],["getcachenegativetimetolive",{"_index":63,"name":{"64":{}},"parent":{}}],["getcertpaths",{"_index":436,"name":{"917":{},"930":{}},"parent":{}}],["getcertvalues",{"_index":439,"name":{"920":{},"932":{}},"parent":{}}],["getchoices",{"_index":420,"name":{"890":{}},"parent":{}}],["getclientauth",{"_index":239,"name":{"264":{},"546":{},"771":{}},"parent":{}}],["getclusterhost",{"_index":474,"name":{"1046":{}},"parent":{}}],["getclusterpinginterval",{"_index":241,"name":{"266":{},"1048":{}},"parent":{}}],["getclusterpingreplyinterval",{"_index":243,"name":{"268":{},"1050":{}},"parent":{}}],["getclusterport",{"_index":476,"name":{"1052":{}},"parent":{}}],["getclusterpublichost",{"_index":245,"name":{"270":{},"1054":{}},"parent":{}}],["getclusterpublicport",{"_index":247,"name":{"272":{},"1056":{}},"parent":{}}],["getclusterwidemap",{"_index":1068,"name":{"1983":{}},"parent":{}}],["getcodecname",{"_index":197,"name":{"215":{}},"parent":{}}],["getcompressionlevel",{"_index":356,"name":{"550":{}},"parent":{}}],["getconfig",{"_index":205,"name":{"224":{}},"parent":{}}],["getconnecttimeout",{"_index":103,"name":{"106":{},"276":{},"385":{},"688":{}},"parent":{}}],["getcookie",{"_index":917,"name":{"1671":{}},"parent":{}}],["getcounter",{"_index":1075,"name":{"1990":{}},"parent":{}}],["getcrlpaths",{"_index":105,"name":{"108":{},"278":{},"387":{},"554":{},"690":{},"775":{},"975":{}},"parent":{}}],["getcrlvalues",{"_index":107,"name":{"110":{},"280":{},"389":{},"556":{},"692":{},"777":{},"977":{}},"parent":{}}],["getdebugdata",{"_index":263,"name":{"361":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":285,"name":{"391":{},"558":{}},"parent":{}}],["getdefaulthost",{"_index":287,"name":{"393":{}},"parent":{}}],["getdefaultport",{"_index":289,"name":{"395":{}},"parent":{}}],["getdefaultvalue",{"_index":90,"name":{"92":{},"893":{}},"parent":{}}],["getdependency",{"_index":460,"name":{"967":{}},"parent":{}}],["getdescription",{"_index":92,"name":{"94":{},"895":{},"1223":{}},"parent":{}}],["getdomain",{"_index":696,"name":{"1318":{}},"parent":{}}],["getdouble",{"_index":561,"name":{"1163":{}},"parent":{}}],["getenabledciphersuites",{"_index":109,"name":{"112":{},"282":{},"397":{},"562":{},"694":{},"779":{},"979":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":111,"name":{"114":{},"284":{},"399":{},"564":{},"696":{},"781":{},"981":{}},"parent":{}}],["geterrorcode",{"_index":265,"name":{"363":{}},"parent":{}}],["geteventbusoptions",{"_index":478,"name":{"1060":{}},"parent":{}}],["geteventlooppoolsize",{"_index":480,"name":{"1062":{}},"parent":{}}],["getextraclasspath",{"_index":207,"name":{"226":{}},"parent":{}}],["getfilecachedir",{"_index":258,"name":{"355":{}},"parent":{}}],["getfilesystemoptions",{"_index":484,"name":{"1066":{}},"parent":{}}],["getfloat",{"_index":562,"name":{"1164":{}},"parent":{}}],["getformattribute",{"_index":913,"name":{"1663":{}},"parent":{}}],["gethagroup",{"_index":488,"name":{"1070":{}},"parent":{}}],["getheader",{"_index":858,"name":{"1564":{},"1650":{}},"parent":{}}],["getheadertablesize",{"_index":270,"name":{"369":{}},"parent":{}}],["gethost",{"_index":230,"name":{"250":{},"287":{},"569":{},"784":{},"944":{},"957":{},"1097":{},"1536":{}},"parent":{}}],["gethostnameverificationalgorithm",{"_index":389,"name":{"699":{}},"parent":{}}],["gethostspath",{"_index":65,"name":{"66":{}},"parent":{}}],["gethostsvalue",{"_index":67,"name":{"68":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":295,"name":{"406":{},"571":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":297,"name":{"408":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":299,"name":{"410":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":301,"name":{"412":{}},"parent":{}}],["getidletimeout",{"_index":114,"name":{"117":{},"289":{},"414":{},"573":{},"701":{},"786":{},"984":{}},"parent":{}}],["getidletimeoutunit",{"_index":116,"name":{"119":{},"291":{},"416":{},"575":{},"703":{},"788":{},"986":{}},"parent":{}}],["getindex",{"_index":96,"name":{"98":{}},"parent":{}}],["getinitialsettings",{"_index":303,"name":{"418":{},"577":{}},"parent":{}}],["getinitialwindowsize",{"_index":272,"name":{"371":{}},"parent":{}}],["getinstancecount",{"_index":691,"name":{"1308":{}},"parent":{}}],["getinstances",{"_index":211,"name":{"230":{}},"parent":{}}],["getint",{"_index":555,"name":{"1157":{}},"parent":{}}],["getinternalblockingpoolsize",{"_index":490,"name":{"1072":{}},"parent":{}}],["getintle",{"_index":556,"name":{"1158":{}},"parent":{}}],["getisolatedclasses",{"_index":213,"name":{"232":{}},"parent":{}}],["getisolationgroup",{"_index":215,"name":{"234":{}},"parent":{}}],["getjdksslengineoptions",{"_index":118,"name":{"121":{},"293":{},"420":{},"579":{},"705":{},"790":{},"988":{}},"parent":{}}],["getkeepalivetimeout",{"_index":307,"name":{"424":{}},"parent":{}}],["getkeypaths",{"_index":442,"name":{"923":{}},"parent":{}}],["getkeystoreoptions",{"_index":120,"name":{"123":{},"295":{},"426":{},"581":{},"707":{},"792":{},"990":{}},"parent":{}}],["getkeyvalues",{"_index":445,"name":{"926":{}},"parent":{}}],["getlaststreamid",{"_index":267,"name":{"365":{}},"parent":{}}],["getlocaladdress",{"_index":122,"name":{"125":{},"428":{},"709":{}},"parent":{}}],["getlocalasyncmap",{"_index":1070,"name":{"1985":{}},"parent":{}}],["getlocalcounter",{"_index":1076,"name":{"1991":{}},"parent":{}}],["getlocallock",{"_index":1073,"name":{"1988":{}},"parent":{}}],["getlocallockwithtimeout",{"_index":1074,"name":{"1989":{}},"parent":{}}],["getlocalmap",{"_index":1077,"name":{"1992":{}},"parent":{}}],["getlock",{"_index":1071,"name":{"1986":{}},"parent":{}}],["getlockwithtimeout",{"_index":1072,"name":{"1987":{}},"parent":{}}],["getlogactivity",{"_index":124,"name":{"127":{},"195":{},"252":{},"297":{},"430":{},"583":{},"711":{},"794":{},"846":{},"992":{}},"parent":{}}],["getlong",{"_index":559,"name":{"1161":{}},"parent":{}}],["getlongle",{"_index":560,"name":{"1162":{}},"parent":{}}],["getlongname",{"_index":427,"name":{"903":{}},"parent":{}}],["getmaxbufferedmessages",{"_index":1001,"name":{"1819":{}},"parent":{}}],["getmaxchunksize",{"_index":309,"name":{"432":{},"585":{}},"parent":{}}],["getmaxconcurrentstreams",{"_index":274,"name":{"373":{}},"parent":{}}],["getmaxeventloopexecutetime",{"_index":492,"name":{"1074":{}},"parent":{}}],["getmaxeventloopexecutetimeunit",{"_index":494,"name":{"1076":{}},"parent":{}}],["getmaxframesize",{"_index":276,"name":{"375":{}},"parent":{}}],["getmaxheaderlistsize",{"_index":278,"name":{"377":{}},"parent":{}}],["getmaxheadersize",{"_index":311,"name":{"434":{},"587":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":313,"name":{"436":{},"589":{}},"parent":{}}],["getmaxpoolsize",{"_index":315,"name":{"438":{}},"parent":{}}],["getmaxqueries",{"_index":69,"name":{"70":{}},"parent":{}}],["getmaxredirects",{"_index":317,"name":{"440":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":319,"name":{"442":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":321,"name":{"444":{},"448":{},"591":{},"595":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":323,"name":{"446":{},"450":{},"593":{},"597":{}},"parent":{}}],["getmaxworkerexecutetime",{"_index":217,"name":{"236":{},"1078":{}},"parent":{}}],["getmaxworkerexecutetimeunit",{"_index":219,"name":{"238":{},"1080":{}},"parent":{}}],["getmedium",{"_index":567,"name":{"1169":{}},"parent":{}}],["getmediumle",{"_index":568,"name":{"1170":{}},"parent":{}}],["getmetricsname",{"_index":126,"name":{"129":{},"452":{},"713":{}},"parent":{}}],["getmetricsoptions",{"_index":496,"name":{"1082":{}},"parent":{}}],["getmulticastnetworkinterface",{"_index":192,"name":{"199":{}},"parent":{}}],["getmulticasttimetolive",{"_index":194,"name":{"201":{}},"parent":{}}],["getname",{"_index":429,"name":{"907":{},"1221":{},"1314":{}},"parent":{}}],["getndots",{"_index":71,"name":{"72":{}},"parent":{}}],["getnow",{"_index":817,"name":{"1489":{}},"parent":{}}],["getobjectparameter",{"_index":979,"name":{"1773":{}},"parent":{}}],["getopensslengineoptions",{"_index":128,"name":{"131":{},"299":{},"454":{},"599":{},"715":{},"796":{},"994":{}},"parent":{}}],["getoption",{"_index":630,"name":{"1237":{}},"parent":{}}],["getoptions",{"_index":622,"name":{"1229":{}},"parent":{}}],["getoptionvalue",{"_index":638,"name":{"1247":{}},"parent":{}}],["getorcreatecontext",{"_index":1093,"name":{"2024":{}},"parent":{}}],["getordefault",{"_index":988,"name":{"1792":{}},"parent":{}}],["getparam",{"_index":907,"name":{"1652":{}},"parent":{}}],["getpassword",{"_index":379,"name":{"676":{},"936":{},"946":{}},"parent":{}}],["getpath",{"_index":381,"name":{"678":{},"938":{},"1320":{}},"parent":{}}],["getpemkeycertoptions",{"_index":130,"name":{"133":{},"301":{},"456":{},"601":{},"717":{},"798":{},"996":{}},"parent":{}}],["getpemtrustoptions",{"_index":132,"name":{"135":{},"303":{},"458":{},"603":{},"719":{},"800":{},"998":{}},"parent":{}}],["getperframewebsocketcompressionsupported",{"_index":364,"name":{"605":{},"607":{}},"parent":{}}],["getpermessagewebsocketcompressionsupported",{"_index":366,"name":{"609":{},"611":{}},"parent":{}}],["getperms",{"_index":404,"name":{"870":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":134,"name":{"137":{},"305":{},"460":{},"613":{},"721":{},"802":{},"1000":{}},"parent":{}}],["getpfxtrustoptions",{"_index":136,"name":{"139":{},"307":{},"462":{},"615":{},"723":{},"804":{},"1002":{}},"parent":{}}],["getpipelininglimit",{"_index":327,"name":{"466":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":329,"name":{"468":{}},"parent":{}}],["getport",{"_index":232,"name":{"254":{},"309":{},"617":{},"806":{},"948":{},"959":{},"1099":{}},"parent":{}}],["getprefernativetransport",{"_index":498,"name":{"1084":{}},"parent":{}}],["getpriority",{"_index":634,"name":{"1241":{}},"parent":{}}],["getprotocolversion",{"_index":331,"name":{"470":{}},"parent":{}}],["getproxyoptions",{"_index":138,"name":{"141":{},"472":{},"725":{}},"parent":{}}],["getquerytimeout",{"_index":75,"name":{"76":{},"256":{}},"parent":{}}],["getquorumsize",{"_index":500,"name":{"1086":{}},"parent":{}}],["getrawmethod",{"_index":836,"name":{"1529":{}},"parent":{}}],["getrawvalueforargument",{"_index":647,"name":{"1256":{}},"parent":{}}],["getrawvalueforoption",{"_index":645,"name":{"1254":{}},"parent":{}}],["getrawvalues",{"_index":642,"name":{"1251":{}},"parent":{}}],["getrawvaluesforargument",{"_index":644,"name":{"1253":{}},"parent":{}}],["getrawvaluesforoption",{"_index":643,"name":{"1252":{}},"parent":{}}],["getrdflag",{"_index":77,"name":{"78":{}},"parent":{}}],["getreceivebuffersize",{"_index":140,"name":{"143":{},"203":{},"311":{},"474":{},"619":{},"727":{},"808":{},"848":{},"1004":{}},"parent":{}}],["getreconnectattempts",{"_index":251,"name":{"313":{},"729":{}},"parent":{}}],["getreconnectinterval",{"_index":253,"name":{"315":{},"731":{}},"parent":{}}],["getsamesite",{"_index":703,"name":{"1327":{}},"parent":{}}],["getsearchdomains",{"_index":81,"name":{"82":{}},"parent":{}}],["getsendbuffersize",{"_index":146,"name":{"149":{},"209":{},"321":{},"480":{},"625":{},"737":{},"814":{},"854":{},"1010":{}},"parent":{}}],["getsendtimeout",{"_index":202,"name":{"220":{}},"parent":{}}],["getservers",{"_index":84,"name":{"85":{}},"parent":{}}],["getshort",{"_index":563,"name":{"1165":{}},"parent":{}}],["getshortle",{"_index":564,"name":{"1166":{}},"parent":{}}],["getshortname",{"_index":430,"name":{"910":{}},"parent":{}}],["getsolinger",{"_index":148,"name":{"151":{},"323":{},"484":{},"629":{},"739":{},"818":{},"1012":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":152,"name":{"155":{},"327":{},"488":{},"633":{},"743":{},"822":{},"1016":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":154,"name":{"157":{},"329":{},"490":{},"635":{},"745":{},"824":{},"1018":{}},"parent":{}}],["getstatuscode",{"_index":920,"name":{"1681":{}},"parent":{}}],["getstatusmessage",{"_index":922,"name":{"1683":{}},"parent":{}}],["getstreampriority",{"_index":853,"name":{"1550":{}},"parent":{}}],["getstring",{"_index":572,"name":{"1174":{}},"parent":{}}],["getsubprotocols",{"_index":507,"name":{"1103":{}},"parent":{}}],["getsummary",{"_index":620,"name":{"1225":{}},"parent":{}}],["gettrafficclass",{"_index":166,"name":{"169":{},"211":{},"341":{},"502":{},"647":{},"757":{},"836":{},"856":{},"1030":{}},"parent":{}}],["gettrailer",{"_index":859,"name":{"1565":{}},"parent":{}}],["gettruststoreoptions",{"_index":170,"name":{"173":{},"345":{},"506":{},"649":{},"761":{},"838":{},"1032":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":338,"name":{"512":{},"514":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":340,"name":{"516":{},"517":{}},"parent":{}}],["gettype",{"_index":452,"name":{"950":{}},"parent":{}}],["getunsignedbyte",{"_index":554,"name":{"1156":{}},"parent":{}}],["getunsignedint",{"_index":557,"name":{"1159":{}},"parent":{}}],["getunsignedintle",{"_index":558,"name":{"1160":{}},"parent":{}}],["getunsignedmedium",{"_index":569,"name":{"1171":{}},"parent":{}}],["getunsignedmediumle",{"_index":570,"name":{"1172":{}},"parent":{}}],["getunsignedshort",{"_index":565,"name":{"1167":{}},"parent":{}}],["getunsignedshortle",{"_index":566,"name":{"1168":{}},"parent":{}}],["geturi",{"_index":457,"name":{"963":{},"1106":{}},"parent":{}}],["geturiwithoutfragment",{"_index":974,"name":{"1765":{}},"parent":{}}],["getusername",{"_index":454,"name":{"952":{}},"parent":{}}],["getvalue",{"_index":383,"name":{"680":{},"940":{},"1315":{}},"parent":{}}],["getversion",{"_index":510,"name":{"1108":{}},"parent":{}}],["getwarningexceptiontime",{"_index":502,"name":{"1088":{}},"parent":{}}],["getwarningexceptiontimeunit",{"_index":504,"name":{"1090":{}},"parent":{}}],["getwebsocketallowservernocontext",{"_index":370,"name":{"655":{},"664":{}},"parent":{}}],["getwebsocketclosingtimeout",{"_index":343,"name":{"524":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":345,"name":{"526":{},"532":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":347,"name":{"528":{},"534":{},"657":{},"666":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":349,"name":{"530":{},"536":{}},"parent":{}}],["getwebsocketpreferredclientnocontext",{"_index":372,"name":{"659":{},"668":{}},"parent":{}}],["getwebsocketsubprotocols",{"_index":374,"name":{"661":{},"670":{}},"parent":{}}],["getweight",{"_index":464,"name":{"971":{}},"parent":{}}],["getwindowsize",{"_index":867,"name":{"1574":{}},"parent":{}}],["getworkerpoolname",{"_index":225,"name":{"244":{}},"parent":{}}],["getworkerpoolsize",{"_index":227,"name":{"246":{},"1092":{}},"parent":{}}],["getwritepos",{"_index":538,"name":{"1137":{}},"parent":{}}],["goaway",{"_index":262,"name":{"359":{},"1576":{}},"parent":{"360":{},"361":{},"362":{},"363":{},"364":{},"365":{},"366":{}}}],["goawayhandler",{"_index":869,"name":{"1577":{}},"parent":{}}],["handle",{"_index":513,"name":{"1111":{},"1731":{},"1924":{}},"parent":{}}],["handler",{"_index":512,"name":{"1110":{},"1122":{},"1356":{},"1519":{},"1557":{},"1615":{},"1633":{},"1745":{},"1810":{},"1869":{},"1908":{},"1926":{},"1960":{},"2013":{},"2075":{},"2097":{}},"parent":{"1111":{}}}],["head",{"_index":26,"name":{"27":{},"1492":{}},"parent":{}}],["headabs",{"_index":819,"name":{"1493":{}},"parent":{}}],["headers",{"_index":842,"name":{"1537":{},"1563":{},"1649":{},"1687":{},"1799":{},"1948":{},"2063":{},"2110":{}},"parent":{}}],["headersendhandler",{"_index":930,"name":{"1699":{}},"parent":{}}],["headnow",{"_index":820,"name":{"1494":{}},"parent":{}}],["headwritten",{"_index":929,"name":{"1698":{}},"parent":{}}],["host",{"_index":903,"name":{"1646":{},"1996":{}},"parent":{}}],["http",{"_index":45,"name":{"46":{}},"parent":{}}],["http2settings",{"_index":269,"name":{"367":{}},"parent":{"368":{},"369":{},"370":{},"371":{},"372":{},"373":{},"374":{},"375":{},"376":{},"377":{},"378":{},"379":{},"380":{}}}],["http_1_0",{"_index":35,"name":{"36":{}},"parent":{}}],["http_1_1",{"_index":36,"name":{"37":{}},"parent":{}}],["http_2",{"_index":37,"name":{"38":{}},"parent":{}}],["httpclient",{"_index":814,"name":{"1483":{}},"parent":{"1484":{},"1485":{},"1486":{},"1487":{},"1488":{},"1489":{},"1490":{},"1491":{},"1492":{},"1493":{},"1494":{},"1495":{},"1496":{},"1497":{},"1498":{},"1499":{},"1500":{},"1501":{},"1502":{},"1503":{},"1504":{},"1505":{},"1506":{},"1507":{},"1508":{},"1509":{},"1510":{}}}],["httpclientoptions",{"_index":282,"name":{"381":{}},"parent":{"382":{},"383":{},"384":{},"385":{},"386":{},"387":{},"388":{},"389":{},"390":{},"391":{},"392":{},"393":{},"394":{},"395":{},"396":{},"397":{},"398":{},"399":{},"400":{},"401":{},"402":{},"403":{},"404":{},"405":{},"406":{},"407":{},"408":{},"409":{},"410":{},"411":{},"412":{},"413":{},"414":{},"415":{},"416":{},"417":{},"418":{},"419":{},"420":{},"421":{},"422":{},"423":{},"424":{},"425":{},"426":{},"427":{},"428":{},"429":{},"430":{},"431":{},"432":{},"433":{},"434":{},"435":{},"436":{},"437":{},"438":{},"439":{},"440":{},"441":{},"442":{},"443":{},"444":{},"445":{},"446":{},"447":{},"448":{},"449":{},"450":{},"451":{},"452":{},"453":{},"454":{},"455":{},"456":{},"457":{},"458":{},"459":{},"460":{},"461":{},"462":{},"463":{},"464":{},"465":{},"466":{},"467":{},"468":{},"469":{},"470":{},"471":{},"472":{},"473":{},"474":{},"475":{},"476":{},"477":{},"478":{},"479":{},"480":{},"481":{},"482":{},"483":{},"484":{},"485":{},"486":{},"487":{},"488":{},"489":{},"490":{},"491":{},"492":{},"493":{},"494":{},"495":{},"496":{},"497":{},"498":{},"499":{},"500":{},"501":{},"502":{},"503":{},"504":{},"505":{},"506":{},"507":{},"508":{},"509":{},"510":{},"511":{},"512":{},"513":{},"514":{},"515":{},"516":{},"517":{},"518":{},"519":{},"520":{},"521":{},"522":{},"523":{},"524":{},"525":{},"526":{},"527":{},"528":{},"529":{},"530":{},"531":{},"532":{},"533":{},"534":{},"535":{},"536":{},"537":{}}}],["httpclientrequest",{"_index":831,"name":{"1511":{}},"parent":{"1512":{},"1513":{},"1514":{},"1515":{},"1516":{},"1517":{},"1518":{},"1519":{},"1520":{},"1521":{},"1522":{},"1523":{},"1524":{},"1525":{},"1526":{},"1527":{},"1528":{},"1529":{},"1530":{},"1531":{},"1532":{},"1533":{},"1534":{},"1535":{},"1536":{},"1537":{},"1538":{},"1539":{},"1540":{},"1541":{},"1542":{},"1543":{},"1544":{},"1545":{},"1546":{},"1547":{},"1548":{},"1549":{},"1550":{}}}],["httpclientresponse",{"_index":854,"name":{"1551":{}},"parent":{"1552":{},"1553":{},"1554":{},"1555":{},"1556":{},"1557":{},"1558":{},"1559":{},"1560":{},"1561":{},"1562":{},"1563":{},"1564":{},"1565":{},"1566":{},"1567":{},"1568":{},"1569":{},"1570":{},"1571":{},"1572":{}}}],["httpconnection",{"_index":866,"name":{"1573":{}},"parent":{"1574":{},"1575":{},"1576":{},"1577":{},"1578":{},"1579":{},"1580":{},"1581":{},"1582":{},"1583":{},"1584":{},"1585":{},"1586":{},"1587":{},"1588":{},"1589":{},"1590":{},"1591":{},"1592":{},"1593":{}}}],["httpframe",{"_index":882,"name":{"1594":{}},"parent":{"1595":{},"1596":{},"1597":{}}}],["httpmethod",{"_index":23,"name":{"24":{}},"parent":{"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{}}}],["httpserver",{"_index":886,"name":{"1598":{}},"parent":{"1599":{},"1600":{},"1601":{},"1602":{},"1603":{},"1604":{},"1605":{},"1606":{},"1607":{},"1608":{},"1609":{},"1610":{}}}],["httpserverfileupload",{"_index":891,"name":{"1611":{}},"parent":{"1612":{},"1613":{},"1614":{},"1615":{},"1616":{},"1617":{},"1618":{},"1619":{},"1620":{},"1621":{},"1622":{},"1623":{},"1624":{},"1625":{},"1626":{},"1627":{},"1628":{}}}],["httpserveroptions",{"_index":351,"name":{"538":{}},"parent":{"539":{},"540":{},"541":{},"542":{},"543":{},"544":{},"545":{},"546":{},"547":{},"548":{},"549":{},"550":{},"551":{},"552":{},"553":{},"554":{},"555":{},"556":{},"557":{},"558":{},"559":{},"560":{},"561":{},"562":{},"563":{},"564":{},"565":{},"566":{},"567":{},"568":{},"569":{},"570":{},"571":{},"572":{},"573":{},"574":{},"575":{},"576":{},"577":{},"578":{},"579":{},"580":{},"581":{},"582":{},"583":{},"584":{},"585":{},"586":{},"587":{},"588":{},"589":{},"590":{},"591":{},"592":{},"593":{},"594":{},"595":{},"596":{},"597":{},"598":{},"599":{},"600":{},"601":{},"602":{},"603":{},"604":{},"605":{},"606":{},"607":{},"608":{},"609":{},"610":{},"611":{},"612":{},"613":{},"614":{},"615":{},"616":{},"617":{},"618":{},"619":{},"620":{},"621":{},"622":{},"623":{},"624":{},"625":{},"626":{},"627":{},"628":{},"629":{},"630":{},"631":{},"632":{},"633":{},"634":{},"635":{},"636":{},"637":{},"638":{},"639":{},"640":{},"641":{},"642":{},"643":{},"644":{},"645":{},"646":{},"647":{},"648":{},"649":{},"650":{},"651":{},"652":{},"653":{},"654":{},"655":{},"656":{},"657":{},"658":{},"659":{},"660":{},"661":{},"662":{},"663":{},"664":{},"665":{},"666":{},"667":{},"668":{},"669":{},"670":{},"671":{}}}],["httpserverrequest",{"_index":900,"name":{"1629":{}},"parent":{"1630":{},"1631":{},"1632":{},"1633":{},"1634":{},"1635":{},"1636":{},"1637":{},"1638":{},"1639":{},"1640":{},"1641":{},"1642":{},"1643":{},"1644":{},"1645":{},"1646":{},"1647":{},"1648":{},"1649":{},"1650":{},"1651":{},"1652":{},"1653":{},"1654":{},"1655":{},"1656":{},"1657":{},"1658":{},"1659":{},"1660":{},"1661":{},"1662":{},"1663":{},"1664":{},"1665":{},"1666":{},"1667":{},"1668":{},"1669":{},"1670":{},"1671":{},"1672":{},"1673":{}}}],["httpserverresponse",{"_index":919,"name":{"1674":{}},"parent":{"1675":{},"1676":{},"1677":{},"1678":{},"1679":{},"1680":{},"1681":{},"1682":{},"1683":{},"1684":{},"1685":{},"1686":{},"1687":{},"1688":{},"1689":{},"1690":{},"1691":{},"1692":{},"1693":{},"1694":{},"1695":{},"1696":{},"1697":{},"1698":{},"1699":{},"1700":{},"1701":{},"1702":{},"1703":{},"1704":{},"1705":{},"1706":{},"1707":{},"1708":{}}}],["httpversion",{"_index":34,"name":{"35":{}},"parent":{"36":{},"37":{},"38":{}}}],["incrementandget",{"_index":706,"name":{"1331":{}},"parent":{}}],["indicatedservername",{"_index":880,"name":{"1592":{},"1885":{}},"parent":{}}],["inetsocketaddress",{"_index":1079,"name":{"1994":{}},"parent":{}}],["instantvalue",{"_index":954,"name":{"1729":{}},"parent":{}}],["integervalue",{"_index":939,"name":{"1714":{}},"parent":{}}],["isacceptunmaskedframes",{"_index":352,"name":{"542":{}},"parent":{}}],["isappend",{"_index":394,"name":{"860":{}},"parent":{}}],["isargumentassigned",{"_index":648,"name":{"1257":{}},"parent":{}}],["isarray",{"_index":951,"name":{"1726":{},"1770":{}},"parent":{}}],["isaskingforhelp",{"_index":651,"name":{"1260":{}},"parent":{}}],["isatomicmove",{"_index":177,"name":{"181":{}},"parent":{}}],["isbinary",{"_index":1122,"name":{"2136":{}},"parent":{}}],["isboolean",{"_index":943,"name":{"1718":{}},"parent":{}}],["isbroadcast",{"_index":186,"name":{"191":{}},"parent":{}}],["ischunked",{"_index":834,"name":{"1527":{},"1686":{}},"parent":{}}],["isclasspathresolvingenabled",{"_index":256,"name":{"353":{}},"parent":{}}],["isclientauthrequired",{"_index":354,"name":{"548":{},"773":{}},"parent":{}}],["isclose",{"_index":1124,"name":{"2138":{}},"parent":{}}],["isclosed",{"_index":1057,"name":{"1958":{},"2073":{},"2127":{}},"parent":{}}],["isclustered",{"_index":249,"name":{"274":{},"1058":{},"2044":{}},"parent":{}}],["iscomplete",{"_index":669,"name":{"1282":{},"1461":{}},"parent":{}}],["iscompressionsupported",{"_index":358,"name":{"552":{}},"parent":{}}],["iscontinuation",{"_index":1123,"name":{"2137":{}},"parent":{}}],["iscopyattributes",{"_index":179,"name":{"183":{}},"parent":{}}],["iscreate",{"_index":396,"name":{"862":{}},"parent":{}}],["iscreatenew",{"_index":398,"name":{"864":{}},"parent":{}}],["isdecompressionsupported",{"_index":360,"name":{"560":{}},"parent":{}}],["isdeleteonclose",{"_index":400,"name":{"866":{}},"parent":{}}],["isdirectory",{"_index":755,"name":{"1395":{}},"parent":{}}],["isdsync",{"_index":402,"name":{"868":{}},"parent":{}}],["isempty",{"_index":985,"name":{"1784":{},"1839":{}},"parent":{}}],["isenabled",{"_index":386,"name":{"684":{}},"parent":{}}],["isended",{"_index":916,"name":{"1666":{}},"parent":{}}],["iseventloopcontext",{"_index":687,"name":{"1301":{}},"parent":{}}],["isexclusive",{"_index":462,"name":{"969":{}},"parent":{}}],["isexpectmultipart",{"_index":910,"name":{"1660":{}},"parent":{}}],["isfilecachingenabled",{"_index":260,"name":{"357":{}},"parent":{}}],["isfileresolvercachingenabled",{"_index":482,"name":{"1064":{}},"parent":{}}],["isfinal",{"_index":1127,"name":{"2141":{}},"parent":{}}],["isflag",{"_index":423,"name":{"897":{}},"parent":{}}],["isflagenabled",{"_index":640,"name":{"1249":{}},"parent":{}}],["isforcesni",{"_index":291,"name":{"402":{}},"parent":{}}],["isha",{"_index":209,"name":{"228":{}},"parent":{}}],["ishaenabled",{"_index":486,"name":{"1068":{}},"parent":{}}],["ishandle100continueautomatically",{"_index":362,"name":{"567":{}},"parent":{}}],["ishelp",{"_index":425,"name":{"899":{}},"parent":{}}],["ishidden",{"_index":94,"name":{"96":{},"901":{},"1227":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":293,"name":{"404":{}},"parent":{}}],["ishttponly",{"_index":701,"name":{"1325":{}},"parent":{}}],["isipv6",{"_index":188,"name":{"193":{}},"parent":{}}],["iskeepalive",{"_index":305,"name":{"422":{}},"parent":{}}],["islocalonly",{"_index":200,"name":{"218":{}},"parent":{}}],["islocalpointer",{"_index":963,"name":{"1749":{}},"parent":{}}],["isloopbackmodedisabled",{"_index":190,"name":{"197":{}},"parent":{}}],["ismetricsenabled",{"_index":716,"name":{"1341":{},"1377":{},"1484":{},"1599":{},"1796":{},"1853":{},"1857":{},"2020":{},"2145":{}},"parent":{}}],["ismultithreaded",{"_index":221,"name":{"240":{}},"parent":{}}],["ismultithreadedworkercontext",{"_index":689,"name":{"1303":{}},"parent":{}}],["ismultivalued",{"_index":98,"name":{"100":{},"905":{}},"parent":{}}],["isnativetransportenabled",{"_index":1109,"name":{"2047":{}},"parent":{}}],["isnofollowlinks",{"_index":181,"name":{"185":{}},"parent":{}}],["isnull",{"_index":948,"name":{"1723":{},"1771":{}},"parent":{}}],["isnumber",{"_index":938,"name":{"1713":{}},"parent":{}}],["isobject",{"_index":949,"name":{"1724":{},"1769":{}},"parent":{}}],["isoneventloopthread",{"_index":680,"name":{"1294":{}},"parent":{}}],["isonvertxthread",{"_index":681,"name":{"1295":{}},"parent":{}}],["isonworkerthread",{"_index":679,"name":{"1293":{}},"parent":{}}],["isoptionassigned",{"_index":641,"name":{"1250":{}},"parent":{}}],["isoptresourceenabled",{"_index":73,"name":{"74":{}},"parent":{}}],["isother",{"_index":756,"name":{"1396":{}},"parent":{}}],["isparent",{"_index":964,"name":{"1750":{}},"parent":{}}],["ispipelining",{"_index":325,"name":{"464":{}},"parent":{}}],["ispushenabled",{"_index":280,"name":{"379":{}},"parent":{}}],["isread",{"_index":406,"name":{"872":{}},"parent":{}}],["isrecursiondesired",{"_index":234,"name":{"258":{}},"parent":{}}],["isregistered",{"_index":999,"name":{"1816":{}},"parent":{}}],["isregularfile",{"_index":757,"name":{"1397":{}},"parent":{}}],["isreplaceexisting",{"_index":183,"name":{"187":{}},"parent":{}}],["isrequired",{"_index":100,"name":{"102":{},"908":{}},"parent":{}}],["isreuseaddress",{"_index":142,"name":{"145":{},"205":{},"317":{},"476":{},"621":{},"733":{},"810":{},"850":{},"1006":{}},"parent":{}}],["isreuseport",{"_index":144,"name":{"147":{},"207":{},"319":{},"478":{},"623":{},"735":{},"812":{},"852":{},"1008":{}},"parent":{}}],["isrootpointer",{"_index":962,"name":{"1748":{}},"parent":{}}],["isrotateservers",{"_index":79,"name":{"80":{}},"parent":{}}],["issecure",{"_index":699,"name":{"1323":{}},"parent":{}}],["isseenincommandline",{"_index":649,"name":{"1258":{}},"parent":{}}],["issend",{"_index":994,"name":{"1802":{}},"parent":{}}],["issendunmaskedframes",{"_index":333,"name":{"482":{}},"parent":{}}],["issessioncacheenabled",{"_index":417,"name":{"884":{}},"parent":{}}],["issinglevalued",{"_index":432,"name":{"912":{}},"parent":{}}],["issizeavailable",{"_index":898,"name":{"1627":{}},"parent":{}}],["issni",{"_index":368,"name":{"627":{},"816":{}},"parent":{}}],["issparse",{"_index":408,"name":{"874":{}},"parent":{}}],["isssl",{"_index":150,"name":{"153":{},"325":{},"486":{},"631":{},"741":{},"820":{},"961":{},"1014":{},"1101":{},"1591":{},"1641":{},"1884":{},"1957":{},"2072":{},"2126":{}},"parent":{}}],["isstring",{"_index":945,"name":{"1720":{}},"parent":{}}],["issymboliclink",{"_index":758,"name":{"1398":{}},"parent":{}}],["issync",{"_index":410,"name":{"876":{}},"parent":{}}],["istcpcork",{"_index":156,"name":{"159":{},"331":{},"492":{},"637":{},"747":{},"826":{},"1020":{}},"parent":{}}],["istcpfastopen",{"_index":158,"name":{"161":{},"333":{},"494":{},"639":{},"749":{},"828":{},"1022":{}},"parent":{}}],["istcpkeepalive",{"_index":160,"name":{"163":{},"335":{},"496":{},"641":{},"751":{},"830":{},"1024":{}},"parent":{}}],["istcpnodelay",{"_index":162,"name":{"165":{},"337":{},"498":{},"643":{},"753":{},"832":{},"1026":{}},"parent":{}}],["istcpquickack",{"_index":164,"name":{"167":{},"339":{},"500":{},"645":{},"755":{},"834":{},"1028":{}},"parent":{}}],["istext",{"_index":1121,"name":{"2135":{}},"parent":{}}],["istruncateexisting",{"_index":412,"name":{"878":{}},"parent":{}}],["istrustall",{"_index":168,"name":{"171":{},"343":{},"504":{},"759":{}},"parent":{}}],["istryusecompression",{"_index":335,"name":{"508":{}},"parent":{}}],["isusealpn",{"_index":172,"name":{"175":{},"347":{},"518":{},"651":{},"763":{},"840":{},"1034":{}},"parent":{}}],["isusepooledbuffers",{"_index":174,"name":{"177":{},"349":{},"520":{},"653":{},"765":{},"842":{},"1036":{}},"parent":{}}],["isvalid",{"_index":650,"name":{"1259":{}},"parent":{}}],["isverifyhost",{"_index":341,"name":{"522":{}},"parent":{}}],["isworker",{"_index":223,"name":{"242":{}},"parent":{}}],["isworkercontext",{"_index":688,"name":{"1302":{}},"parent":{}}],["iswrite",{"_index":414,"name":{"880":{}},"parent":{}}],["jdksslengineoptions",{"_index":377,"name":{"672":{}},"parent":{"673":{}}}],["jksoptions",{"_index":378,"name":{"674":{}},"parent":{"675":{},"676":{},"677":{},"678":{},"679":{},"680":{},"681":{}}}],["join",{"_index":664,"name":{"1274":{}},"parent":{}}],["json_iterator",{"_index":977,"name":{"1768":{}},"parent":{}}],["jsonevent",{"_index":936,"name":{"1709":{}},"parent":{"1710":{},"1711":{},"1712":{},"1713":{},"1714":{},"1715":{},"1716":{},"1717":{},"1718":{},"1719":{},"1720":{},"1721":{},"1722":{},"1723":{},"1724":{},"1725":{},"1726":{},"1727":{},"1728":{},"1729":{}}}],["jsoneventtype",{"_index":38,"name":{"39":{}},"parent":{"40":{},"41":{},"42":{},"43":{},"44":{}}}],["jsonparser",{"_index":955,"name":{"1730":{}},"parent":{"1731":{},"1732":{},"1733":{},"1734":{},"1735":{},"1736":{},"1737":{},"1738":{},"1739":{},"1740":{},"1741":{},"1742":{},"1743":{},"1744":{},"1745":{},"1746":{}}}],["jsonpointer",{"_index":961,"name":{"1747":{}},"parent":{"1748":{},"1749":{},"1750":{},"1751":{},"1752":{},"1753":{},"1754":{},"1755":{},"1756":{},"1757":{},"1758":{},"1759":{},"1760":{},"1761":{},"1762":{},"1763":{},"1764":{},"1765":{},"1766":{}}}],["jsonpointeriterator",{"_index":976,"name":{"1767":{}},"parent":{"1768":{},"1769":{},"1770":{},"1771":{},"1772":{},"1773":{},"1774":{},"1775":{},"1776":{},"1777":{}}}],["keycertoptions",{"_index":1042,"name":{"1932":{}},"parent":{}}],["lastaccesstime",{"_index":753,"name":{"1393":{}},"parent":{}}],["lastmodifiedtime",{"_index":754,"name":{"1394":{}},"parent":{}}],["lax",{"_index":6,"name":{"7":{}},"parent":{}}],["length",{"_index":609,"name":{"1211":{}},"parent":{}}],["link",{"_index":777,"name":{"1419":{}},"parent":{}}],["linkblocking",{"_index":778,"name":{"1420":{}},"parent":{}}],["listen",{"_index":722,"name":{"1351":{},"1608":{},"1860":{}},"parent":{}}],["listenmulticastgroup",{"_index":719,"name":{"1348":{}},"parent":{}}],["localaddress",{"_index":718,"name":{"1347":{},"1590":{},"1654":{},"1880":{},"1956":{},"2071":{},"2125":{}},"parent":{}}],["localconsumer",{"_index":743,"name":{"1382":{}},"parent":{}}],["localmap",{"_index":984,"name":{"1778":{}},"parent":{"1779":{},"1780":{},"1781":{},"1782":{},"1783":{},"1784":{},"1785":{},"1786":{},"1787":{},"1788":{},"1789":{},"1790":{},"1791":{},"1792":{}}}],["lock",{"_index":989,"name":{"1793":{}},"parent":{"1794":{}}}],["longvalue",{"_index":940,"name":{"1715":{}},"parent":{}}],["lookup",{"_index":728,"name":{"1364":{}},"parent":{}}],["lookup4",{"_index":729,"name":{"1365":{}},"parent":{}}],["lookup6",{"_index":730,"name":{"1366":{}},"parent":{}}],["lprops",{"_index":775,"name":{"1417":{}},"parent":{}}],["lpropsblocking",{"_index":776,"name":{"1418":{}},"parent":{}}],["map",{"_index":657,"name":{"1267":{},"1476":{}},"parent":{}}],["mapempty",{"_index":676,"name":{"1290":{},"1477":{}},"parent":{}}],["mapto",{"_index":953,"name":{"1728":{}},"parent":{}}],["maxrecordsize",{"_index":1040,"name":{"1923":{}},"parent":{}}],["measured",{"_index":991,"name":{"1795":{}},"parent":{"1796":{}}}],["message",{"_index":724,"name":{"1359":{},"1797":{}},"parent":{"1798":{},"1799":{},"1800":{},"1801":{},"1802":{},"1803":{},"1804":{},"1805":{}}}],["messageconsumer",{"_index":997,"name":{"1806":{}},"parent":{"1807":{},"1808":{},"1809":{},"1810":{},"1811":{},"1812":{},"1813":{},"1814":{},"1815":{},"1816":{},"1817":{},"1818":{},"1819":{},"1820":{},"1821":{}}}],["messageproducer",{"_index":1004,"name":{"1822":{}},"parent":{"1823":{},"1824":{},"1825":{},"1826":{},"1827":{},"1828":{},"1829":{},"1830":{},"1831":{},"1832":{},"1833":{}}}],["method",{"_index":835,"name":{"1528":{},"1639":{}},"parent":{}}],["metricsoptions",{"_index":385,"name":{"682":{}},"parent":{"683":{},"684":{},"685":{}}}],["mkdir",{"_index":788,"name":{"1431":{}},"parent":{}}],["mkdirblocking",{"_index":789,"name":{"1432":{}},"parent":{}}],["mkdirs",{"_index":790,"name":{"1433":{}},"parent":{}}],["mkdirsblocking",{"_index":791,"name":{"1434":{}},"parent":{}}],["move",{"_index":763,"name":{"1405":{}},"parent":{}}],["moveblocking",{"_index":764,"name":{"1406":{}},"parent":{}}],["multimap",{"_index":1006,"name":{"1834":{}},"parent":{"1835":{},"1836":{},"1837":{},"1838":{},"1839":{},"1840":{},"1841":{},"1842":{},"1843":{},"1844":{},"1845":{},"1846":{},"1847":{},"1848":{}}}],["mxrecord",{"_index":1016,"name":{"1849":{}},"parent":{"1850":{},"1851":{}}}],["name",{"_index":894,"name":{"1622":{},"1851":{},"2003":{}},"parent":{}}],["names",{"_index":1010,"name":{"1840":{}},"parent":{}}],["netclient",{"_index":1018,"name":{"1852":{}},"parent":{"1853":{},"1854":{},"1855":{}}}],["netclientoptions",{"_index":388,"name":{"686":{}},"parent":{"687":{},"688":{},"689":{},"690":{},"691":{},"692":{},"693":{},"694":{},"695":{},"696":{},"697":{},"698":{},"699":{},"700":{},"701":{},"702":{},"703":{},"704":{},"705":{},"706":{},"707":{},"708":{},"709":{},"710":{},"711":{},"712":{},"713":{},"714":{},"715":{},"716":{},"717":{},"718":{},"719":{},"720":{},"721":{},"722":{},"723":{},"724":{},"725":{},"726":{},"727":{},"728":{},"729":{},"730":{},"731":{},"732":{},"733":{},"734":{},"735":{},"736":{},"737":{},"738":{},"739":{},"740":{},"741":{},"742":{},"743":{},"744":{},"745":{},"746":{},"747":{},"748":{},"749":{},"750":{},"751":{},"752":{},"753":{},"754":{},"755":{},"756":{},"757":{},"758":{},"759":{},"760":{},"761":{},"762":{},"763":{},"764":{},"765":{},"766":{}}}],["netserver",{"_index":1019,"name":{"1856":{}},"parent":{"1857":{},"1858":{},"1859":{},"1860":{},"1861":{},"1862":{}}}],["netserveroptions",{"_index":391,"name":{"767":{}},"parent":{"768":{},"769":{},"770":{},"771":{},"772":{},"773":{},"774":{},"775":{},"776":{},"777":{},"778":{},"779":{},"780":{},"781":{},"782":{},"783":{},"784":{},"785":{},"786":{},"787":{},"788":{},"789":{},"790":{},"791":{},"792":{},"793":{},"794":{},"795":{},"796":{},"797":{},"798":{},"799":{},"800":{},"801":{},"802":{},"803":{},"804":{},"805":{},"806":{},"807":{},"808":{},"809":{},"810":{},"811":{},"812":{},"813":{},"814":{},"815":{},"816":{},"817":{},"818":{},"819":{},"820":{},"821":{},"822":{},"823":{},"824":{},"825":{},"826":{},"827":{},"828":{},"829":{},"830":{},"831":{},"832":{},"833":{},"834":{},"835":{},"836":{},"837":{},"838":{},"839":{},"840":{},"841":{},"842":{},"843":{}}}],["netsocket",{"_index":864,"name":{"1570":{},"1657":{},"1863":{}},"parent":{"1864":{},"1865":{},"1866":{},"1867":{},"1868":{},"1869":{},"1870":{},"1871":{},"1872":{},"1873":{},"1874":{},"1875":{},"1876":{},"1877":{},"1878":{},"1879":{},"1880":{},"1881":{},"1882":{},"1883":{},"1884":{},"1885":{},"1886":{}}}],["nettyeventloopgroup",{"_index":1113,"name":{"2052":{}},"parent":{}}],["networkoptions",{"_index":392,"name":{"844":{}},"parent":{"845":{},"846":{},"847":{},"848":{},"849":{},"850":{},"851":{},"852":{},"853":{},"854":{},"855":{},"856":{},"857":{}}}],["newdelimited",{"_index":1036,"name":{"1919":{}},"parent":{}}],["newfixed",{"_index":1037,"name":{"1920":{}},"parent":{}}],["newparser",{"_index":956,"name":{"1734":{}},"parent":{}}],["next",{"_index":725,"name":{"1360":{}},"parent":{}}],["no_handlers",{"_index":50,"name":{"51":{}},"parent":{}}],["noerror",{"_index":8,"name":{"9":{}},"parent":{}}],["none",{"_index":1,"name":{"1":{},"5":{}},"parent":{}}],["notauth",{"_index":17,"name":{"18":{}},"parent":{}}],["notimpl",{"_index":12,"name":{"13":{}},"parent":{}}],["notzone",{"_index":18,"name":{"19":{}},"parent":{}}],["numberpumped",{"_index":1032,"name":{"1905":{}},"parent":{}}],["nxdomain",{"_index":11,"name":{"12":{}},"parent":{}}],["nxrrset",{"_index":16,"name":{"17":{}},"parent":{}}],["objectcontainskey",{"_index":978,"name":{"1772":{}},"parent":{}}],["objecteventmode",{"_index":957,"name":{"1737":{}},"parent":{}}],["objectvalue",{"_index":950,"name":{"1725":{}},"parent":{}}],["objectvaluemode",{"_index":958,"name":{"1738":{}},"parent":{}}],["oncomplete",{"_index":666,"name":{"1276":{},"1463":{}},"parent":{}}],["onfailure",{"_index":668,"name":{"1278":{},"1465":{}},"parent":{}}],["onsuccess",{"_index":667,"name":{"1277":{},"1464":{}},"parent":{}}],["open",{"_index":798,"name":{"1441":{}},"parent":{}}],["openblocking",{"_index":799,"name":{"1442":{}},"parent":{}}],["openoptions",{"_index":393,"name":{"858":{}},"parent":{"859":{},"860":{},"861":{},"862":{},"863":{},"864":{},"865":{},"866":{},"867":{},"868":{},"869":{},"870":{},"871":{},"872":{},"873":{},"874":{},"875":{},"876":{},"877":{},"878":{},"879":{},"880":{},"881":{}}}],["opensslengineoptions",{"_index":416,"name":{"882":{}},"parent":{"883":{},"884":{},"885":{}}}],["option",{"_index":419,"name":{"886":{}},"parent":{"887":{},"888":{},"889":{},"890":{},"891":{},"892":{},"893":{},"894":{},"895":{},"896":{},"897":{},"898":{},"899":{},"900":{},"901":{},"902":{},"903":{},"904":{},"905":{},"906":{},"907":{},"908":{},"909":{},"910":{},"911":{},"912":{},"913":{}}}],["options",{"_index":24,"name":{"25":{},"1495":{}},"parent":{}}],["optionsabs",{"_index":821,"name":{"1496":{}},"parent":{}}],["optionsnow",{"_index":822,"name":{"1497":{}},"parent":{}}],["other",{"_index":33,"name":{"34":{}},"parent":{}}],["otherwise",{"_index":660,"name":{"1270":{},"1480":{}},"parent":{}}],["otherwiseempty",{"_index":661,"name":{"1271":{},"1481":{}},"parent":{}}],["owner",{"_index":690,"name":{"1307":{}},"parent":{}}],["params",{"_index":906,"name":{"1651":{}},"parent":{}}],["parent",{"_index":966,"name":{"1753":{}},"parent":{}}],["parse",{"_index":618,"name":{"1220":{}},"parent":{}}],["patch",{"_index":32,"name":{"33":{}},"parent":{}}],["path",{"_index":840,"name":{"1533":{},"1644":{},"1976":{},"1998":{}},"parent":{}}],["pause",{"_index":524,"name":{"1123":{},"1352":{},"1520":{},"1558":{},"1617":{},"1634":{},"1741":{},"1811":{},"1870":{},"1909":{},"1927":{},"1961":{},"2014":{},"2076":{},"2098":{}},"parent":{}}],["payload",{"_index":885,"name":{"1597":{}},"parent":{}}],["pemkeycertoptions",{"_index":434,"name":{"914":{}},"parent":{"915":{},"916":{},"917":{},"918":{},"919":{},"920":{},"921":{},"922":{},"923":{},"924":{},"925":{},"926":{},"927":{}}}],["pemtrustoptions",{"_index":447,"name":{"928":{}},"parent":{"929":{},"930":{},"931":{},"932":{},"933":{}}}],["periodicstream",{"_index":1103,"name":{"2037":{}},"parent":{}}],["pfxoptions",{"_index":450,"name":{"934":{}},"parent":{"935":{},"936":{},"937":{},"938":{},"939":{},"940":{},"941":{}}}],["ping",{"_index":877,"name":{"1586":{}},"parent":{}}],["pingframe",{"_index":1118,"name":{"2132":{}},"parent":{}}],["pinghandler",{"_index":878,"name":{"1587":{}},"parent":{}}],["pipe",{"_index":522,"name":{"1120":{},"1342":{},"1513":{},"1552":{},"1612":{},"1630":{},"1732":{},"1807":{},"1866":{},"1887":{},"1913":{},"1916":{},"1941":{},"2010":{},"2056":{},"2094":{}},"parent":{"1888":{},"1889":{},"1890":{},"1891":{},"1892":{}}}],["pipeto",{"_index":523,"name":{"1121":{},"1343":{},"1514":{},"1553":{},"1613":{},"1631":{},"1733":{},"1808":{},"1867":{},"1914":{},"1917":{},"1942":{},"2011":{},"2057":{},"2095":{}},"parent":{}}],["pongframe",{"_index":1119,"name":{"2133":{}},"parent":{}}],["ponghandler",{"_index":1056,"name":{"1953":{},"2068":{},"2122":{}},"parent":{}}],["port",{"_index":1081,"name":{"1997":{},"2002":{}},"parent":{}}],["post",{"_index":27,"name":{"28":{},"1490":{}},"parent":{}}],["postabs",{"_index":818,"name":{"1491":{}},"parent":{}}],["priority",{"_index":1017,"name":{"1850":{},"2000":{}},"parent":{}}],["privatekeypath",{"_index":1044,"name":{"1934":{}},"parent":{}}],["processargs",{"_index":686,"name":{"1300":{}},"parent":{}}],["promise",{"_index":1028,"name":{"1893":{},"1894":{}},"parent":{"1894":{},"1895":{},"1896":{},"1897":{},"1898":{},"1899":{}}}],["props",{"_index":773,"name":{"1415":{}},"parent":{}}],["propsblocking",{"_index":774,"name":{"1416":{}},"parent":{}}],["protocol",{"_index":1084,"name":{"2004":{}},"parent":{}}],["proxyoptions",{"_index":451,"name":{"942":{}},"parent":{"943":{},"944":{},"945":{},"946":{},"947":{},"948":{},"949":{},"950":{},"951":{},"952":{},"953":{}}}],["proxytype",{"_index":44,"name":{"45":{}},"parent":{"46":{},"47":{},"48":{}}}],["publish",{"_index":741,"name":{"1380":{}},"parent":{}}],["publisher",{"_index":744,"name":{"1384":{}},"parent":{}}],["pump",{"_index":1029,"name":{"1900":{},"1901":{}},"parent":{"1901":{},"1902":{},"1903":{},"1904":{},"1905":{}}}],["push",{"_index":933,"name":{"1703":{}},"parent":{}}],["pushhandler",{"_index":847,"name":{"1543":{}},"parent":{}}],["put",{"_index":28,"name":{"29":{},"1141":{},"1305":{},"1498":{},"1780":{}},"parent":{}}],["putabs",{"_index":823,"name":{"1499":{}},"parent":{}}],["putheader",{"_index":843,"name":{"1538":{},"1688":{}},"parent":{}}],["putifabsent",{"_index":541,"name":{"1142":{},"1785":{}},"parent":{}}],["puttrailer",{"_index":924,"name":{"1690":{}},"parent":{}}],["query",{"_index":841,"name":{"1534":{},"1645":{},"1754":{},"1977":{}},"parent":{}}],["queryjson",{"_index":968,"name":{"1756":{}},"parent":{}}],["queryjsonordefault",{"_index":969,"name":{"1757":{}},"parent":{}}],["queryordefault",{"_index":967,"name":{"1755":{}},"parent":{}}],["rawmethod",{"_index":901,"name":{"1640":{}},"parent":{}}],["read",{"_index":533,"name":{"1132":{}},"parent":{}}],["readdir",{"_index":792,"name":{"1435":{}},"parent":{}}],["readdirblocking",{"_index":793,"name":{"1436":{}},"parent":{}}],["readfile",{"_index":794,"name":{"1437":{}},"parent":{}}],["readfileblocking",{"_index":795,"name":{"1438":{}},"parent":{}}],["readstream",{"_index":1033,"name":{"1906":{}},"parent":{"1907":{},"1908":{},"1909":{},"1910":{},"1911":{},"1912":{},"1913":{},"1914":{}}}],["readsymlink",{"_index":783,"name":{"1425":{}},"parent":{}}],["readsymlinkblocking",{"_index":784,"name":{"1426":{}},"parent":{}}],["recipient_failure",{"_index":51,"name":{"52":{}},"parent":{}}],["recordparser",{"_index":1034,"name":{"1915":{}},"parent":{"1916":{},"1917":{},"1918":{},"1919":{},"1920":{},"1921":{},"1922":{},"1923":{},"1924":{},"1925":{},"1926":{},"1927":{},"1928":{},"1929":{},"1930":{}}}],["recover",{"_index":659,"name":{"1269":{},"1479":{}},"parent":{}}],["redirecthandler",{"_index":830,"name":{"1509":{}},"parent":{}}],["refused",{"_index":13,"name":{"14":{}},"parent":{}}],["registercodec",{"_index":749,"name":{"1389":{}},"parent":{}}],["registerverticlefactory",{"_index":1110,"name":{"2049":{}},"parent":{}}],["reject",{"_index":1065,"name":{"1979":{}},"parent":{}}],["release",{"_index":990,"name":{"1794":{}},"parent":{}}],["remoteaddress",{"_index":879,"name":{"1589":{},"1653":{},"1879":{},"1955":{},"2070":{},"2124":{}},"parent":{}}],["remotesettings",{"_index":875,"name":{"1584":{}},"parent":{}}],["remotesettingshandler",{"_index":876,"name":{"1585":{}},"parent":{}}],["remove",{"_index":542,"name":{"1143":{},"1306":{},"1781":{},"1845":{}},"parent":{}}],["removeargument",{"_index":633,"name":{"1240":{}},"parent":{}}],["removeclosehook",{"_index":693,"name":{"1311":{}},"parent":{}}],["removecookie",{"_index":935,"name":{"1708":{}},"parent":{}}],["removeifpresent",{"_index":543,"name":{"1144":{},"1786":{}},"parent":{}}],["removeinboundinterceptor",{"_index":748,"name":{"1388":{}},"parent":{}}],["removeoption",{"_index":632,"name":{"1239":{}},"parent":{}}],["removeoutboundinterceptor",{"_index":746,"name":{"1386":{}},"parent":{}}],["replace",{"_index":544,"name":{"1145":{},"1788":{}},"parent":{}}],["replaceifpresent",{"_index":545,"name":{"1146":{},"1787":{}},"parent":{}}],["reply",{"_index":995,"name":{"1803":{}},"parent":{}}],["replyaddress",{"_index":993,"name":{"1801":{}},"parent":{}}],["replyandrequest",{"_index":996,"name":{"1804":{}},"parent":{}}],["replyfailure",{"_index":48,"name":{"49":{}},"parent":{"50":{},"51":{},"52":{}}}],["request",{"_index":2,"name":{"2":{},"1379":{},"1485":{},"1571":{}},"parent":{}}],["requestabs",{"_index":815,"name":{"1486":{}},"parent":{}}],["requesthandler",{"_index":888,"name":{"1601":{}},"parent":{}}],["requestoptions",{"_index":456,"name":{"954":{}},"parent":{"955":{},"956":{},"957":{},"958":{},"959":{},"960":{},"961":{},"962":{},"963":{},"964":{}}}],["requeststream",{"_index":887,"name":{"1600":{}},"parent":{}}],["required",{"_index":3,"name":{"3":{}},"parent":{}}],["reset",{"_index":848,"name":{"1544":{},"1704":{}},"parent":{}}],["resolvea",{"_index":731,"name":{"1367":{}},"parent":{}}],["resolveaaaa",{"_index":732,"name":{"1368":{}},"parent":{}}],["resolvecname",{"_index":733,"name":{"1369":{}},"parent":{}}],["resolvemx",{"_index":734,"name":{"1370":{}},"parent":{}}],["resolvens",{"_index":737,"name":{"1373":{}},"parent":{}}],["resolveptr",{"_index":736,"name":{"1372":{}},"parent":{}}],["resolvesrv",{"_index":738,"name":{"1374":{}},"parent":{}}],["resolvetxt",{"_index":735,"name":{"1371":{}},"parent":{}}],["response",{"_index":905,"name":{"1648":{}},"parent":{}}],["result",{"_index":518,"name":{"1116":{},"1264":{},"1470":{}},"parent":{}}],["resultat",{"_index":670,"name":{"1283":{}},"parent":{}}],["resume",{"_index":525,"name":{"1124":{},"1353":{},"1521":{},"1555":{},"1618":{},"1635":{},"1742":{},"1812":{},"1871":{},"1910":{},"1929":{},"1962":{},"2015":{},"2077":{},"2099":{}},"parent":{}}],["reverselookup",{"_index":739,"name":{"1375":{}},"parent":{}}],["runoncontext",{"_index":682,"name":{"1296":{},"2039":{}},"parent":{}}],["scheme",{"_index":902,"name":{"1642":{}},"parent":{}}],["selfsignedcertificate",{"_index":1041,"name":{"1931":{}},"parent":{"1932":{},"1933":{},"1934":{},"1935":{},"1936":{},"1937":{}}}],["send",{"_index":717,"name":{"1344":{},"1361":{},"1378":{},"1826":{}},"parent":{}}],["sender",{"_index":713,"name":{"1338":{},"1345":{},"1383":{}},"parent":{}}],["sendfile",{"_index":926,"name":{"1694":{},"1878":{}},"parent":{}}],["sendhead",{"_index":845,"name":{"1540":{}},"parent":{}}],["serverwebsocket",{"_index":1046,"name":{"1938":{}},"parent":{"1939":{},"1940":{},"1941":{},"1942":{},"1943":{},"1944":{},"1945":{},"1946":{},"1947":{},"1948":{},"1949":{},"1950":{},"1951":{},"1952":{},"1953":{},"1954":{},"1955":{},"1956":{},"1957":{},"1958":{},"1959":{},"1960":{},"1961":{},"1962":{},"1963":{},"1964":{},"1965":{},"1966":{},"1967":{},"1968":{},"1969":{},"1970":{},"1971":{},"1972":{},"1973":{},"1974":{},"1975":{},"1976":{},"1977":{},"1978":{},"1979":{},"1980":{},"1981":{}}}],["servfail",{"_index":10,"name":{"11":{}},"parent":{}}],["service",{"_index":1085,"name":{"2005":{}},"parent":{}}],["set",{"_index":1013,"name":{"1843":{}},"parent":{}}],["setacceptbacklog",{"_index":238,"name":{"263":{},"541":{},"770":{}},"parent":{}}],["setacceptunmaskedframes",{"_index":353,"name":{"543":{}},"parent":{}}],["setaddressresolveroptions",{"_index":469,"name":{"1041":{}},"parent":{}}],["setall",{"_index":1014,"name":{"1844":{}},"parent":{}}],["setalpnversions",{"_index":284,"name":{"384":{},"545":{}},"parent":{}}],["setappend",{"_index":395,"name":{"861":{}},"parent":{}}],["setargname",{"_index":89,"name":{"91":{},"889":{}},"parent":{}}],["setarguments",{"_index":629,"name":{"1236":{}},"parent":{}}],["setatomicmove",{"_index":178,"name":{"182":{}},"parent":{}}],["setblockedthreadcheckinterval",{"_index":471,"name":{"1043":{}},"parent":{}}],["setblockedthreadcheckintervalunit",{"_index":473,"name":{"1045":{}},"parent":{}}],["setbroadcast",{"_index":187,"name":{"192":{}},"parent":{}}],["setbuffer",{"_index":607,"name":{"1209":{}},"parent":{}}],["setbyte",{"_index":591,"name":{"1193":{}},"parent":{}}],["setbytes",{"_index":614,"name":{"1216":{}},"parent":{}}],["setcachemaxtimetolive",{"_index":60,"name":{"61":{}},"parent":{}}],["setcachemintimetolive",{"_index":62,"name":{"63":{}},"parent":{}}],["setcachenegativetimetolive",{"_index":64,"name":{"65":{}},"parent":{}}],["setcertpath",{"_index":435,"name":{"916":{}},"parent":{}}],["setcertpaths",{"_index":437,"name":{"918":{}},"parent":{}}],["setcertvalue",{"_index":438,"name":{"919":{}},"parent":{}}],["setcertvalues",{"_index":440,"name":{"921":{}},"parent":{}}],["setchoices",{"_index":421,"name":{"891":{}},"parent":{}}],["setchunked",{"_index":833,"name":{"1526":{},"1685":{}},"parent":{}}],["setclasspathresolvingenabled",{"_index":257,"name":{"354":{}},"parent":{}}],["setclientauth",{"_index":240,"name":{"265":{},"547":{},"772":{}},"parent":{}}],["setclientauthrequired",{"_index":355,"name":{"549":{},"774":{}},"parent":{}}],["setclustered",{"_index":250,"name":{"275":{},"1059":{}},"parent":{}}],["setclusterhost",{"_index":475,"name":{"1047":{}},"parent":{}}],["setclusterpinginterval",{"_index":242,"name":{"267":{},"1049":{}},"parent":{}}],["setclusterpingreplyinterval",{"_index":244,"name":{"269":{},"1051":{}},"parent":{}}],["setclusterport",{"_index":477,"name":{"1053":{}},"parent":{}}],["setclusterpublichost",{"_index":246,"name":{"271":{},"1055":{}},"parent":{}}],["setclusterpublicport",{"_index":248,"name":{"273":{},"1057":{}},"parent":{}}],["setcodecname",{"_index":198,"name":{"216":{}},"parent":{}}],["setcompressionlevel",{"_index":357,"name":{"551":{}},"parent":{}}],["setcompressionsupported",{"_index":359,"name":{"553":{}},"parent":{}}],["setconfig",{"_index":206,"name":{"225":{}},"parent":{}}],["setconnecttimeout",{"_index":104,"name":{"107":{},"277":{},"386":{},"689":{}},"parent":{}}],["setcopyattributes",{"_index":180,"name":{"184":{}},"parent":{}}],["setcreate",{"_index":397,"name":{"863":{}},"parent":{}}],["setcreatenew",{"_index":399,"name":{"865":{}},"parent":{}}],["setdebugdata",{"_index":264,"name":{"362":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":286,"name":{"392":{},"559":{}},"parent":{}}],["setdecompressionsupported",{"_index":361,"name":{"561":{}},"parent":{}}],["setdefaulthost",{"_index":288,"name":{"394":{}},"parent":{}}],["setdefaultport",{"_index":290,"name":{"396":{}},"parent":{}}],["setdefaultvalue",{"_index":91,"name":{"93":{},"894":{}},"parent":{}}],["setdeleteonclose",{"_index":401,"name":{"867":{}},"parent":{}}],["setdependency",{"_index":461,"name":{"968":{}},"parent":{}}],["setdescription",{"_index":93,"name":{"95":{},"896":{},"1224":{}},"parent":{}}],["setdomain",{"_index":695,"name":{"1317":{}},"parent":{}}],["setdouble",{"_index":601,"name":{"1203":{}},"parent":{}}],["setdsync",{"_index":403,"name":{"869":{}},"parent":{}}],["setenabled",{"_index":387,"name":{"685":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":112,"name":{"115":{},"285":{},"400":{},"565":{},"697":{},"782":{},"982":{}},"parent":{}}],["seterrorcode",{"_index":266,"name":{"364":{}},"parent":{}}],["seteventbusoptions",{"_index":479,"name":{"1061":{}},"parent":{}}],["seteventlooppoolsize",{"_index":481,"name":{"1063":{}},"parent":{}}],["setexclusive",{"_index":463,"name":{"970":{}},"parent":{}}],["setexpectmultipart",{"_index":909,"name":{"1659":{}},"parent":{}}],["setextraclasspath",{"_index":208,"name":{"227":{}},"parent":{}}],["setfilecachedir",{"_index":259,"name":{"356":{}},"parent":{}}],["setfilecachingenabled",{"_index":261,"name":{"358":{}},"parent":{}}],["setfileresolvercachingenabled",{"_index":483,"name":{"1065":{}},"parent":{}}],["setfilesystemoptions",{"_index":485,"name":{"1067":{}},"parent":{}}],["setflag",{"_index":424,"name":{"898":{}},"parent":{}}],["setfloat",{"_index":602,"name":{"1204":{}},"parent":{}}],["setfollowredirects",{"_index":832,"name":{"1524":{}},"parent":{}}],["setforcesni",{"_index":292,"name":{"403":{}},"parent":{}}],["setha",{"_index":210,"name":{"229":{}},"parent":{}}],["sethaenabled",{"_index":487,"name":{"1069":{}},"parent":{}}],["sethagroup",{"_index":489,"name":{"1071":{}},"parent":{}}],["sethandle100continueautomatically",{"_index":363,"name":{"568":{}},"parent":{}}],["sethandler",{"_index":665,"name":{"1275":{},"1462":{}},"parent":{}}],["sethandshake",{"_index":1066,"name":{"1980":{}},"parent":{}}],["setheadertablesize",{"_index":271,"name":{"370":{}},"parent":{}}],["sethelp",{"_index":426,"name":{"900":{}},"parent":{}}],["sethidden",{"_index":95,"name":{"97":{},"902":{},"1228":{}},"parent":{}}],["sethost",{"_index":231,"name":{"251":{},"288":{},"570":{},"785":{},"945":{},"958":{},"1098":{},"1535":{}},"parent":{}}],["sethostnameverificationalgorithm",{"_index":390,"name":{"700":{}},"parent":{}}],["sethostspath",{"_index":66,"name":{"67":{}},"parent":{}}],["sethostsvalue",{"_index":68,"name":{"69":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":294,"name":{"405":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":296,"name":{"407":{},"572":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":298,"name":{"409":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":300,"name":{"411":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":302,"name":{"413":{}},"parent":{}}],["sethttponly",{"_index":700,"name":{"1324":{}},"parent":{}}],["setidletimeout",{"_index":115,"name":{"118":{},"290":{},"415":{},"574":{},"702":{},"787":{},"985":{}},"parent":{}}],["setidletimeoutunit",{"_index":117,"name":{"120":{},"292":{},"417":{},"576":{},"704":{},"789":{},"987":{}},"parent":{}}],["setindex",{"_index":97,"name":{"99":{}},"parent":{}}],["setinitialsettings",{"_index":304,"name":{"419":{},"578":{}},"parent":{}}],["setinitialwindowsize",{"_index":273,"name":{"372":{}},"parent":{}}],["setinstances",{"_index":212,"name":{"231":{}},"parent":{}}],["setint",{"_index":593,"name":{"1195":{}},"parent":{}}],["setinternalblockingpoolsize",{"_index":491,"name":{"1073":{}},"parent":{}}],["setintle",{"_index":594,"name":{"1196":{}},"parent":{}}],["setipv6",{"_index":189,"name":{"194":{}},"parent":{}}],["setisolatedclasses",{"_index":214,"name":{"233":{}},"parent":{}}],["setisolationgroup",{"_index":216,"name":{"235":{}},"parent":{}}],["setjdksslengineoptions",{"_index":119,"name":{"122":{},"294":{},"421":{},"580":{},"706":{},"791":{},"989":{}},"parent":{}}],["setkeepalive",{"_index":306,"name":{"423":{}},"parent":{}}],["setkeepalivetimeout",{"_index":308,"name":{"425":{}},"parent":{}}],["setkeypath",{"_index":441,"name":{"922":{}},"parent":{}}],["setkeypaths",{"_index":443,"name":{"924":{}},"parent":{}}],["setkeystoreoptions",{"_index":121,"name":{"124":{},"296":{},"427":{},"582":{},"708":{},"793":{},"991":{}},"parent":{}}],["setkeyvalue",{"_index":444,"name":{"925":{}},"parent":{}}],["setkeyvalues",{"_index":446,"name":{"927":{}},"parent":{}}],["setlaststreamid",{"_index":268,"name":{"366":{}},"parent":{}}],["setlocaladdress",{"_index":123,"name":{"126":{},"429":{},"710":{}},"parent":{}}],["setlocalonly",{"_index":201,"name":{"219":{}},"parent":{}}],["setlogactivity",{"_index":125,"name":{"128":{},"196":{},"253":{},"298":{},"431":{},"584":{},"712":{},"795":{},"847":{},"993":{}},"parent":{}}],["setlong",{"_index":599,"name":{"1201":{}},"parent":{}}],["setlongle",{"_index":600,"name":{"1202":{}},"parent":{}}],["setlongname",{"_index":428,"name":{"904":{}},"parent":{}}],["setloopbackmodedisabled",{"_index":191,"name":{"198":{}},"parent":{}}],["setmaxage",{"_index":697,"name":{"1321":{}},"parent":{}}],["setmaxbufferedmessages",{"_index":1000,"name":{"1818":{}},"parent":{}}],["setmaxchunksize",{"_index":310,"name":{"433":{},"586":{}},"parent":{}}],["setmaxconcurrentstreams",{"_index":275,"name":{"374":{}},"parent":{}}],["setmaxeventloopexecutetime",{"_index":493,"name":{"1075":{}},"parent":{}}],["setmaxeventloopexecutetimeunit",{"_index":495,"name":{"1077":{}},"parent":{}}],["setmaxframesize",{"_index":277,"name":{"376":{}},"parent":{}}],["setmaxheaderlistsize",{"_index":279,"name":{"378":{}},"parent":{}}],["setmaxheadersize",{"_index":312,"name":{"435":{},"588":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":314,"name":{"437":{},"590":{}},"parent":{}}],["setmaxpoolsize",{"_index":316,"name":{"439":{}},"parent":{}}],["setmaxqueries",{"_index":70,"name":{"71":{}},"parent":{}}],["setmaxredirects",{"_index":318,"name":{"441":{},"1525":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":320,"name":{"443":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":322,"name":{"445":{},"449":{},"592":{},"596":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":324,"name":{"447":{},"451":{},"594":{},"598":{}},"parent":{}}],["setmaxworkerexecutetime",{"_index":218,"name":{"237":{},"1079":{}},"parent":{}}],["setmaxworkerexecutetimeunit",{"_index":220,"name":{"239":{},"1081":{}},"parent":{}}],["setmedium",{"_index":597,"name":{"1199":{}},"parent":{}}],["setmediumle",{"_index":598,"name":{"1200":{}},"parent":{}}],["setmetricsname",{"_index":127,"name":{"130":{},"453":{},"714":{}},"parent":{}}],["setmetricsoptions",{"_index":497,"name":{"1083":{}},"parent":{}}],["setmulticastnetworkinterface",{"_index":193,"name":{"200":{}},"parent":{}}],["setmulticasttimetolive",{"_index":195,"name":{"202":{}},"parent":{}}],["setmultithreaded",{"_index":222,"name":{"241":{}},"parent":{}}],["setmultivalued",{"_index":99,"name":{"101":{},"906":{}},"parent":{}}],["setname",{"_index":619,"name":{"1222":{}},"parent":{}}],["setndots",{"_index":72,"name":{"73":{}},"parent":{}}],["setnofollowlinks",{"_index":182,"name":{"186":{}},"parent":{}}],["setopensslengineoptions",{"_index":129,"name":{"132":{},"300":{},"455":{},"600":{},"716":{},"797":{},"995":{}},"parent":{}}],["setoptions",{"_index":625,"name":{"1232":{}},"parent":{}}],["setoptresourceenabled",{"_index":74,"name":{"75":{}},"parent":{}}],["setoutput",{"_index":1035,"name":{"1918":{}},"parent":{}}],["setpassword",{"_index":380,"name":{"677":{},"937":{},"947":{}},"parent":{}}],["setpath",{"_index":382,"name":{"679":{},"939":{},"1319":{}},"parent":{}}],["setpemkeycertoptions",{"_index":131,"name":{"134":{},"302":{},"457":{},"602":{},"718":{},"799":{},"997":{}},"parent":{}}],["setpemtrustoptions",{"_index":133,"name":{"136":{},"304":{},"459":{},"604":{},"720":{},"801":{},"999":{}},"parent":{}}],["setperframewebsocketcompressionsupported",{"_index":365,"name":{"606":{},"608":{}},"parent":{}}],["setperiodic",{"_index":1102,"name":{"2036":{}},"parent":{}}],["setpermessagewebsocketcompressionsupported",{"_index":367,"name":{"610":{},"612":{}},"parent":{}}],["setperms",{"_index":405,"name":{"871":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":135,"name":{"138":{},"306":{},"461":{},"614":{},"722":{},"803":{},"1001":{}},"parent":{}}],["setpfxtrustoptions",{"_index":137,"name":{"140":{},"308":{},"463":{},"616":{},"724":{},"805":{},"1003":{}},"parent":{}}],["setpipelining",{"_index":326,"name":{"465":{}},"parent":{}}],["setpipelininglimit",{"_index":328,"name":{"467":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":330,"name":{"469":{}},"parent":{}}],["setport",{"_index":233,"name":{"255":{},"310":{},"618":{},"807":{},"949":{},"960":{},"1100":{}},"parent":{}}],["setprefernativetransport",{"_index":499,"name":{"1085":{}},"parent":{}}],["setpriority",{"_index":635,"name":{"1242":{}},"parent":{}}],["setprotocolversion",{"_index":332,"name":{"471":{}},"parent":{}}],["setproxyoptions",{"_index":139,"name":{"142":{},"473":{},"726":{}},"parent":{}}],["setpushenabled",{"_index":281,"name":{"380":{}},"parent":{}}],["setquerytimeout",{"_index":76,"name":{"77":{},"257":{}},"parent":{}}],["setquorumsize",{"_index":501,"name":{"1087":{}},"parent":{}}],["setrawmethod",{"_index":837,"name":{"1530":{}},"parent":{}}],["setrdflag",{"_index":78,"name":{"79":{}},"parent":{}}],["setread",{"_index":407,"name":{"873":{}},"parent":{}}],["setreadbuffersize",{"_index":539,"name":{"1138":{}},"parent":{}}],["setreadlength",{"_index":536,"name":{"1135":{}},"parent":{}}],["setreadpos",{"_index":535,"name":{"1134":{}},"parent":{}}],["setreceivebuffersize",{"_index":141,"name":{"144":{},"204":{},"312":{},"475":{},"620":{},"728":{},"809":{},"849":{},"1005":{}},"parent":{}}],["setreconnectattempts",{"_index":252,"name":{"314":{},"730":{}},"parent":{}}],["setreconnectinterval",{"_index":254,"name":{"316":{},"732":{}},"parent":{}}],["setrecursiondesired",{"_index":235,"name":{"259":{}},"parent":{}}],["setreplaceexisting",{"_index":184,"name":{"188":{}},"parent":{}}],["setrequired",{"_index":101,"name":{"103":{},"909":{}},"parent":{}}],["setreuseaddress",{"_index":143,"name":{"146":{},"206":{},"318":{},"477":{},"622":{},"734":{},"811":{},"851":{},"1007":{}},"parent":{}}],["setreuseport",{"_index":145,"name":{"148":{},"208":{},"320":{},"479":{},"624":{},"736":{},"813":{},"853":{},"1009":{}},"parent":{}}],["setrotateservers",{"_index":80,"name":{"81":{}},"parent":{}}],["setsamesite",{"_index":702,"name":{"1326":{}},"parent":{}}],["setsearchdomains",{"_index":82,"name":{"83":{}},"parent":{}}],["setsecure",{"_index":698,"name":{"1322":{}},"parent":{}}],["setsendbuffersize",{"_index":147,"name":{"150":{},"210":{},"322":{},"481":{},"626":{},"738":{},"815":{},"855":{},"1011":{}},"parent":{}}],["setsendtimeout",{"_index":203,"name":{"221":{}},"parent":{}}],["setsendunmaskedframes",{"_index":334,"name":{"483":{}},"parent":{}}],["setservers",{"_index":85,"name":{"86":{}},"parent":{}}],["setsessioncacheenabled",{"_index":418,"name":{"885":{}},"parent":{}}],["setshort",{"_index":603,"name":{"1205":{}},"parent":{}}],["setshortle",{"_index":604,"name":{"1206":{}},"parent":{}}],["setshortname",{"_index":431,"name":{"911":{}},"parent":{}}],["setsinglevalued",{"_index":433,"name":{"913":{}},"parent":{}}],["setsni",{"_index":369,"name":{"628":{},"817":{}},"parent":{}}],["setsolinger",{"_index":149,"name":{"152":{},"324":{},"485":{},"630":{},"740":{},"819":{},"1013":{}},"parent":{}}],["setsparse",{"_index":409,"name":{"875":{}},"parent":{}}],["setssl",{"_index":151,"name":{"154":{},"326":{},"487":{},"632":{},"742":{},"821":{},"962":{},"1015":{},"1102":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":153,"name":{"156":{},"328":{},"489":{},"634":{},"744":{},"823":{},"1017":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":155,"name":{"158":{},"330":{},"491":{},"636":{},"746":{},"825":{},"1019":{}},"parent":{}}],["setstatuscode",{"_index":921,"name":{"1682":{}},"parent":{}}],["setstatusmessage",{"_index":923,"name":{"1684":{}},"parent":{}}],["setstreampriority",{"_index":852,"name":{"1549":{},"1706":{}},"parent":{}}],["setstring",{"_index":608,"name":{"1210":{}},"parent":{}}],["setsubprotocols",{"_index":508,"name":{"1104":{}},"parent":{}}],["setsummary",{"_index":621,"name":{"1226":{}},"parent":{}}],["setsync",{"_index":411,"name":{"877":{}},"parent":{}}],["settcpcork",{"_index":157,"name":{"160":{},"332":{},"493":{},"638":{},"748":{},"827":{},"1021":{}},"parent":{}}],["settcpfastopen",{"_index":159,"name":{"162":{},"334":{},"495":{},"640":{},"750":{},"829":{},"1023":{}},"parent":{}}],["settcpkeepalive",{"_index":161,"name":{"164":{},"336":{},"497":{},"642":{},"752":{},"831":{},"1025":{}},"parent":{}}],["settcpnodelay",{"_index":163,"name":{"166":{},"338":{},"499":{},"644":{},"754":{},"833":{},"1027":{}},"parent":{}}],["settcpquickack",{"_index":165,"name":{"168":{},"340":{},"501":{},"646":{},"756":{},"835":{},"1029":{}},"parent":{}}],["settimeout",{"_index":846,"name":{"1542":{}},"parent":{}}],["settimer",{"_index":1100,"name":{"2034":{}},"parent":{}}],["settings",{"_index":873,"name":{"1582":{}},"parent":{}}],["settrafficclass",{"_index":167,"name":{"170":{},"212":{},"342":{},"503":{},"648":{},"758":{},"837":{},"857":{},"1031":{}},"parent":{}}],["settruncateexisting",{"_index":413,"name":{"879":{}},"parent":{}}],["settrustall",{"_index":169,"name":{"172":{},"344":{},"505":{},"760":{}},"parent":{}}],["settruststoreoptions",{"_index":171,"name":{"174":{},"346":{},"507":{},"650":{},"762":{},"839":{},"1033":{}},"parent":{}}],["settryusecompression",{"_index":336,"name":{"509":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":337,"name":{"510":{},"511":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":339,"name":{"513":{},"515":{}},"parent":{}}],["settype",{"_index":453,"name":{"951":{}},"parent":{}}],["setunsignedbyte",{"_index":592,"name":{"1194":{}},"parent":{}}],["setunsignedint",{"_index":595,"name":{"1197":{}},"parent":{}}],["setunsignedintle",{"_index":596,"name":{"1198":{}},"parent":{}}],["setunsignedshort",{"_index":605,"name":{"1207":{}},"parent":{}}],["setunsignedshortle",{"_index":606,"name":{"1208":{}},"parent":{}}],["seturi",{"_index":458,"name":{"964":{},"1107":{}},"parent":{}}],["setusealpn",{"_index":173,"name":{"176":{},"348":{},"519":{},"652":{},"764":{},"841":{},"1035":{}},"parent":{}}],["setusepooledbuffers",{"_index":175,"name":{"178":{},"350":{},"521":{},"654":{},"766":{},"843":{},"1037":{}},"parent":{}}],["setusername",{"_index":455,"name":{"953":{}},"parent":{}}],["setvalue",{"_index":384,"name":{"681":{},"941":{},"1316":{}},"parent":{}}],["setverifyhost",{"_index":342,"name":{"523":{}},"parent":{}}],["setversion",{"_index":511,"name":{"1109":{}},"parent":{}}],["setwarningexceptiontime",{"_index":503,"name":{"1089":{}},"parent":{}}],["setwarningexceptiontimeunit",{"_index":505,"name":{"1091":{}},"parent":{}}],["setwebsocketallowservernocontext",{"_index":371,"name":{"656":{},"665":{}},"parent":{}}],["setwebsocketclosingtimeout",{"_index":344,"name":{"525":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":346,"name":{"527":{},"533":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":348,"name":{"529":{},"535":{},"658":{},"667":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":350,"name":{"531":{},"537":{}},"parent":{}}],["setwebsocketpreferredclientnocontext",{"_index":373,"name":{"660":{},"669":{}},"parent":{}}],["setwebsocketsubprotocols",{"_index":375,"name":{"662":{},"671":{}},"parent":{}}],["setweight",{"_index":465,"name":{"972":{}},"parent":{}}],["setwindowsize",{"_index":868,"name":{"1575":{}},"parent":{}}],["setworker",{"_index":224,"name":{"243":{}},"parent":{}}],["setworkerpoolname",{"_index":226,"name":{"245":{}},"parent":{}}],["setworkerpoolsize",{"_index":228,"name":{"247":{},"1093":{}},"parent":{}}],["setwrite",{"_index":415,"name":{"881":{}},"parent":{}}],["setwritepos",{"_index":537,"name":{"1136":{}},"parent":{}}],["setwritequeuemaxsize",{"_index":528,"name":{"1127":{},"1517":{},"1679":{},"1829":{},"1875":{},"1902":{},"1966":{},"2081":{},"2103":{},"2152":{}},"parent":{}}],["shareddata",{"_index":1067,"name":{"1982":{},"2033":{}},"parent":{"1983":{},"1984":{},"1985":{},"1986":{},"1987":{},"1988":{},"1989":{},"1990":{},"1991":{},"1992":{}}}],["shutdown",{"_index":871,"name":{"1579":{}},"parent":{}}],["shutdownhandler",{"_index":870,"name":{"1578":{}},"parent":{}}],["size",{"_index":547,"name":{"1148":{},"1284":{},"1399":{},"1626":{},"1783":{},"1847":{}},"parent":{}}],["slice",{"_index":611,"name":{"1213":{}},"parent":{}}],["socketaddress",{"_index":1078,"name":{"1993":{}},"parent":{"1994":{},"1995":{},"1996":{},"1997":{},"1998":{}}}],["socks4",{"_index":46,"name":{"47":{}},"parent":{}}],["socks5",{"_index":47,"name":{"48":{}},"parent":{}}],["srvrecord",{"_index":1082,"name":{"1999":{}},"parent":{"2000":{},"2001":{},"2002":{},"2003":{},"2004":{},"2005":{},"2006":{}}}],["sslsession",{"_index":881,"name":{"1593":{},"1673":{},"1886":{},"1981":{},"2090":{},"2128":{}},"parent":{}}],["start",{"_index":1030,"name":{"1903":{}},"parent":{}}],["start_array",{"_index":41,"name":{"42":{}},"parent":{}}],["start_object",{"_index":39,"name":{"40":{}},"parent":{}}],["statuscode",{"_index":856,"name":{"1561":{}},"parent":{}}],["statusmessage",{"_index":857,"name":{"1562":{}},"parent":{}}],["stop",{"_index":1031,"name":{"1904":{}},"parent":{}}],["streambase",{"_index":1087,"name":{"2007":{}},"parent":{"2008":{}}}],["streamid",{"_index":851,"name":{"1548":{},"1702":{}},"parent":{}}],["streampriority",{"_index":459,"name":{"965":{},"1669":{}},"parent":{"966":{},"967":{},"968":{},"969":{},"970":{},"971":{},"972":{}}}],["streampriorityhandler",{"_index":865,"name":{"1572":{},"1670":{}},"parent":{}}],["streamtofilesystem",{"_index":892,"name":{"1620":{}},"parent":{}}],["strict",{"_index":5,"name":{"6":{}},"parent":{}}],["stringvalue",{"_index":946,"name":{"1721":{}},"parent":{}}],["subprotocol",{"_index":1049,"name":{"1945":{},"2060":{},"2107":{}},"parent":{}}],["succeeded",{"_index":515,"name":{"1113":{},"1280":{},"1472":{}},"parent":{}}],["succeededfuture",{"_index":672,"name":{"1286":{},"1459":{}},"parent":{}}],["symlink",{"_index":779,"name":{"1421":{}},"parent":{}}],["symlinkblocking",{"_index":780,"name":{"1422":{}},"parent":{}}],["target",{"_index":1086,"name":{"2006":{}},"parent":{}}],["tcpssloptions",{"_index":466,"name":{"973":{}},"parent":{"974":{},"975":{},"976":{},"977":{},"978":{},"979":{},"980":{},"981":{},"982":{},"983":{},"984":{},"985":{},"986":{},"987":{},"988":{},"989":{},"990":{},"991":{},"992":{},"993":{},"994":{},"995":{},"996":{},"997":{},"998":{},"999":{},"1000":{},"1001":{},"1002":{},"1003":{},"1004":{},"1005":{},"1006":{},"1007":{},"1008":{},"1009":{},"1010":{},"1011":{},"1012":{},"1013":{},"1014":{},"1015":{},"1016":{},"1017":{},"1018":{},"1019":{},"1020":{},"1021":{},"1022":{},"1023":{},"1024":{},"1025":{},"1026":{},"1027":{},"1028":{},"1029":{},"1030":{},"1031":{},"1032":{},"1033":{},"1034":{},"1035":{},"1036":{},"1037":{}}}],["textdata",{"_index":1125,"name":{"2139":{}},"parent":{}}],["textframe",{"_index":1117,"name":{"2131":{}},"parent":{}}],["texthandlerid",{"_index":1048,"name":{"1944":{},"2059":{},"2106":{}},"parent":{}}],["textmessagehandler",{"_index":1054,"name":{"1951":{},"2066":{},"2120":{}},"parent":{}}],["then",{"_index":677,"name":{"1291":{},"1482":{}},"parent":{}}],["timeout",{"_index":49,"name":{"50":{}},"parent":{}}],["timeoutstream",{"_index":1088,"name":{"2009":{}},"parent":{"2010":{},"2011":{},"2012":{},"2013":{},"2014":{},"2015":{},"2016":{},"2017":{},"2018":{}}}],["timerstream",{"_index":1101,"name":{"2035":{}},"parent":{}}],["to",{"_index":1027,"name":{"1891":{}},"parent":{}}],["tojson",{"_index":552,"name":{"1154":{}},"parent":{}}],["tojsonarray",{"_index":551,"name":{"1153":{}},"parent":{}}],["tojsonobject",{"_index":550,"name":{"1152":{}},"parent":{}}],["tonetsocket",{"_index":908,"name":{"1658":{}},"parent":{}}],["tostring",{"_index":549,"name":{"1151":{},"1751":{}},"parent":{}}],["totalspace",{"_index":811,"name":{"1454":{}},"parent":{}}],["touri",{"_index":973,"name":{"1764":{}},"parent":{}}],["towebsocket",{"_index":915,"name":{"1665":{}},"parent":{}}],["trace",{"_index":30,"name":{"31":{}},"parent":{}}],["tracedquery",{"_index":970,"name":{"1758":{}},"parent":{}}],["trailers",{"_index":860,"name":{"1566":{},"1689":{}},"parent":{}}],["truncate",{"_index":765,"name":{"1407":{}},"parent":{}}],["truncateblocking",{"_index":766,"name":{"1408":{}},"parent":{}}],["trustoptions",{"_index":1043,"name":{"1933":{}},"parent":{}}],["trycomplete",{"_index":654,"name":{"1263":{},"1468":{},"1897":{}},"parent":{}}],["tryfail",{"_index":675,"name":{"1289":{},"1469":{},"1898":{}},"parent":{}}],["type",{"_index":883,"name":{"1595":{},"1710":{}},"parent":{}}],["unallocatedspace",{"_index":812,"name":{"1455":{}},"parent":{}}],["undeploy",{"_index":1106,"name":{"2042":{}},"parent":{}}],["unlink",{"_index":781,"name":{"1423":{}},"parent":{}}],["unlinkblocking",{"_index":782,"name":{"1424":{}},"parent":{}}],["unlistenmulticastgroup",{"_index":720,"name":{"1349":{}},"parent":{}}],["unregister",{"_index":1003,"name":{"1821":{}},"parent":{}}],["unregistercodec",{"_index":750,"name":{"1390":{}},"parent":{}}],["unregisterverticlefactory",{"_index":1111,"name":{"2050":{}},"parent":{}}],["updatesettings",{"_index":874,"name":{"1583":{}},"parent":{}}],["upgrade",{"_index":914,"name":{"1664":{}},"parent":{}}],["upgradetossl",{"_index":1023,"name":{"1883":{}},"parent":{}}],["uploadhandler",{"_index":911,"name":{"1661":{}},"parent":{}}],["uri",{"_index":839,"name":{"1532":{},"1643":{},"1975":{}},"parent":{}}],["usablespace",{"_index":813,"name":{"1456":{}},"parent":{}}],["v00",{"_index":53,"name":{"54":{}},"parent":{}}],["v07",{"_index":54,"name":{"55":{}},"parent":{}}],["v08",{"_index":55,"name":{"56":{}},"parent":{}}],["v13",{"_index":56,"name":{"57":{}},"parent":{}}],["value",{"_index":43,"name":{"44":{},"1712":{}},"parent":{}}],["version",{"_index":855,"name":{"1560":{},"1638":{}},"parent":{}}],["verticlefactories",{"_index":1112,"name":{"2051":{}},"parent":{}}],["vertx",{"_index":1090,"name":{"2019":{},"2021":{}},"parent":{"2020":{},"2021":{},"2022":{},"2023":{},"2024":{},"2025":{},"2026":{},"2027":{},"2028":{},"2029":{},"2030":{},"2031":{},"2032":{},"2033":{},"2034":{},"2035":{},"2036":{},"2037":{},"2038":{},"2039":{},"2040":{},"2041":{},"2042":{},"2043":{},"2044":{},"2045":{},"2046":{},"2047":{},"2048":{},"2049":{},"2050":{},"2051":{},"2052":{}}}],["vertxoptions",{"_index":467,"name":{"1038":{}},"parent":{"1039":{},"1040":{},"1041":{},"1042":{},"1043":{},"1044":{},"1045":{},"1046":{},"1047":{},"1048":{},"1049":{},"1050":{},"1051":{},"1052":{},"1053":{},"1054":{},"1055":{},"1056":{},"1057":{},"1058":{},"1059":{},"1060":{},"1061":{},"1062":{},"1063":{},"1064":{},"1065":{},"1066":{},"1067":{},"1068":{},"1069":{},"1070":{},"1071":{},"1072":{},"1073":{},"1074":{},"1075":{},"1076":{},"1077":{},"1078":{},"1079":{},"1080":{},"1081":{},"1082":{},"1083":{},"1084":{},"1085":{},"1086":{},"1087":{},"1088":{},"1089":{},"1090":{},"1091":{},"1092":{},"1093":{}}}],["websocket",{"_index":825,"name":{"1502":{},"1504":{},"2053":{}},"parent":{"2054":{},"2055":{},"2056":{},"2057":{},"2058":{},"2059":{},"2060":{},"2061":{},"2062":{},"2063":{},"2064":{},"2065":{},"2066":{},"2067":{},"2068":{},"2069":{},"2070":{},"2071":{},"2072":{},"2073":{},"2074":{},"2075":{},"2076":{},"2077":{},"2078":{},"2079":{},"2080":{},"2081":{},"2082":{},"2083":{},"2084":{},"2085":{},"2086":{},"2087":{},"2088":{},"2089":{},"2090":{}}}],["websocketabs",{"_index":826,"name":{"1503":{},"1505":{}},"parent":{}}],["websocketbase",{"_index":1114,"name":{"2091":{}},"parent":{"2092":{},"2093":{},"2094":{},"2095":{},"2096":{},"2097":{},"2098":{},"2099":{},"2100":{},"2101":{},"2102":{},"2103":{},"2104":{},"2105":{},"2106":{},"2107":{},"2108":{},"2109":{},"2110":{},"2111":{},"2112":{},"2113":{},"2114":{},"2115":{},"2116":{},"2117":{},"2118":{},"2119":{},"2120":{},"2121":{},"2122":{},"2123":{},"2124":{},"2125":{},"2126":{},"2127":{},"2128":{}}}],["websocketconnectoptions",{"_index":506,"name":{"1094":{}},"parent":{"1095":{},"1096":{},"1097":{},"1098":{},"1099":{},"1100":{},"1101":{},"1102":{},"1103":{},"1104":{},"1105":{},"1106":{},"1107":{},"1108":{},"1109":{}}}],["websocketframe",{"_index":1115,"name":{"2129":{}},"parent":{"2130":{},"2131":{},"2132":{},"2133":{},"2134":{},"2135":{},"2136":{},"2137":{},"2138":{},"2139":{},"2140":{},"2141":{},"2142":{},"2143":{}}}],["websockethandler",{"_index":889,"name":{"1606":{},"1607":{}},"parent":{}}],["websocketstream",{"_index":827,"name":{"1506":{},"1604":{},"1605":{}},"parent":{}}],["websocketstreamabs",{"_index":828,"name":{"1507":{}},"parent":{}}],["websocketversion",{"_index":52,"name":{"53":{}},"parent":{"54":{},"55":{},"56":{},"57":{}}}],["weight",{"_index":1083,"name":{"2001":{}},"parent":{}}],["workerexecutor",{"_index":1128,"name":{"2144":{}},"parent":{"2145":{},"2146":{},"2147":{}}}],["write",{"_index":527,"name":{"1126":{},"1516":{},"1678":{},"1735":{},"1759":{},"1828":{},"1874":{},"1965":{},"2080":{},"2102":{},"2150":{}},"parent":{}}],["writearrayelement",{"_index":982,"name":{"1776":{}},"parent":{}}],["writebinarymessage",{"_index":1061,"name":{"1971":{},"2086":{},"2114":{}},"parent":{}}],["writecontinue",{"_index":925,"name":{"1693":{}},"parent":{}}],["writecustomframe",{"_index":850,"name":{"1547":{},"1705":{}},"parent":{}}],["writefile",{"_index":796,"name":{"1439":{}},"parent":{}}],["writefileblocking",{"_index":797,"name":{"1440":{}},"parent":{}}],["writefinalbinaryframe",{"_index":1060,"name":{"1970":{},"2085":{},"2113":{}},"parent":{}}],["writefinaltextframe",{"_index":1059,"name":{"1969":{},"2084":{},"2112":{}},"parent":{}}],["writeframe",{"_index":1058,"name":{"1968":{},"2083":{},"2111":{}},"parent":{}}],["writehandlerid",{"_index":1022,"name":{"1877":{}},"parent":{}}],["writejson",{"_index":971,"name":{"1760":{}},"parent":{}}],["writeobjectparameter",{"_index":981,"name":{"1775":{}},"parent":{}}],["writeping",{"_index":1052,"name":{"1949":{},"2064":{},"2116":{}},"parent":{}}],["writepong",{"_index":1053,"name":{"1950":{},"2065":{},"2117":{}},"parent":{}}],["writequeuefull",{"_index":521,"name":{"1119":{},"1512":{},"1676":{},"1825":{},"1865":{},"1940":{},"2055":{},"2093":{},"2153":{}},"parent":{}}],["writestream",{"_index":1129,"name":{"2148":{}},"parent":{"2149":{},"2150":{},"2151":{},"2152":{},"2153":{},"2154":{}}}],["writetextmessage",{"_index":1062,"name":{"1972":{},"2087":{},"2115":{}},"parent":{}}],["yxdomain",{"_index":14,"name":{"15":{}},"parent":{}}],["yxrrset",{"_index":15,"name":{"16":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/core/classes/httpclientoptions.html b/docs/.vuepress/public/@vertx/core/classes/httpclientoptions.html index 941826352..7d8c30e3c 100644 --- a/docs/.vuepress/public/@vertx/core/classes/httpclientoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/httpclientoptions.html @@ -148,6 +148,7 @@

    Methods

  • getTryUsePerMessageWebsocketCompression
  • getTryWebSocketDeflateFrameCompression
  • getTryWebsocketDeflateFrameCompression
  • +
  • getWebSocketClosingTimeout
  • getWebSocketCompressionAllowClientNoContext
  • getWebSocketCompressionLevel
  • getWebSocketCompressionRequestServerNoContext
  • @@ -239,6 +240,7 @@

    Methods

  • setUseAlpn
  • setUsePooledBuffers
  • setVerifyHost
  • +
  • setWebSocketClosingTimeout
  • setWebSocketCompressionAllowClientNoContext
  • setWebSocketCompressionLevel
  • setWebSocketCompressionRequestServerNoContext
  • @@ -1551,6 +1553,31 @@

    Returns boolean

  • +
    + +

    getWebSocketClosingTimeout

    +
      +
    • getWebSocketClosingTimeout(): number
    • +
    +
      +
    • + +
      +
      +

      Set the amount of time a client WebSocket will wait until it closes the TCP connection after receiving a close frame.

      +
      +

      When a WebSocket is closed, the server should close the TCP connection. This timeout will close + the TCP connection on the client when it expires. +

      Set 0L or a negative value to disable. +

      +

      Returns number

      +
    • +
    +

    getWebSocketCompressionAllowClientNoContext

    @@ -1561,7 +1588,7 @@

    getWebSocketCompressionAllowClientNoContext
    @@ -1584,7 +1611,7 @@

    getWebSocketCompressionLevel

  • @@ -1606,7 +1633,7 @@

    getWebSocketCompressionRequestServerNoContext<
  • @@ -1629,7 +1656,7 @@

    getWebsocketCompressionAllowClientNoContext

  • @@ -1652,7 +1679,7 @@

    getWebsocketCompressionLevel

  • @@ -1674,7 +1701,7 @@

    getWebsocketCompressionRequestServerNoContext

  • @@ -3995,6 +4022,37 @@

    Returns + +

    setWebSocketClosingTimeout

    + +
      +
    • + +
      +
      +

      Set the amount of time a client WebSocket will wait until it closes the TCP connection after receiving a close frame.

      +
      +

      When a WebSocket is closed, the server should close the TCP connection. This timeout will close + the TCP connection on the client when it expires. +

      Set 0L or a negative value to disable. +

      +

      Parameters

      +
        +
      • +
        webSocketClosingTimeout: number
        +
      • +
      +

      Returns HttpClientOptions

      +
    • +
    +
  • setWebSocketCompressionAllowClientNoContext

    @@ -4005,7 +4063,7 @@

    setWebSocketCompressionAllowClientNoContext
    @@ -4034,7 +4092,7 @@

    setWebSocketCompressionLevel

  • @@ -4062,7 +4120,7 @@

    setWebSocketCompressionRequestServerNoContext<
  • @@ -4091,7 +4149,7 @@

    setWebsocketCompressionAllowClientNoContext

  • @@ -4120,7 +4178,7 @@

    setWebsocketCompressionLevel

  • @@ -4148,7 +4206,7 @@

    setWebsocketCompressionRequestServerNoContext

  • @@ -4355,6 +4413,9 @@

    Returns getTryWebsocketDeflateFrameCompression

  • +
  • + getWebSocketClosingTimeout +
  • getWebSocketCompressionAllowClientNoContext
  • @@ -4628,6 +4689,9 @@

    Returns setVerifyHost

  • +
  • + setWebSocketClosingTimeout +
  • setWebSocketCompressionAllowClientNoContext
  • diff --git a/docs/.vuepress/public/@vertx/core/classes/httpserveroptions.html b/docs/.vuepress/public/@vertx/core/classes/httpserveroptions.html index 19f8a4265..b8f36b5d9 100644 --- a/docs/.vuepress/public/@vertx/core/classes/httpserveroptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/httpserveroptions.html @@ -242,7 +242,7 @@

    constructor

  • Returns HttpServerOptions

    @@ -250,7 +250,7 @@

    Returns

    Parameters

    @@ -276,7 +276,7 @@

    addCrlPath

  • @@ -304,7 +304,7 @@

    addCrlValue

  • @@ -332,7 +332,7 @@

    addEnabledCipherSuite

  • @@ -360,7 +360,7 @@

    addEnabledSecureTransportProtocol

  • @@ -388,7 +388,7 @@

    addWebSocketSubProtocol

  • @@ -416,7 +416,7 @@

    getAcceptBacklog

  • @@ -438,7 +438,7 @@

    getAlpnVersions

  • @@ -460,7 +460,7 @@

    getClientAuth

  • @@ -482,7 +482,7 @@

    getCompressionLevel

  • @@ -519,7 +519,7 @@

    getCrlPaths

  • @@ -541,7 +541,7 @@

    getCrlValues

  • @@ -563,7 +563,7 @@

    getDecoderInitialBufferSize

  • @@ -585,7 +585,7 @@

    getEnabledCipherSuites

  • @@ -607,7 +607,7 @@

    getEnabledSecureTransportProtocols

  • @@ -629,7 +629,7 @@

    getHost

  • @@ -651,7 +651,7 @@

    getHttp2ConnectionWindowSize

  • @@ -677,7 +677,7 @@

    getIdleTimeout

  • @@ -701,7 +701,7 @@

    getIdleTimeoutUnit

  • @@ -723,7 +723,7 @@

    getInitialSettings

  • @@ -745,7 +745,7 @@

    getJdkSslEngineOptions

  • Returns JdkSSLEngineOptions

    @@ -762,7 +762,7 @@

    getKeyStoreOptions

  • @@ -784,7 +784,7 @@

    getLogActivity

  • @@ -806,7 +806,7 @@

    getMaxChunkSize

  • @@ -828,7 +828,7 @@

    getMaxHeaderSize

  • @@ -850,7 +850,7 @@

    getMaxInitialLineLength

  • @@ -872,7 +872,7 @@

    getMaxWebSocketFrameSize

  • @@ -894,7 +894,7 @@

    getMaxWebSocketMessageSize

  • @@ -916,7 +916,7 @@

    getMaxWebsocketFrameSize

  • @@ -938,7 +938,7 @@

    getMaxWebsocketMessageSize

  • @@ -960,7 +960,7 @@

    getOpenSslEngineOptions

  • Returns OpenSSLEngineOptions

    @@ -977,7 +977,7 @@

    getPemKeyCertOptions

  • @@ -999,7 +999,7 @@

    getPemTrustOptions

  • @@ -1021,7 +1021,7 @@

    getPerFrameWebSocketCompressionSupported

  • @@ -1043,7 +1043,7 @@

    getPerFrameWebsocketCompressionSupported

  • @@ -1065,7 +1065,7 @@

    getPerMessageWebSocketCompressionSupported

    @@ -1087,7 +1087,7 @@

    getPerMessageWebsocketCompressionSupported

  • @@ -1109,7 +1109,7 @@

    getPfxKeyCertOptions

  • @@ -1131,7 +1131,7 @@

    getPfxTrustOptions

  • @@ -1153,7 +1153,7 @@

    getPort

  • @@ -1175,7 +1175,7 @@

    getReceiveBufferSize

  • @@ -1197,7 +1197,7 @@

    getSendBufferSize

  • @@ -1219,7 +1219,7 @@

    getSoLinger

  • @@ -1241,7 +1241,7 @@

    getSslHandshakeTimeout

  • @@ -1263,7 +1263,7 @@

    getSslHandshakeTimeoutUnit

  • @@ -1285,7 +1285,7 @@

    getTrafficClass

  • @@ -1307,7 +1307,7 @@

    getTrustStoreOptions

  • @@ -1329,7 +1329,7 @@

    getWebSocketAllowServerNoContext

  • @@ -1352,7 +1352,7 @@

    getWebSocketCompressionLevel

  • @@ -1374,7 +1374,7 @@

    getWebSocketPreferredClientNoContext

  • @@ -1397,7 +1397,7 @@

    getWebSocketSubProtocols

  • @@ -1419,7 +1419,7 @@

    getWebsocketAllowServerNoContext

  • @@ -1442,7 +1442,7 @@

    getWebsocketCompressionLevel

  • @@ -1464,7 +1464,7 @@

    getWebsocketPreferredClientNoContext

  • @@ -1487,7 +1487,7 @@

    getWebsocketSubProtocols

  • @@ -1509,7 +1509,7 @@

    isAcceptUnmaskedFrames

  • @@ -1533,7 +1533,7 @@

    isClientAuthRequired

  • @@ -1555,7 +1555,7 @@

    isCompressionSupported

  • @@ -1578,7 +1578,7 @@

    isDecompressionSupported

  • @@ -1600,7 +1600,7 @@

    isHandle100ContinueAutomatically

  • @@ -1622,7 +1622,7 @@

    isReuseAddress

  • @@ -1644,7 +1644,7 @@

    isReusePort

  • @@ -1668,7 +1668,7 @@

    isSni

  • @@ -1690,7 +1690,7 @@

    isSsl

  • @@ -1712,7 +1712,7 @@

    isTcpCork

  • @@ -1734,7 +1734,7 @@

    isTcpFastOpen

  • @@ -1756,7 +1756,7 @@

    isTcpKeepAlive

  • @@ -1778,7 +1778,7 @@

    isTcpNoDelay

  • @@ -1800,7 +1800,7 @@

    isTcpQuickAck

  • @@ -1822,7 +1822,7 @@

    isUseAlpn

  • @@ -1844,7 +1844,7 @@

    isUsePooledBuffers

  • @@ -1866,7 +1866,7 @@

    setAcceptBacklog

  • @@ -1894,7 +1894,7 @@

    setAcceptUnmaskedFrames

  • @@ -1924,7 +1924,7 @@

    setAlpnVersions

  • @@ -1952,7 +1952,7 @@

    setClientAuth

  • @@ -1980,7 +1980,7 @@

    setClientAuthRequired

  • @@ -2008,7 +2008,7 @@

    setCompressionLevel

  • @@ -2051,7 +2051,7 @@

    setCompressionSupported

  • @@ -2080,7 +2080,7 @@

    setDecoderInitialBufferSize

  • @@ -2108,7 +2108,7 @@

    setDecompressionSupported

  • @@ -2136,7 +2136,7 @@

    setEnabledSecureTransportProtocols

  • @@ -2164,7 +2164,7 @@

    setHandle100ContinueAutomatically

  • @@ -2192,7 +2192,7 @@

    setHost

  • @@ -2220,7 +2220,7 @@

    setHttp2ConnectionWindowSize

  • @@ -2252,7 +2252,7 @@

    setIdleTimeout

  • @@ -2282,7 +2282,7 @@

    setIdleTimeoutUnit

  • @@ -2310,7 +2310,7 @@

    setInitialSettings

  • @@ -2338,7 +2338,7 @@

    setJdkSslEngineOptions

  • Parameters

    @@ -2361,7 +2361,7 @@

    setKeyStoreOptions

  • @@ -2389,7 +2389,7 @@

    setLogActivity

  • @@ -2417,7 +2417,7 @@

    setMaxChunkSize

  • @@ -2445,7 +2445,7 @@

    setMaxHeaderSize

  • @@ -2473,7 +2473,7 @@

    setMaxInitialLineLength

  • @@ -2501,7 +2501,7 @@

    setMaxWebSocketFrameSize

  • @@ -2529,7 +2529,7 @@

    setMaxWebSocketMessageSize

  • @@ -2557,7 +2557,7 @@

    setMaxWebsocketFrameSize

  • @@ -2585,7 +2585,7 @@

    setMaxWebsocketMessageSize

  • @@ -2613,7 +2613,7 @@

    setOpenSslEngineOptions

  • Parameters

    @@ -2636,7 +2636,7 @@

    setPemKeyCertOptions

  • @@ -2664,7 +2664,7 @@

    setPemTrustOptions

  • @@ -2692,7 +2692,7 @@

    setPerFrameWebSocketCompressionSupported

  • @@ -2720,7 +2720,7 @@

    setPerFrameWebsocketCompressionSupported

  • @@ -2748,7 +2748,7 @@

    setPerMessageWebSocketCompressionSupported

    @@ -2776,7 +2776,7 @@

    setPerMessageWebsocketCompressionSupported

  • @@ -2804,7 +2804,7 @@

    setPfxKeyCertOptions

  • @@ -2832,7 +2832,7 @@

    setPfxTrustOptions

  • @@ -2860,7 +2860,7 @@

    setPort

  • @@ -2888,7 +2888,7 @@

    setReceiveBufferSize

  • @@ -2916,7 +2916,7 @@

    setReuseAddress

  • @@ -2944,7 +2944,7 @@

    setReusePort

  • @@ -2974,7 +2974,7 @@

    setSendBufferSize

  • @@ -3002,7 +3002,7 @@

    setSni

  • @@ -3030,7 +3030,7 @@

    setSoLinger

  • @@ -3058,7 +3058,7 @@

    setSsl

  • @@ -3086,7 +3086,7 @@

    setSslHandshakeTimeout

  • @@ -3114,7 +3114,7 @@

    setSslHandshakeTimeoutUnit

  • @@ -3142,7 +3142,7 @@

    setTcpCork

  • @@ -3170,7 +3170,7 @@

    setTcpFastOpen

  • @@ -3198,7 +3198,7 @@

    setTcpKeepAlive

  • @@ -3226,7 +3226,7 @@

    setTcpNoDelay

  • @@ -3254,7 +3254,7 @@

    setTcpQuickAck

  • @@ -3282,7 +3282,7 @@

    setTrafficClass

  • @@ -3310,7 +3310,7 @@

    setTrustStoreOptions

  • @@ -3338,7 +3338,7 @@

    setUseAlpn

  • @@ -3366,7 +3366,7 @@

    setUsePooledBuffers

  • @@ -3394,7 +3394,7 @@

    setWebSocketAllowServerNoContext

  • @@ -3423,7 +3423,7 @@

    setWebSocketCompressionLevel

  • @@ -3451,7 +3451,7 @@

    setWebSocketPreferredClientNoContext

  • @@ -3480,7 +3480,7 @@

    setWebSocketSubProtocols

  • @@ -3508,7 +3508,7 @@

    setWebsocketAllowServerNoContext

  • @@ -3537,7 +3537,7 @@

    setWebsocketCompressionLevel

  • @@ -3565,7 +3565,7 @@

    setWebsocketPreferredClientNoContext

  • @@ -3594,7 +3594,7 @@

    setWebsocketSubProtocols

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/httpserverrequest.html b/docs/.vuepress/public/@vertx/core/classes/httpserverrequest.html index 41016cf89..ac171a5d7 100644 --- a/docs/.vuepress/public/@vertx/core/classes/httpserverrequest.html +++ b/docs/.vuepress/public/@vertx/core/classes/httpserverrequest.html @@ -138,6 +138,8 @@

    Methods

  • sslSession
  • streamPriority
  • streamPriorityHandler
  • +
  • toNetSocket
  • +
  • toWebSocket
  • upgrade
  • uploadHandler
  • uri
  • @@ -224,7 +226,7 @@

    connection

  • Returns HttpConnection

    @@ -241,7 +243,7 @@

    cookieCount

  • Returns number

    @@ -258,7 +260,7 @@

    customFrameHandler

  • @@ -357,7 +359,7 @@

    formAttributes

  • @@ -384,7 +386,7 @@

    getCookie

  • @@ -412,7 +414,7 @@

    getFormAttribute

  • @@ -460,7 +462,7 @@

    Returns string
    @@ -573,7 +575,7 @@

    isEnded

  • @@ -595,7 +597,7 @@

    isExpectMultipart

  • Returns boolean

    @@ -948,7 +950,7 @@

    setExpectMultipart

  • @@ -977,7 +979,7 @@

    sslSession

  • Returns any

    @@ -994,7 +996,7 @@

    streamPriority

  • Returns StreamPriority

    @@ -1011,7 +1013,7 @@

    streamPriorityHandler

  • +
    + +

    toWebSocket

    + +
      +
    • + +
      +
      +

      Upgrade the connection of the current request to a WebSocket.

      +

      + This is an alternative way of handling WebSockets and can only be used if no WebSocket handler is set on the + HttpServer, and can only be used during the upgrade request during the WebSocket handshake. +

      +

      Both {@link HttpServerRequest#handler} and {@link HttpServerRequest#endHandler} will be set to get the full body of the + request that is necessary to perform the WebSocket handshake. +

      If you need to do an asynchronous upgrade, i.e not performed immediately in your request handler, + you need to {@link HttpServerRequest#pause} the request in order to not lose HTTP events necessary to upgrade the + request. +

      +

      Parameters

      + +

      Returns void

      +
    • +
    +

    upgrade

    @@ -1041,7 +1123,7 @@

    upgrade

  • @@ -1066,7 +1148,7 @@

    uploadHandler

  • @@ -1250,6 +1332,12 @@

    Returns streamPriorityHandler

  • +
  • + toNetSocket +
  • +
  • + toWebSocket +
  • upgrade
  • diff --git a/docs/.vuepress/public/@vertx/core/classes/httpserverresponse.html b/docs/.vuepress/public/@vertx/core/classes/httpserverresponse.html index e7a4aa6fa..ede06468f 100644 --- a/docs/.vuepress/public/@vertx/core/classes/httpserverresponse.html +++ b/docs/.vuepress/public/@vertx/core/classes/httpserverresponse.html @@ -160,7 +160,7 @@

    addCookie

  • @@ -188,7 +188,7 @@

    bodyEndHandler

  • @@ -219,7 +219,7 @@

    bytesWritten

  • Returns number

    @@ -236,7 +236,7 @@

    close

  • @@ -258,7 +258,7 @@

    closeHandler

  • @@ -292,7 +292,7 @@

    closed

  • Returns boolean

    @@ -309,7 +309,7 @@

    drainHandler

  • Parameters

    @@ -339,7 +339,7 @@

    end

  • @@ -358,7 +358,7 @@

    Returns void
    @@ -377,7 +377,7 @@

    Returns void
    @@ -399,7 +399,7 @@

    Returns void
    @@ -421,7 +421,7 @@

    Returns void
    @@ -446,7 +446,7 @@

    Returns void
    @@ -466,7 +466,7 @@

    Returns void
    @@ -489,7 +489,7 @@

    Returns void

    Implementation of WriteStream.end

      -
    • Defined in index.d.ts:4946
    • +
    • Defined in index.d.ts:4985
    @@ -514,7 +514,7 @@

    endHandler

  • @@ -543,7 +543,7 @@

    ended

  • Returns boolean

    @@ -560,7 +560,7 @@

    exceptionHandler

  • Parameters

    @@ -583,7 +583,7 @@

    getStatusCode

  • Returns number

    @@ -600,7 +600,7 @@

    getStatusMessage

  • Returns string

    @@ -617,7 +617,7 @@

    headWritten

  • Returns boolean

    @@ -634,7 +634,7 @@

    headers

  • Returns MultiMap

    @@ -651,7 +651,7 @@

    headersEndHandler

  • @@ -680,7 +680,7 @@

    isChunked

  • Returns boolean

    @@ -700,7 +700,7 @@

    push

  • @@ -728,7 +728,7 @@

    Returns
    @@ -756,7 +756,7 @@

    Returns
    @@ -781,7 +781,7 @@

    Returns
    @@ -829,7 +829,7 @@

    putHeader

  • @@ -851,7 +851,7 @@

    Returns
    @@ -873,7 +873,7 @@

    Returns
    @@ -895,7 +895,7 @@

    Returns
    @@ -929,7 +929,7 @@

    putTrailer

  • @@ -951,7 +951,7 @@

    Returns
    @@ -973,7 +973,7 @@

    Returns
    @@ -995,7 +995,7 @@

    Returns
    @@ -1027,7 +1027,7 @@

    removeCookie

  • @@ -1046,7 +1046,7 @@

    Returns
    @@ -1079,7 +1079,7 @@

    reset

  • @@ -1092,7 +1092,7 @@

    Returns void
    @@ -1125,7 +1125,7 @@

    sendFile

  • @@ -1144,7 +1144,7 @@

    Returns
    @@ -1167,7 +1167,7 @@

    Returns
    @@ -1196,7 +1196,7 @@

    Returns
    @@ -1219,7 +1219,7 @@

    Returns
    @@ -1245,7 +1245,7 @@

    Returns
    @@ -1283,7 +1283,7 @@

    setChunked

  • @@ -1321,7 +1321,7 @@

    setStatusCode

  • @@ -1350,7 +1350,7 @@

    setStatusMessage

  • @@ -1378,7 +1378,7 @@

    setStreamPriority

  • @@ -1409,7 +1409,7 @@

    setWriteQueueMaxSize

    Parameters

    @@ -1432,7 +1432,7 @@

    streamId

  • Returns number

    @@ -1449,7 +1449,7 @@

    trailers

  • Returns MultiMap

    @@ -1471,7 +1471,7 @@

    write

  • Parameters

    @@ -1485,7 +1485,7 @@

    Returns
    @@ -1507,7 +1507,7 @@

    Returns
    @@ -1529,7 +1529,7 @@

    Returns
    @@ -1554,7 +1554,7 @@

    Returns
    @@ -1573,7 +1573,7 @@

    Returns
    @@ -1604,7 +1604,7 @@

    writeContinue

  • @@ -1628,7 +1628,7 @@

    writeCustomFrame

  • @@ -1654,7 +1654,7 @@

    Returns
    @@ -1683,7 +1683,7 @@

    writeQueueFull

    diff --git a/docs/.vuepress/public/@vertx/core/classes/jdksslengineoptions.html b/docs/.vuepress/public/@vertx/core/classes/jdksslengineoptions.html index c8bb6b76e..783688c76 100644 --- a/docs/.vuepress/public/@vertx/core/classes/jdksslengineoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/jdksslengineoptions.html @@ -105,7 +105,7 @@

    constructor

  • Returns JdkSSLEngineOptions

    @@ -113,7 +113,7 @@

    Returns

    Parameters

    diff --git a/docs/.vuepress/public/@vertx/core/classes/jksoptions.html b/docs/.vuepress/public/@vertx/core/classes/jksoptions.html index 15e230a9c..59d4166e8 100644 --- a/docs/.vuepress/public/@vertx/core/classes/jksoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/jksoptions.html @@ -132,7 +132,7 @@

    constructor

  • Returns JksOptions

    @@ -140,7 +140,7 @@

    Returns

    Parameters

    @@ -166,7 +166,7 @@

    getPassword

  • @@ -188,7 +188,7 @@

    getPath

  • @@ -210,7 +210,7 @@

    getValue

  • @@ -232,7 +232,7 @@

    setPassword

  • @@ -260,7 +260,7 @@

    setPath

  • @@ -288,7 +288,7 @@

    setValue

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/jsonevent.html b/docs/.vuepress/public/@vertx/core/classes/jsonevent.html index fcc67037a..f7e9c7908 100644 --- a/docs/.vuepress/public/@vertx/core/classes/jsonevent.html +++ b/docs/.vuepress/public/@vertx/core/classes/jsonevent.html @@ -123,7 +123,7 @@

    arrayValue

  • Returns any[]

    @@ -140,7 +140,7 @@

    binaryValue

  • @@ -165,7 +165,7 @@

    booleanValue

  • Returns boolean

    @@ -182,7 +182,7 @@

    doubleValue

  • Returns number

    @@ -199,7 +199,7 @@

    fieldName

  • Returns string

    @@ -216,7 +216,7 @@

    floatValue

  • Returns number

    @@ -233,7 +233,7 @@

    instantValue

  • @@ -259,7 +259,7 @@

    integerValue

  • Returns number

    @@ -276,7 +276,7 @@

    isArray

  • Returns boolean

    @@ -293,7 +293,7 @@

    isBoolean

  • Returns boolean

    @@ -310,7 +310,7 @@

    isNull

  • Returns boolean

    @@ -327,7 +327,7 @@

    isNumber

  • Returns boolean

    @@ -344,7 +344,7 @@

    isObject

  • Returns boolean

    @@ -361,7 +361,7 @@

    isString

  • Returns boolean

    @@ -378,7 +378,7 @@

    longValue

  • Returns number

    @@ -396,7 +396,7 @@

    mapTo

  • @@ -421,7 +421,7 @@

    Returns T<
  • @@ -455,7 +455,7 @@

    objectValue

  • Returns {}

    @@ -477,7 +477,7 @@

    stringValue

  • Returns string

    @@ -494,7 +494,7 @@

    type

  • Returns JsonEventType

    @@ -511,7 +511,7 @@

    value

  • Returns any

    diff --git a/docs/.vuepress/public/@vertx/core/classes/jsonparser.html b/docs/.vuepress/public/@vertx/core/classes/jsonparser.html index 7d140e38c..cf8955845 100644 --- a/docs/.vuepress/public/@vertx/core/classes/jsonparser.html +++ b/docs/.vuepress/public/@vertx/core/classes/jsonparser.html @@ -137,7 +137,7 @@

    arrayEventMode

  • @@ -159,7 +159,7 @@

    arrayValueMode

  • @@ -183,7 +183,7 @@

    end

  • @@ -205,7 +205,7 @@

    endHandler

  • Parameters

    @@ -228,7 +228,7 @@

    exceptionHandler

  • Parameters

    @@ -252,7 +252,7 @@

    fetch

    Parameters

    @@ -275,7 +275,7 @@

    handle

  • @@ -303,7 +303,7 @@

    handler

  • Parameters

    @@ -326,7 +326,7 @@

    objectEventMode

  • @@ -348,7 +348,7 @@

    objectValueMode

  • @@ -373,7 +373,7 @@

    pause

    Returns JsonParser

    @@ -391,7 +391,7 @@

    pipe

    @@ -417,7 +417,7 @@

    pipeTo

    @@ -436,7 +436,7 @@

    Returns void
    @@ -473,7 +473,7 @@

    resume

    Returns JsonParser

    @@ -490,7 +490,7 @@

    write

  • @@ -519,7 +519,7 @@

    Static newParser

  • @@ -532,7 +532,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/core/classes/jsonpointer.html b/docs/.vuepress/public/@vertx/core/classes/jsonpointer.html index 94ff58627..6b677b3ab 100644 --- a/docs/.vuepress/public/@vertx/core/classes/jsonpointer.html +++ b/docs/.vuepress/public/@vertx/core/classes/jsonpointer.html @@ -125,7 +125,7 @@

    append

  • @@ -145,7 +145,7 @@

    Returns
    @@ -164,7 +164,7 @@

    Returns
    @@ -184,7 +184,7 @@

    Returns
    @@ -213,7 +213,7 @@

    copy

  • @@ -235,7 +235,7 @@

    getURIWithoutFragment

  • @@ -257,7 +257,7 @@

    isLocalPointer

  • @@ -279,7 +279,7 @@

    isParent

  • @@ -309,7 +309,7 @@

    isRootPointer

  • @@ -331,7 +331,7 @@

    parent

  • @@ -353,7 +353,7 @@

    query

  • @@ -386,7 +386,7 @@

    queryJson

  • @@ -415,7 +415,7 @@

    queryJsonOrDefault

  • @@ -447,7 +447,7 @@

    queryOrDefault

  • @@ -483,7 +483,7 @@

    toString

  • @@ -505,7 +505,7 @@

    toURI

  • @@ -527,7 +527,7 @@

    tracedQuery

  • @@ -559,7 +559,7 @@

    write

  • @@ -598,7 +598,7 @@

    writeJson

  • @@ -620,7 +620,7 @@

    Returns any
    @@ -654,7 +654,7 @@

    Static create

  • @@ -676,7 +676,7 @@

    Static from

  • @@ -704,7 +704,7 @@

    Static fromURI

  • @@ -139,7 +139,7 @@

    appendArrayElement

  • @@ -170,7 +170,7 @@

    getArrayElement

  • @@ -201,7 +201,7 @@

    getObjectParameter

  • @@ -235,7 +235,7 @@

    isArray

  • Parameters

    @@ -258,7 +258,7 @@

    isNull

  • Parameters

    @@ -281,7 +281,7 @@

    isObject

  • Parameters

    @@ -304,7 +304,7 @@

    objectContainsKey

  • Parameters

    @@ -330,7 +330,7 @@

    writeArrayElement

  • @@ -364,7 +364,7 @@

    writeObjectParameter

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/localmap.html b/docs/.vuepress/public/@vertx/core/classes/localmap.html index 9d3fb521b..500f1ac2a 100644 --- a/docs/.vuepress/public/@vertx/core/classes/localmap.html +++ b/docs/.vuepress/public/@vertx/core/classes/localmap.html @@ -136,7 +136,7 @@

    clear

  • @@ -158,7 +158,7 @@

    close

  • @@ -180,7 +180,7 @@

    containsKey

  • @@ -209,7 +209,7 @@

    containsValue

  • @@ -238,7 +238,7 @@

    get

  • @@ -266,7 +266,7 @@

    getOrDefault

  • @@ -298,7 +298,7 @@

    isEmpty

  • Returns boolean

    @@ -315,7 +315,7 @@

    put

  • @@ -346,7 +346,7 @@

    putIfAbsent

  • @@ -377,7 +377,7 @@

    remove

  • @@ -405,7 +405,7 @@

    removeIfPresent

  • @@ -438,7 +438,7 @@

    replace

  • @@ -469,7 +469,7 @@

    replaceIfPresent

  • @@ -505,7 +505,7 @@

    size

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/lock.html b/docs/.vuepress/public/@vertx/core/classes/lock.html index 8ac5ff9e6..0801c5409 100644 --- a/docs/.vuepress/public/@vertx/core/classes/lock.html +++ b/docs/.vuepress/public/@vertx/core/classes/lock.html @@ -107,7 +107,7 @@

    release

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/message.html b/docs/.vuepress/public/@vertx/core/classes/message.html index 9c1eb44e4..4c10ceee5 100644 --- a/docs/.vuepress/public/@vertx/core/classes/message.html +++ b/docs/.vuepress/public/@vertx/core/classes/message.html @@ -125,7 +125,7 @@

    address

  • @@ -147,7 +147,7 @@

    body

  • @@ -169,7 +169,7 @@

    fail

  • @@ -203,7 +203,7 @@

    headers

  • @@ -225,7 +225,7 @@

    isSend

  • @@ -250,7 +250,7 @@

    reply

  • @@ -273,7 +273,7 @@

    Returns void
    @@ -302,7 +302,7 @@

    Returns void
    @@ -324,7 +324,7 @@

    Returns void
    @@ -365,7 +365,7 @@

    replyAddress

  • @@ -388,7 +388,7 @@

    replyAndRequest

  • @@ -421,7 +421,7 @@

    Returns void
    diff --git a/docs/.vuepress/public/@vertx/core/classes/messageconsumer.html b/docs/.vuepress/public/@vertx/core/classes/messageconsumer.html index 47fb4354a..92de45246 100644 --- a/docs/.vuepress/public/@vertx/core/classes/messageconsumer.html +++ b/docs/.vuepress/public/@vertx/core/classes/messageconsumer.html @@ -139,7 +139,7 @@

    address

  • Returns string

    @@ -156,7 +156,7 @@

    bodyStream

  • Returns ReadStream<T>

    @@ -173,7 +173,7 @@

    completionHandler

  • @@ -201,7 +201,7 @@

    endHandler

  • Parameters

    @@ -224,7 +224,7 @@

    exceptionHandler

  • Parameters

    @@ -248,7 +248,7 @@

    fetch

    Parameters

    @@ -271,7 +271,7 @@

    getMaxBufferedMessages

  • Returns number

    @@ -288,7 +288,7 @@

    handler

  • Parameters

    @@ -311,7 +311,7 @@

    isRegistered

  • Returns boolean

    @@ -329,7 +329,7 @@

    pause

    Returns MessageConsumer<T>

    @@ -347,7 +347,7 @@

    pipe

    @@ -373,7 +373,7 @@

    pipeTo

    @@ -392,7 +392,7 @@

    Returns void
    @@ -429,7 +429,7 @@

    resume

    Returns MessageConsumer<T>

    @@ -446,7 +446,7 @@

    setMaxBufferedMessages

  • @@ -479,7 +479,7 @@

    unregister

  • @@ -492,7 +492,7 @@

    Returns void
    diff --git a/docs/.vuepress/public/@vertx/core/classes/messageproducer.html b/docs/.vuepress/public/@vertx/core/classes/messageproducer.html index d18a4c583..f1b6095a8 100644 --- a/docs/.vuepress/public/@vertx/core/classes/messageproducer.html +++ b/docs/.vuepress/public/@vertx/core/classes/messageproducer.html @@ -130,7 +130,7 @@

    Static DEFAULT_WRITE_QUEUE_MAX_SIZE: number

  • @@ -147,7 +147,7 @@

    address

  • Returns string

    @@ -165,7 +165,7 @@

    close

  • @@ -178,7 +178,7 @@

    Returns void
    @@ -206,7 +206,7 @@

    deliveryOptions

  • @@ -234,7 +234,7 @@

    drainHandler

  • Parameters

    @@ -261,7 +261,7 @@

    end

    @@ -280,7 +280,7 @@

    Returns void
    @@ -303,7 +303,7 @@

    Returns void

    Implementation of WriteStream.end

      -
    • Defined in index.d.ts:5861
    • +
    • Defined in index.d.ts:5900
    @@ -316,7 +316,7 @@

    Returns void
    @@ -344,7 +344,7 @@

    exceptionHandler

  • Parameters

    @@ -368,7 +368,7 @@

    send

  • @@ -388,7 +388,7 @@

    Returns
    @@ -427,7 +427,7 @@

    setWriteQueueMaxSize

    Parameters

    @@ -452,7 +452,7 @@

    write

    Parameters

    @@ -466,7 +466,7 @@

    Returns

    Parameters

    @@ -493,7 +493,7 @@

    writeQueueFull

    diff --git a/docs/.vuepress/public/@vertx/core/classes/metricsoptions.html b/docs/.vuepress/public/@vertx/core/classes/metricsoptions.html index 69528a55d..666eca4f4 100644 --- a/docs/.vuepress/public/@vertx/core/classes/metricsoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/metricsoptions.html @@ -113,7 +113,7 @@

    constructor

  • Returns MetricsOptions

    @@ -121,7 +121,7 @@

    Returns

    Parameters

    @@ -147,7 +147,7 @@

    isEnabled

  • @@ -169,7 +169,7 @@

    setEnabled

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/multimap.html b/docs/.vuepress/public/@vertx/core/classes/multimap.html index ea841fbb6..fd5669d0f 100644 --- a/docs/.vuepress/public/@vertx/core/classes/multimap.html +++ b/docs/.vuepress/public/@vertx/core/classes/multimap.html @@ -123,7 +123,7 @@

    add

  • @@ -145,7 +145,7 @@

    Returns
    @@ -167,7 +167,7 @@

    Returns
    @@ -189,7 +189,7 @@

    Returns
    @@ -221,7 +221,7 @@

    addAll

  • @@ -240,7 +240,7 @@

    Returns
    @@ -273,7 +273,7 @@

    clear

  • @@ -298,7 +298,7 @@

    contains

  • @@ -317,7 +317,7 @@

    Returns boolean
    @@ -343,7 +343,7 @@

    Returns boolean
    @@ -362,7 +362,7 @@

    Returns boolean
    @@ -396,7 +396,7 @@

    entries

  • @@ -419,7 +419,7 @@

    get

  • @@ -439,7 +439,7 @@

    Returns string

    Parameters

    @@ -463,7 +463,7 @@

    getAll

  • @@ -482,7 +482,7 @@

    Returns string
    @@ -510,7 +510,7 @@

    isEmpty

  • @@ -532,7 +532,7 @@

    names

  • @@ -555,7 +555,7 @@

    remove

  • @@ -574,7 +574,7 @@

    Returns
    @@ -605,7 +605,7 @@

    set

  • @@ -629,7 +629,7 @@

    Returns
    @@ -651,7 +651,7 @@

    Returns
    @@ -673,7 +673,7 @@

    Returns
    @@ -705,7 +705,7 @@

    setAll

  • @@ -724,7 +724,7 @@

    Returns
    @@ -757,7 +757,7 @@

    size

  • @@ -779,7 +779,7 @@

    Static caseInsensitive
  • diff --git a/docs/.vuepress/public/@vertx/core/classes/mxrecord.html b/docs/.vuepress/public/@vertx/core/classes/mxrecord.html index c89f6344e..d3bcc12ce 100644 --- a/docs/.vuepress/public/@vertx/core/classes/mxrecord.html +++ b/docs/.vuepress/public/@vertx/core/classes/mxrecord.html @@ -105,7 +105,7 @@

    name

  • @@ -127,7 +127,7 @@

    priority

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/netclient.html b/docs/.vuepress/public/@vertx/core/classes/netclient.html index ab33ebd2e..baea2e4de 100644 --- a/docs/.vuepress/public/@vertx/core/classes/netclient.html +++ b/docs/.vuepress/public/@vertx/core/classes/netclient.html @@ -117,7 +117,7 @@

    close

  • @@ -145,7 +145,7 @@

    connect

  • @@ -173,7 +173,7 @@

    Returns
    @@ -204,7 +204,7 @@

    Returns
    @@ -228,7 +228,7 @@

    Returns
    @@ -265,7 +265,7 @@

    isMetricsEnabled

    diff --git a/docs/.vuepress/public/@vertx/core/classes/netclientoptions.html b/docs/.vuepress/public/@vertx/core/classes/netclientoptions.html index 3d8fc6296..c595a5e14 100644 --- a/docs/.vuepress/public/@vertx/core/classes/netclientoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/netclientoptions.html @@ -189,7 +189,7 @@

    constructor

  • Returns NetClientOptions

    @@ -197,7 +197,7 @@

    Returns

    Parameters

    @@ -223,7 +223,7 @@

    addCrlPath

  • @@ -251,7 +251,7 @@

    addCrlValue

  • @@ -279,7 +279,7 @@

    addEnabledCipherSuite

  • @@ -307,7 +307,7 @@

    addEnabledSecureTransportProtocol

  • @@ -335,7 +335,7 @@

    getConnectTimeout

  • @@ -357,7 +357,7 @@

    getCrlPaths

  • @@ -379,7 +379,7 @@

    getCrlValues

  • @@ -401,7 +401,7 @@

    getEnabledCipherSuites

  • @@ -423,7 +423,7 @@

    getEnabledSecureTransportProtocols

  • @@ -445,7 +445,7 @@

    getHostnameVerificationAlgorithm

  • @@ -468,7 +468,7 @@

    getIdleTimeout

  • @@ -492,7 +492,7 @@

    getIdleTimeoutUnit

  • @@ -514,7 +514,7 @@

    getJdkSslEngineOptions

  • Returns JdkSSLEngineOptions

    @@ -531,7 +531,7 @@

    getKeyStoreOptions

  • @@ -553,7 +553,7 @@

    getLocalAddress

  • @@ -576,7 +576,7 @@

    getLogActivity

  • @@ -598,7 +598,7 @@

    getMetricsName

  • @@ -621,7 +621,7 @@

    getOpenSslEngineOptions

  • Returns OpenSSLEngineOptions

    @@ -638,7 +638,7 @@

    getPemKeyCertOptions

  • @@ -660,7 +660,7 @@

    getPemTrustOptions

  • @@ -682,7 +682,7 @@

    getPfxKeyCertOptions

  • @@ -704,7 +704,7 @@

    getPfxTrustOptions

  • @@ -726,7 +726,7 @@

    getProxyOptions

  • @@ -748,7 +748,7 @@

    getReceiveBufferSize

  • @@ -770,7 +770,7 @@

    getReconnectAttempts

  • @@ -792,7 +792,7 @@

    getReconnectInterval

  • @@ -814,7 +814,7 @@

    getSendBufferSize

  • @@ -836,7 +836,7 @@

    getSoLinger

  • @@ -858,7 +858,7 @@

    getSslHandshakeTimeout

  • @@ -880,7 +880,7 @@

    getSslHandshakeTimeoutUnit

  • @@ -902,7 +902,7 @@

    getTrafficClass

  • @@ -924,7 +924,7 @@

    getTrustStoreOptions

  • @@ -946,7 +946,7 @@

    isReuseAddress

  • @@ -968,7 +968,7 @@

    isReusePort

  • @@ -992,7 +992,7 @@

    isSsl

  • @@ -1014,7 +1014,7 @@

    isTcpCork

  • @@ -1036,7 +1036,7 @@

    isTcpFastOpen

  • @@ -1058,7 +1058,7 @@

    isTcpKeepAlive

  • @@ -1080,7 +1080,7 @@

    isTcpNoDelay

  • @@ -1102,7 +1102,7 @@

    isTcpQuickAck

  • @@ -1124,7 +1124,7 @@

    isTrustAll

  • @@ -1146,7 +1146,7 @@

    isUseAlpn

  • @@ -1168,7 +1168,7 @@

    isUsePooledBuffers

  • @@ -1190,7 +1190,7 @@

    setConnectTimeout

  • @@ -1218,7 +1218,7 @@

    setEnabledSecureTransportProtocols

  • @@ -1246,7 +1246,7 @@

    setHostnameVerificationAlgorithm

  • @@ -1275,7 +1275,7 @@

    setIdleTimeout

  • @@ -1305,7 +1305,7 @@

    setIdleTimeoutUnit

  • @@ -1333,7 +1333,7 @@

    setJdkSslEngineOptions

  • Parameters

    @@ -1356,7 +1356,7 @@

    setKeyStoreOptions

  • @@ -1384,7 +1384,7 @@

    setLocalAddress

  • @@ -1413,7 +1413,7 @@

    setLogActivity

  • @@ -1441,7 +1441,7 @@

    setMetricsName

  • @@ -1470,7 +1470,7 @@

    setOpenSslEngineOptions

  • Parameters

    @@ -1493,7 +1493,7 @@

    setPemKeyCertOptions

  • @@ -1521,7 +1521,7 @@

    setPemTrustOptions

  • @@ -1549,7 +1549,7 @@

    setPfxKeyCertOptions

  • @@ -1577,7 +1577,7 @@

    setPfxTrustOptions

  • @@ -1605,7 +1605,7 @@

    setProxyOptions

  • @@ -1633,7 +1633,7 @@

    setReceiveBufferSize

  • @@ -1661,7 +1661,7 @@

    setReconnectAttempts

  • @@ -1689,7 +1689,7 @@

    setReconnectInterval

  • @@ -1717,7 +1717,7 @@

    setReuseAddress

  • @@ -1745,7 +1745,7 @@

    setReusePort

  • @@ -1775,7 +1775,7 @@

    setSendBufferSize

  • @@ -1803,7 +1803,7 @@

    setSoLinger

  • @@ -1831,7 +1831,7 @@

    setSsl

  • @@ -1859,7 +1859,7 @@

    setSslHandshakeTimeout

  • @@ -1887,7 +1887,7 @@

    setSslHandshakeTimeoutUnit

  • @@ -1915,7 +1915,7 @@

    setTcpCork

  • @@ -1943,7 +1943,7 @@

    setTcpFastOpen

  • @@ -1971,7 +1971,7 @@

    setTcpKeepAlive

  • @@ -1999,7 +1999,7 @@

    setTcpNoDelay

  • @@ -2027,7 +2027,7 @@

    setTcpQuickAck

  • @@ -2055,7 +2055,7 @@

    setTrafficClass

  • @@ -2083,7 +2083,7 @@

    setTrustAll

  • @@ -2111,7 +2111,7 @@

    setTrustStoreOptions

  • @@ -2139,7 +2139,7 @@

    setUseAlpn

  • @@ -2167,7 +2167,7 @@

    setUsePooledBuffers

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/netserver.html b/docs/.vuepress/public/@vertx/core/classes/netserver.html index 6e189c6c5..26448c774 100644 --- a/docs/.vuepress/public/@vertx/core/classes/netserver.html +++ b/docs/.vuepress/public/@vertx/core/classes/netserver.html @@ -115,7 +115,7 @@

    actualPort

  • @@ -139,7 +139,7 @@

    close

  • @@ -153,7 +153,7 @@

    Returns void
    @@ -181,7 +181,7 @@

    connectHandler

  • @@ -211,7 +211,7 @@

    connectStream

  • @@ -236,7 +236,7 @@

    isMetricsEnabled

    @@ -265,7 +265,7 @@

    listen

  • @@ -281,7 +281,7 @@

    Returns
    @@ -300,7 +300,7 @@

    Returns
    @@ -329,7 +329,7 @@

    Returns
    @@ -354,7 +354,7 @@

    Returns
    @@ -378,7 +378,7 @@

    Returns
    @@ -400,7 +400,7 @@

    Returns
    @@ -422,7 +422,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/core/classes/netserveroptions.html b/docs/.vuepress/public/@vertx/core/classes/netserveroptions.html index 406348924..73c9daabc 100644 --- a/docs/.vuepress/public/@vertx/core/classes/netserveroptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/netserveroptions.html @@ -185,7 +185,7 @@

    constructor

  • Returns NetServerOptions

    @@ -193,7 +193,7 @@

    Returns

    Parameters

    @@ -219,7 +219,7 @@

    addCrlPath

  • @@ -247,7 +247,7 @@

    addCrlValue

  • @@ -275,7 +275,7 @@

    addEnabledCipherSuite

  • @@ -303,7 +303,7 @@

    addEnabledSecureTransportProtocol

  • @@ -331,7 +331,7 @@

    getAcceptBacklog

  • @@ -353,7 +353,7 @@

    getClientAuth

  • @@ -375,7 +375,7 @@

    getCrlPaths

  • @@ -397,7 +397,7 @@

    getCrlValues

  • @@ -419,7 +419,7 @@

    getEnabledCipherSuites

  • @@ -441,7 +441,7 @@

    getEnabledSecureTransportProtocols

  • @@ -463,7 +463,7 @@

    getHost

  • @@ -485,7 +485,7 @@

    getIdleTimeout

  • @@ -509,7 +509,7 @@

    getIdleTimeoutUnit

  • @@ -531,7 +531,7 @@

    getJdkSslEngineOptions

  • Returns JdkSSLEngineOptions

    @@ -548,7 +548,7 @@

    getKeyStoreOptions

  • @@ -570,7 +570,7 @@

    getLogActivity

  • @@ -592,7 +592,7 @@

    getOpenSslEngineOptions

  • Returns OpenSSLEngineOptions

    @@ -609,7 +609,7 @@

    getPemKeyCertOptions

  • @@ -631,7 +631,7 @@

    getPemTrustOptions

  • @@ -653,7 +653,7 @@

    getPfxKeyCertOptions

  • @@ -675,7 +675,7 @@

    getPfxTrustOptions

  • @@ -697,7 +697,7 @@

    getPort

  • @@ -719,7 +719,7 @@

    getReceiveBufferSize

  • @@ -741,7 +741,7 @@

    getSendBufferSize

  • @@ -763,7 +763,7 @@

    getSoLinger

  • @@ -785,7 +785,7 @@

    getSslHandshakeTimeout

  • @@ -807,7 +807,7 @@

    getSslHandshakeTimeoutUnit

  • @@ -829,7 +829,7 @@

    getTrafficClass

  • @@ -851,7 +851,7 @@

    getTrustStoreOptions

  • @@ -873,7 +873,7 @@

    isClientAuthRequired

  • @@ -895,7 +895,7 @@

    isReuseAddress

  • @@ -917,7 +917,7 @@

    isReusePort

  • @@ -941,7 +941,7 @@

    isSni

  • @@ -963,7 +963,7 @@

    isSsl

  • @@ -985,7 +985,7 @@

    isTcpCork

  • @@ -1007,7 +1007,7 @@

    isTcpFastOpen

  • @@ -1029,7 +1029,7 @@

    isTcpKeepAlive

  • @@ -1051,7 +1051,7 @@

    isTcpNoDelay

  • @@ -1073,7 +1073,7 @@

    isTcpQuickAck

  • @@ -1095,7 +1095,7 @@

    isUseAlpn

  • @@ -1117,7 +1117,7 @@

    isUsePooledBuffers

  • @@ -1139,7 +1139,7 @@

    setAcceptBacklog

  • @@ -1167,7 +1167,7 @@

    setClientAuth

  • @@ -1195,7 +1195,7 @@

    setClientAuthRequired

  • @@ -1223,7 +1223,7 @@

    setEnabledSecureTransportProtocols

  • @@ -1251,7 +1251,7 @@

    setHost

  • @@ -1279,7 +1279,7 @@

    setIdleTimeout

  • @@ -1309,7 +1309,7 @@

    setIdleTimeoutUnit

  • @@ -1337,7 +1337,7 @@

    setJdkSslEngineOptions

  • Parameters

    @@ -1360,7 +1360,7 @@

    setKeyStoreOptions

  • @@ -1388,7 +1388,7 @@

    setLogActivity

  • @@ -1416,7 +1416,7 @@

    setOpenSslEngineOptions

  • Parameters

    @@ -1439,7 +1439,7 @@

    setPemKeyCertOptions

  • @@ -1467,7 +1467,7 @@

    setPemTrustOptions

  • @@ -1495,7 +1495,7 @@

    setPfxKeyCertOptions

  • @@ -1523,7 +1523,7 @@

    setPfxTrustOptions

  • @@ -1551,7 +1551,7 @@

    setPort

  • @@ -1579,7 +1579,7 @@

    setReceiveBufferSize

  • @@ -1607,7 +1607,7 @@

    setReuseAddress

  • @@ -1635,7 +1635,7 @@

    setReusePort

  • @@ -1665,7 +1665,7 @@

    setSendBufferSize

  • @@ -1693,7 +1693,7 @@

    setSni

  • @@ -1721,7 +1721,7 @@

    setSoLinger

  • @@ -1749,7 +1749,7 @@

    setSsl

  • @@ -1777,7 +1777,7 @@

    setSslHandshakeTimeout

  • @@ -1805,7 +1805,7 @@

    setSslHandshakeTimeoutUnit

  • @@ -1833,7 +1833,7 @@

    setTcpCork

  • @@ -1861,7 +1861,7 @@

    setTcpFastOpen

  • @@ -1889,7 +1889,7 @@

    setTcpKeepAlive

  • @@ -1917,7 +1917,7 @@

    setTcpNoDelay

  • @@ -1945,7 +1945,7 @@

    setTcpQuickAck

  • @@ -1973,7 +1973,7 @@

    setTrafficClass

  • @@ -2001,7 +2001,7 @@

    setTrustStoreOptions

  • @@ -2029,7 +2029,7 @@

    setUseAlpn

  • @@ -2057,7 +2057,7 @@

    setUsePooledBuffers

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/netsocket.html b/docs/.vuepress/public/@vertx/core/classes/netsocket.html index 623979327..9f621f953 100644 --- a/docs/.vuepress/public/@vertx/core/classes/netsocket.html +++ b/docs/.vuepress/public/@vertx/core/classes/netsocket.html @@ -142,7 +142,7 @@

    close

  • @@ -155,7 +155,7 @@

    Returns void
    @@ -183,7 +183,7 @@

    closeHandler

  • @@ -211,7 +211,7 @@

    drainHandler

  • Parameters

    @@ -237,7 +237,7 @@

    end

  • @@ -256,7 +256,7 @@

    Returns void
    @@ -279,7 +279,7 @@

    Returns void

    Implementation of WriteStream.end

      -
    • Defined in index.d.ts:6352
    • +
    • Defined in index.d.ts:6391
    @@ -292,7 +292,7 @@

    Returns void
    @@ -320,7 +320,7 @@

    endHandler

  • @@ -350,7 +350,7 @@

    exceptionHandler

  • Parameters

    @@ -374,7 +374,7 @@

    fetch

    Parameters

    @@ -397,7 +397,7 @@

    handler

  • Parameters

    @@ -420,7 +420,7 @@

    indicatedServerName

  • @@ -442,7 +442,7 @@

    isSsl

  • Returns boolean

    @@ -459,7 +459,7 @@

    localAddress

  • Returns SocketAddress

    @@ -477,7 +477,7 @@

    pause

    Returns NetSocket

    @@ -495,7 +495,7 @@

    pipe

    @@ -521,7 +521,7 @@

    pipeTo

    @@ -540,7 +540,7 @@

    Returns void
    @@ -576,7 +576,7 @@

    remoteAddress

  • Returns SocketAddress

    @@ -594,7 +594,7 @@

    resume

    Returns NetSocket

    @@ -616,7 +616,7 @@

    sendFile

  • @@ -636,7 +636,7 @@

    Returns
    @@ -659,7 +659,7 @@

    Returns
    @@ -685,7 +685,7 @@

    Returns
    @@ -708,7 +708,7 @@

    Returns
    @@ -734,7 +734,7 @@

    Returns
    @@ -773,7 +773,7 @@

    setWriteQueueMaxSize

    Parameters

    @@ -796,7 +796,7 @@

    sslSession

  • Returns any

    @@ -814,7 +814,7 @@

    upgradeToSsl

  • @@ -833,7 +833,7 @@

    Returns
    @@ -869,7 +869,7 @@

    write

  • Parameters

    @@ -883,7 +883,7 @@

    Returns
    @@ -905,7 +905,7 @@

    Returns
    @@ -924,7 +924,7 @@

    Returns
    @@ -949,7 +949,7 @@

    Returns
    @@ -971,7 +971,7 @@

    Returns
    @@ -1003,7 +1003,7 @@

    writeHandlerID

  • @@ -1031,7 +1031,7 @@

    writeQueueFull

    diff --git a/docs/.vuepress/public/@vertx/core/classes/networkoptions.html b/docs/.vuepress/public/@vertx/core/classes/networkoptions.html index 5afe91507..db5a23f21 100644 --- a/docs/.vuepress/public/@vertx/core/classes/networkoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/networkoptions.html @@ -115,7 +115,7 @@

    constructor

  • Returns NetworkOptions

    @@ -123,7 +123,7 @@

    Returns

    Parameters

    @@ -149,7 +149,7 @@

    getLogActivity

  • @@ -171,7 +171,7 @@

    getReceiveBufferSize

  • @@ -193,7 +193,7 @@

    getSendBufferSize

  • @@ -215,7 +215,7 @@

    getTrafficClass

  • @@ -237,7 +237,7 @@

    isReuseAddress

  • @@ -259,7 +259,7 @@

    isReusePort

  • @@ -283,7 +283,7 @@

    setLogActivity

  • @@ -311,7 +311,7 @@

    setReceiveBufferSize

  • @@ -339,7 +339,7 @@

    setReuseAddress

  • @@ -367,7 +367,7 @@

    setReusePort

  • @@ -397,7 +397,7 @@

    setSendBufferSize

  • @@ -425,7 +425,7 @@

    setTrafficClass

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/openoptions.html b/docs/.vuepress/public/@vertx/core/classes/openoptions.html index cd96a41c3..b28ec5acf 100644 --- a/docs/.vuepress/public/@vertx/core/classes/openoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/openoptions.html @@ -132,7 +132,7 @@

    constructor

  • Returns OpenOptions

    @@ -140,7 +140,7 @@

    Returns

    Parameters

    @@ -166,7 +166,7 @@

    getPerms

  • @@ -188,7 +188,7 @@

    isAppend

  • @@ -210,7 +210,7 @@

    isCreate

  • @@ -232,7 +232,7 @@

    isCreateNew

  • @@ -254,7 +254,7 @@

    isDeleteOnClose

  • @@ -276,7 +276,7 @@

    isDsync

  • @@ -298,7 +298,7 @@

    isRead

  • @@ -320,7 +320,7 @@

    isSparse

  • @@ -342,7 +342,7 @@

    isSync

  • @@ -364,7 +364,7 @@

    isTruncateExisting

  • @@ -386,7 +386,7 @@

    isWrite

  • @@ -408,7 +408,7 @@

    setAppend

  • @@ -436,7 +436,7 @@

    setCreate

  • @@ -464,7 +464,7 @@

    setCreateNew

  • @@ -492,7 +492,7 @@

    setDeleteOnClose

  • @@ -520,7 +520,7 @@

    setDsync

  • @@ -548,7 +548,7 @@

    setPerms

  • @@ -576,7 +576,7 @@

    setRead

  • @@ -604,7 +604,7 @@

    setSparse

  • @@ -632,7 +632,7 @@

    setSync

  • @@ -660,7 +660,7 @@

    setTruncateExisting

  • @@ -688,7 +688,7 @@

    setWrite

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/opensslengineoptions.html b/docs/.vuepress/public/@vertx/core/classes/opensslengineoptions.html index a0a843d1e..1d4fe8a7a 100644 --- a/docs/.vuepress/public/@vertx/core/classes/opensslengineoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/opensslengineoptions.html @@ -112,7 +112,7 @@

    constructor

  • Returns OpenSSLEngineOptions

    @@ -120,7 +120,7 @@

    Returns

    Parameters

    @@ -146,7 +146,7 @@

    isSessionCacheEnabled

  • @@ -168,7 +168,7 @@

    setSessionCacheEnabled

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/option.html b/docs/.vuepress/public/@vertx/core/classes/option.html index afeb50e51..b5fa6e227 100644 --- a/docs/.vuepress/public/@vertx/core/classes/option.html +++ b/docs/.vuepress/public/@vertx/core/classes/option.html @@ -139,7 +139,7 @@

    constructor

  • Returns Option

    @@ -147,7 +147,7 @@

    Returns

    Parameters

    @@ -173,7 +173,7 @@

    addChoice

  • @@ -202,7 +202,7 @@

    getArgName

  • @@ -224,7 +224,7 @@

    getChoices

  • @@ -247,7 +247,7 @@

    getDefaultValue

  • @@ -269,7 +269,7 @@

    getDescription

  • @@ -291,7 +291,7 @@

    getLongName

  • @@ -313,7 +313,7 @@

    getName

  • Returns string

    @@ -330,7 +330,7 @@

    getShortName

  • @@ -352,7 +352,7 @@

    isFlag

  • @@ -378,7 +378,7 @@

    isHelp

  • @@ -400,7 +400,7 @@

    isHidden

  • @@ -422,7 +422,7 @@

    isMultiValued

  • @@ -444,7 +444,7 @@

    isRequired

  • @@ -466,7 +466,7 @@

    isSingleValued

  • @@ -488,7 +488,7 @@

    setArgName

  • @@ -516,7 +516,7 @@

    setChoices

  • @@ -545,7 +545,7 @@

    setDefaultValue

  • @@ -573,7 +573,7 @@

    setDescription

  • @@ -601,7 +601,7 @@

    setFlag

  • @@ -633,7 +633,7 @@

    setHelp

  • @@ -661,7 +661,7 @@

    setHidden

  • @@ -689,7 +689,7 @@

    setLongName

  • @@ -717,7 +717,7 @@

    setMultiValued

  • @@ -745,7 +745,7 @@

    setRequired

  • @@ -773,7 +773,7 @@

    setShortName

  • @@ -801,7 +801,7 @@

    setSingleValued

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/pemkeycertoptions.html b/docs/.vuepress/public/@vertx/core/classes/pemkeycertoptions.html index bc7495c55..d24f0e56e 100644 --- a/docs/.vuepress/public/@vertx/core/classes/pemkeycertoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/pemkeycertoptions.html @@ -173,7 +173,7 @@

    constructor

  • Returns PemKeyCertOptions

    @@ -181,7 +181,7 @@

    Returns

    Parameters

    @@ -207,7 +207,7 @@

    getCertPaths

  • @@ -229,7 +229,7 @@

    getCertValues

  • @@ -251,7 +251,7 @@

    getKeyPaths

  • @@ -273,7 +273,7 @@

    getKeyValues

  • @@ -295,7 +295,7 @@

    setCertPath

  • @@ -323,7 +323,7 @@

    setCertPaths

  • @@ -351,7 +351,7 @@

    setCertValue

  • @@ -379,7 +379,7 @@

    setCertValues

  • @@ -407,7 +407,7 @@

    setKeyPath

  • @@ -435,7 +435,7 @@

    setKeyPaths

  • @@ -463,7 +463,7 @@

    setKeyValue

  • @@ -491,7 +491,7 @@

    setKeyValues

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/pemtrustoptions.html b/docs/.vuepress/public/@vertx/core/classes/pemtrustoptions.html index 29001e58a..ad3d3f199 100644 --- a/docs/.vuepress/public/@vertx/core/classes/pemtrustoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/pemtrustoptions.html @@ -138,7 +138,7 @@

    constructor

  • Returns PemTrustOptions

    @@ -146,7 +146,7 @@

    Returns

    Parameters

    @@ -172,7 +172,7 @@

    addCertPath

  • @@ -200,7 +200,7 @@

    addCertValue

  • @@ -228,7 +228,7 @@

    getCertPaths

  • @@ -250,7 +250,7 @@

    getCertValues

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/pfxoptions.html b/docs/.vuepress/public/@vertx/core/classes/pfxoptions.html index 1c334e471..0a4bc3b63 100644 --- a/docs/.vuepress/public/@vertx/core/classes/pfxoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/pfxoptions.html @@ -131,7 +131,7 @@

    constructor

  • Returns PfxOptions

    @@ -139,7 +139,7 @@

    Returns

    Parameters

    @@ -165,7 +165,7 @@

    getPassword

  • @@ -187,7 +187,7 @@

    getPath

  • @@ -209,7 +209,7 @@

    getValue

  • @@ -231,7 +231,7 @@

    setPassword

  • @@ -259,7 +259,7 @@

    setPath

  • @@ -287,7 +287,7 @@

    setValue

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/pipe.html b/docs/.vuepress/public/@vertx/core/classes/pipe.html index e77c60212..95de70fc6 100644 --- a/docs/.vuepress/public/@vertx/core/classes/pipe.html +++ b/docs/.vuepress/public/@vertx/core/classes/pipe.html @@ -133,7 +133,7 @@

    close

  • @@ -157,7 +157,7 @@

    endOnComplete

  • @@ -187,7 +187,7 @@

    endOnFailure

  • @@ -215,7 +215,7 @@

    endOnSuccess

  • @@ -244,7 +244,7 @@

    to

  • @@ -263,7 +263,7 @@

    Returns void
    diff --git a/docs/.vuepress/public/@vertx/core/classes/promise.html b/docs/.vuepress/public/@vertx/core/classes/promise.html index d20a4b415..43fc33d3e 100644 --- a/docs/.vuepress/public/@vertx/core/classes/promise.html +++ b/docs/.vuepress/public/@vertx/core/classes/promise.html @@ -123,7 +123,7 @@

    complete

  • @@ -144,7 +144,7 @@

    Returns void
    @@ -167,7 +167,7 @@

    fail

  • @@ -186,7 +186,7 @@

    Returns void
    @@ -214,7 +214,7 @@

    future

  • Returns Future<T>

    @@ -232,7 +232,7 @@

    tryComplete

  • @@ -252,7 +252,7 @@

    Returns boolean
    @@ -275,7 +275,7 @@

    tryFail

  • @@ -295,7 +295,7 @@

    Returns boolean
    @@ -323,7 +323,7 @@

    Static promise

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/proxyoptions.html b/docs/.vuepress/public/@vertx/core/classes/proxyoptions.html index 68cbe27d5..fb2c20e78 100644 --- a/docs/.vuepress/public/@vertx/core/classes/proxyoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/proxyoptions.html @@ -120,7 +120,7 @@

    constructor

  • Returns ProxyOptions

    @@ -128,7 +128,7 @@

    Returns

    Parameters

    @@ -154,7 +154,7 @@

    getHost

  • @@ -176,7 +176,7 @@

    getPassword

  • @@ -198,7 +198,7 @@

    getPort

  • @@ -220,7 +220,7 @@

    getType

  • @@ -243,7 +243,7 @@

    getUsername

  • @@ -265,7 +265,7 @@

    setHost

  • @@ -293,7 +293,7 @@

    setPassword

  • @@ -321,7 +321,7 @@

    setPort

  • @@ -349,7 +349,7 @@

    setType

  • @@ -378,7 +378,7 @@

    setUsername

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/pump.html b/docs/.vuepress/public/@vertx/core/classes/pump.html index 4c021d3f5..8a893c6fd 100644 --- a/docs/.vuepress/public/@vertx/core/classes/pump.html +++ b/docs/.vuepress/public/@vertx/core/classes/pump.html @@ -125,7 +125,7 @@

    numberPumped

  • @@ -147,7 +147,7 @@

    setWriteQueueMaxSize

  • @@ -175,7 +175,7 @@

    start

  • @@ -197,7 +197,7 @@

    stop

  • @@ -220,7 +220,7 @@

    Static pump

  • @@ -248,7 +248,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/core/classes/recordparser.html b/docs/.vuepress/public/@vertx/core/classes/recordparser.html index 6beebb991..e0a874b93 100644 --- a/docs/.vuepress/public/@vertx/core/classes/recordparser.html +++ b/docs/.vuepress/public/@vertx/core/classes/recordparser.html @@ -154,7 +154,7 @@

    delimitedMode

  • @@ -176,7 +176,7 @@

    Returns void
    @@ -207,7 +207,7 @@

    endHandler

  • Parameters

    @@ -230,7 +230,7 @@

    exceptionHandler

  • Parameters

    @@ -254,7 +254,7 @@

    fetch

    Parameters

    @@ -277,7 +277,7 @@

    fixedSizeMode

  • @@ -307,7 +307,7 @@

    handle

  • @@ -335,7 +335,7 @@

    handler

  • Parameters

    @@ -358,7 +358,7 @@

    maxRecordSize

  • @@ -390,7 +390,7 @@

    pause

    Returns RecordParser

    @@ -408,7 +408,7 @@

    pipe

    @@ -434,7 +434,7 @@

    pipeTo

    @@ -453,7 +453,7 @@

    Returns void
    @@ -490,7 +490,7 @@

    resume

    Returns RecordParser

    @@ -507,7 +507,7 @@

    setOutput

  • Parameters

    @@ -535,7 +535,7 @@

    Static newDelimited

  • @@ -558,7 +558,7 @@

    Returns
    @@ -583,7 +583,7 @@

    Returns
    @@ -605,7 +605,7 @@

    Returns
    @@ -626,7 +626,7 @@

    Returns
    @@ -649,7 +649,7 @@

    Returns
    @@ -685,7 +685,7 @@

    Static newFixed

  • @@ -707,7 +707,7 @@

    Returns
    @@ -730,7 +730,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/core/classes/requestoptions.html b/docs/.vuepress/public/@vertx/core/classes/requestoptions.html index 23be20dcf..c9f9d329a 100644 --- a/docs/.vuepress/public/@vertx/core/classes/requestoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/requestoptions.html @@ -119,7 +119,7 @@

    constructor

  • Returns RequestOptions

    @@ -127,7 +127,7 @@

    Returns

    Parameters

    @@ -153,7 +153,7 @@

    addHeader

  • @@ -184,7 +184,7 @@

    getHost

  • @@ -206,7 +206,7 @@

    getPort

  • @@ -228,7 +228,7 @@

    getURI

  • @@ -250,7 +250,7 @@

    isSsl

  • @@ -272,7 +272,7 @@

    setHost

  • @@ -300,7 +300,7 @@

    setPort

  • @@ -328,7 +328,7 @@

    setSsl

  • @@ -356,7 +356,7 @@

    setURI

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/selfsignedcertificate.html b/docs/.vuepress/public/@vertx/core/classes/selfsignedcertificate.html index 734616ed8..1c163f0a9 100644 --- a/docs/.vuepress/public/@vertx/core/classes/selfsignedcertificate.html +++ b/docs/.vuepress/public/@vertx/core/classes/selfsignedcertificate.html @@ -111,7 +111,7 @@

    certificatePath

  • @@ -133,7 +133,7 @@

    delete

  • @@ -155,7 +155,7 @@

    keyCertOptions

  • @@ -177,7 +177,7 @@

    privateKeyPath

  • @@ -199,7 +199,7 @@

    trustOptions

  • @@ -222,7 +222,7 @@

    Static create

  • @@ -235,7 +235,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/core/classes/serverwebsocket.html b/docs/.vuepress/public/@vertx/core/classes/serverwebsocket.html index 12006a460..4a1e68d91 100644 --- a/docs/.vuepress/public/@vertx/core/classes/serverwebsocket.html +++ b/docs/.vuepress/public/@vertx/core/classes/serverwebsocket.html @@ -155,7 +155,7 @@

    accept

  • @@ -181,7 +181,7 @@

    binaryHandlerID

    @@ -208,7 +208,7 @@

    binaryMessageHandler

  • @@ -243,7 +243,7 @@

    close

  • @@ -263,7 +263,7 @@

    Returns void

    Implementation of WebSocketBase.close

      -
    • Defined in index.d.ts:7026
    • +
    • Defined in index.d.ts:7065
    @@ -285,7 +285,7 @@

    Returns void
    @@ -308,7 +308,7 @@

    Returns void

    Implementation of WebSocketBase.close

      -
    • Defined in index.d.ts:7039
    • +
    • Defined in index.d.ts:7078
    @@ -333,7 +333,7 @@

    Returns void
    @@ -359,7 +359,7 @@

    Returns void

    Implementation of WebSocketBase.close

      -
    • Defined in index.d.ts:7172
    • +
    • Defined in index.d.ts:7211
    @@ -383,7 +383,7 @@

    closeHandler

  • Parameters

    @@ -407,12 +407,12 @@

    closeReason

    -

    Returns the reason message received when the WebSocket was closed by the other side, otherwise null.

    +

    Returns the close reason message from the remote endpoint or null when not yet received.

    Returns string

    @@ -430,12 +430,12 @@

    closeStatusCode

    -

    Returns the status code received when the WebSocket was closed by the other side, otherwise null.

    +

    Returns the close status code received from the remote endpoint or null when not yet received.

    Returns number

    @@ -452,7 +452,7 @@

    drainHandler

  • Parameters

    @@ -479,7 +479,7 @@

    end

    @@ -498,7 +498,7 @@

    Returns void
    @@ -521,7 +521,7 @@

    Returns void

    Implementation of WebSocketBase.end

      -
    • Defined in index.d.ts:7008
    • +
    • Defined in index.d.ts:7047
    @@ -534,7 +534,7 @@

    Returns void
    @@ -562,7 +562,7 @@

    endHandler

  • Parameters

    @@ -585,7 +585,7 @@

    exceptionHandler

  • Parameters

    @@ -609,7 +609,7 @@

    fetch

    Parameters

    @@ -632,7 +632,7 @@

    frameHandler

  • Parameters

    @@ -655,7 +655,7 @@

    handler

  • Parameters

    @@ -679,7 +679,7 @@

    headers

    @@ -704,7 +704,7 @@

    isClosed

    Returns boolean

    @@ -722,7 +722,7 @@

    isSsl

    Returns boolean

    @@ -740,7 +740,7 @@

    localAddress

    Returns SocketAddress

    @@ -757,7 +757,7 @@

    path

  • Returns string

    @@ -775,7 +775,7 @@

    pause

    Returns ServerWebSocket

    @@ -793,7 +793,7 @@

    pipe

    @@ -819,7 +819,7 @@

    pipeTo

    @@ -838,7 +838,7 @@

    Returns void
    @@ -874,7 +874,7 @@

    pongHandler

  • @@ -910,7 +910,7 @@

    query

  • Returns string | null

    @@ -928,7 +928,7 @@

    reject

  • @@ -947,7 +947,7 @@

    Returns void
    @@ -976,7 +976,7 @@

    remoteAddress

    Returns SocketAddress

    @@ -994,7 +994,7 @@

    resume

    Returns ServerWebSocket

    @@ -1012,7 +1012,7 @@

    setHandshake

  • @@ -1047,7 +1047,7 @@

    Returns void
    @@ -1076,7 +1076,7 @@

    setWriteQueueMaxSize

    Parameters

    @@ -1100,7 +1100,7 @@

    sslSession

    Returns any

    @@ -1118,7 +1118,7 @@

    subProtocol

    @@ -1144,7 +1144,7 @@

    textHandlerID

    @@ -1171,7 +1171,7 @@

    textMessageHandler

  • @@ -1200,7 +1200,7 @@

    uri

  • Returns string

    @@ -1219,7 +1219,7 @@

    write

    Parameters

    @@ -1233,7 +1233,7 @@

    Returns

    Parameters

    @@ -1261,7 +1261,7 @@

    writeBinaryMessage

    Parameters

    @@ -1275,7 +1275,7 @@

    Returns

    Parameters

    @@ -1303,7 +1303,7 @@

    writeFinalBinaryFrame

    Parameters

    @@ -1317,7 +1317,7 @@

    Returns

    Parameters

    @@ -1345,7 +1345,7 @@

    writeFinalTextFrame

    Parameters

    @@ -1359,7 +1359,7 @@

    Returns

    Parameters

    @@ -1387,7 +1387,7 @@

    writeFrame

    Parameters

    @@ -1401,7 +1401,7 @@

    Returns

    Parameters

    @@ -1428,7 +1428,7 @@

    writePing

    @@ -1463,7 +1463,7 @@

    writePong

    @@ -1499,7 +1499,7 @@

    writeQueueFull

    @@ -1523,7 +1523,7 @@

    writeTextMessage

    Parameters

    @@ -1537,7 +1537,7 @@

    Returns

    Parameters

    diff --git a/docs/.vuepress/public/@vertx/core/classes/shareddata.html b/docs/.vuepress/public/@vertx/core/classes/shareddata.html index 7483cc792..bd86ad9ab 100644 --- a/docs/.vuepress/public/@vertx/core/classes/shareddata.html +++ b/docs/.vuepress/public/@vertx/core/classes/shareddata.html @@ -127,7 +127,7 @@

    getAsyncMap

  • @@ -172,7 +172,7 @@

    getClusterWideMap

  • @@ -213,7 +213,7 @@

    getCounter

  • @@ -244,7 +244,7 @@

    getLocalAsyncMap

  • @@ -287,7 +287,7 @@

    getLocalCounter

  • @@ -318,7 +318,7 @@

    getLocalLock

  • @@ -353,7 +353,7 @@

    getLocalLockWithTimeout

  • @@ -392,7 +392,7 @@

    getLocalMap

  • @@ -429,7 +429,7 @@

    getLock

  • @@ -464,7 +464,7 @@

    getLockWithTimeout

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/socketaddress.html b/docs/.vuepress/public/@vertx/core/classes/socketaddress.html index df94d4077..359d5ad71 100644 --- a/docs/.vuepress/public/@vertx/core/classes/socketaddress.html +++ b/docs/.vuepress/public/@vertx/core/classes/socketaddress.html @@ -111,7 +111,7 @@

    host

  • Returns string

    @@ -128,7 +128,7 @@

    path

  • Returns string

    @@ -145,7 +145,7 @@

    port

  • Returns number

    @@ -162,7 +162,7 @@

    Static domainSocketAdd
  • @@ -190,7 +190,7 @@

    Static inetSocketAddre
  • diff --git a/docs/.vuepress/public/@vertx/core/classes/srvrecord.html b/docs/.vuepress/public/@vertx/core/classes/srvrecord.html index 0973fa525..79cd47694 100644 --- a/docs/.vuepress/public/@vertx/core/classes/srvrecord.html +++ b/docs/.vuepress/public/@vertx/core/classes/srvrecord.html @@ -110,7 +110,7 @@

    name

  • @@ -132,7 +132,7 @@

    port

  • @@ -154,7 +154,7 @@

    priority

  • @@ -176,7 +176,7 @@

    protocol

  • @@ -198,7 +198,7 @@

    service

  • @@ -220,7 +220,7 @@

    target

  • @@ -242,7 +242,7 @@

    weight

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/streampriority.html b/docs/.vuepress/public/@vertx/core/classes/streampriority.html index c6513c4d2..c0cc8328b 100644 --- a/docs/.vuepress/public/@vertx/core/classes/streampriority.html +++ b/docs/.vuepress/public/@vertx/core/classes/streampriority.html @@ -116,7 +116,7 @@

    constructor

  • Returns StreamPriority

    @@ -124,7 +124,7 @@

    Returns

    Parameters

    @@ -150,7 +150,7 @@

    getDependency

  • @@ -172,7 +172,7 @@

    getWeight

  • @@ -194,7 +194,7 @@

    isExclusive

  • @@ -216,7 +216,7 @@

    setDependency

  • @@ -244,7 +244,7 @@

    setExclusive

  • @@ -272,7 +272,7 @@

    setWeight

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/tcpssloptions.html b/docs/.vuepress/public/@vertx/core/classes/tcpssloptions.html index 973af3a2a..c4c2a04eb 100644 --- a/docs/.vuepress/public/@vertx/core/classes/tcpssloptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/tcpssloptions.html @@ -173,7 +173,7 @@

    constructor

  • Returns TCPSSLOptions

    @@ -181,7 +181,7 @@

    Returns

    Parameters

    @@ -207,7 +207,7 @@

    addCrlPath

  • @@ -235,7 +235,7 @@

    addCrlValue

  • @@ -263,7 +263,7 @@

    addEnabledCipherSuite

  • @@ -291,7 +291,7 @@

    addEnabledSecureTransportProtocol

  • @@ -319,7 +319,7 @@

    getCrlPaths

  • @@ -341,7 +341,7 @@

    getCrlValues

  • @@ -363,7 +363,7 @@

    getEnabledCipherSuites

  • @@ -385,7 +385,7 @@

    getEnabledSecureTransportProtocols

  • @@ -407,7 +407,7 @@

    getIdleTimeout

  • @@ -431,7 +431,7 @@

    getIdleTimeoutUnit

  • @@ -453,7 +453,7 @@

    getJdkSslEngineOptions

  • Returns JdkSSLEngineOptions

    @@ -470,7 +470,7 @@

    getKeyStoreOptions

  • @@ -492,7 +492,7 @@

    getLogActivity

  • @@ -514,7 +514,7 @@

    getOpenSslEngineOptions

  • Returns OpenSSLEngineOptions

    @@ -531,7 +531,7 @@

    getPemKeyCertOptions

  • @@ -553,7 +553,7 @@

    getPemTrustOptions

  • @@ -575,7 +575,7 @@

    getPfxKeyCertOptions

  • @@ -597,7 +597,7 @@

    getPfxTrustOptions

  • @@ -619,7 +619,7 @@

    getReceiveBufferSize

  • @@ -641,7 +641,7 @@

    getSendBufferSize

  • @@ -663,7 +663,7 @@

    getSoLinger

  • @@ -685,7 +685,7 @@

    getSslHandshakeTimeout

  • @@ -707,7 +707,7 @@

    getSslHandshakeTimeoutUnit

  • @@ -729,7 +729,7 @@

    getTrafficClass

  • @@ -751,7 +751,7 @@

    getTrustStoreOptions

  • @@ -773,7 +773,7 @@

    isReuseAddress

  • @@ -795,7 +795,7 @@

    isReusePort

  • @@ -819,7 +819,7 @@

    isSsl

  • @@ -841,7 +841,7 @@

    isTcpCork

  • @@ -863,7 +863,7 @@

    isTcpFastOpen

  • @@ -885,7 +885,7 @@

    isTcpKeepAlive

  • @@ -907,7 +907,7 @@

    isTcpNoDelay

  • @@ -929,7 +929,7 @@

    isTcpQuickAck

  • @@ -951,7 +951,7 @@

    isUseAlpn

  • @@ -973,7 +973,7 @@

    isUsePooledBuffers

  • @@ -995,7 +995,7 @@

    setEnabledSecureTransportProtocols

  • @@ -1023,7 +1023,7 @@

    setIdleTimeout

  • @@ -1053,7 +1053,7 @@

    setIdleTimeoutUnit

  • @@ -1081,7 +1081,7 @@

    setJdkSslEngineOptions

  • Parameters

    @@ -1104,7 +1104,7 @@

    setKeyStoreOptions

  • @@ -1132,7 +1132,7 @@

    setLogActivity

  • @@ -1160,7 +1160,7 @@

    setOpenSslEngineOptions

  • Parameters

    @@ -1183,7 +1183,7 @@

    setPemKeyCertOptions

  • @@ -1211,7 +1211,7 @@

    setPemTrustOptions

  • @@ -1239,7 +1239,7 @@

    setPfxKeyCertOptions

  • @@ -1267,7 +1267,7 @@

    setPfxTrustOptions

  • @@ -1295,7 +1295,7 @@

    setReceiveBufferSize

  • @@ -1323,7 +1323,7 @@

    setReuseAddress

  • @@ -1351,7 +1351,7 @@

    setReusePort

  • @@ -1381,7 +1381,7 @@

    setSendBufferSize

  • @@ -1409,7 +1409,7 @@

    setSoLinger

  • @@ -1437,7 +1437,7 @@

    setSsl

  • @@ -1465,7 +1465,7 @@

    setSslHandshakeTimeout

  • @@ -1493,7 +1493,7 @@

    setSslHandshakeTimeoutUnit

  • @@ -1521,7 +1521,7 @@

    setTcpCork

  • @@ -1549,7 +1549,7 @@

    setTcpFastOpen

  • @@ -1577,7 +1577,7 @@

    setTcpKeepAlive

  • @@ -1605,7 +1605,7 @@

    setTcpNoDelay

  • @@ -1633,7 +1633,7 @@

    setTcpQuickAck

  • @@ -1661,7 +1661,7 @@

    setTrafficClass

  • @@ -1689,7 +1689,7 @@

    setTrustStoreOptions

  • @@ -1717,7 +1717,7 @@

    setUseAlpn

  • @@ -1745,7 +1745,7 @@

    setUsePooledBuffers

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/timeoutstream.html b/docs/.vuepress/public/@vertx/core/classes/timeoutstream.html index 0c95a95ae..3aa734f8c 100644 --- a/docs/.vuepress/public/@vertx/core/classes/timeoutstream.html +++ b/docs/.vuepress/public/@vertx/core/classes/timeoutstream.html @@ -123,7 +123,7 @@

    cancel

  • @@ -146,7 +146,7 @@

    endHandler

  • Parameters

    @@ -169,7 +169,7 @@

    exceptionHandler

  • Parameters

    @@ -193,7 +193,7 @@

    fetch

    Parameters

    @@ -216,7 +216,7 @@

    handler

  • Parameters

    @@ -240,7 +240,7 @@

    pause

    Returns TimeoutStream

    @@ -258,7 +258,7 @@

    pipe

    @@ -284,7 +284,7 @@

    pipeTo

    @@ -303,7 +303,7 @@

    Returns void
    @@ -340,7 +340,7 @@

    resume

    Returns TimeoutStream

    diff --git a/docs/.vuepress/public/@vertx/core/classes/vertx.html b/docs/.vuepress/public/@vertx/core/classes/vertx.html index b7051f3ae..147623972 100644 --- a/docs/.vuepress/public/@vertx/core/classes/vertx.html +++ b/docs/.vuepress/public/@vertx/core/classes/vertx.html @@ -162,7 +162,7 @@

    cancelTimer

  • @@ -191,7 +191,7 @@

    close

  • @@ -208,7 +208,7 @@

    Returns void
    @@ -237,7 +237,7 @@

    createDatagramSocket

  • @@ -256,7 +256,7 @@

    Returns
    @@ -280,7 +280,7 @@

    createDnsClient

  • @@ -303,7 +303,7 @@

    Returns
    @@ -318,7 +318,7 @@

    Returns
    @@ -347,7 +347,7 @@

    createHttpClient

  • @@ -366,7 +366,7 @@

    Returns
    @@ -389,7 +389,7 @@

    createHttpServer

  • @@ -408,7 +408,7 @@

    Returns
    @@ -431,7 +431,7 @@

    createNetClient

  • @@ -450,7 +450,7 @@

    Returns
    @@ -473,7 +473,7 @@

    createNetServer

  • @@ -492,7 +492,7 @@

    Returns
    @@ -517,7 +517,7 @@

    createSharedWorkerExecutor

  • @@ -536,7 +536,7 @@

    Returns
    @@ -558,7 +558,7 @@

    Returns
    @@ -583,7 +583,7 @@

    Returns
    @@ -634,7 +634,7 @@

    deployVerticle

  • @@ -657,7 +657,7 @@

    Returns void
    @@ -684,7 +684,7 @@

    Returns void
    @@ -707,7 +707,7 @@

    Returns void
    @@ -733,7 +733,7 @@

    Returns void
    @@ -756,7 +756,7 @@

    Returns void
    @@ -783,7 +783,7 @@

    Returns void
    @@ -806,7 +806,7 @@

    Returns void
    @@ -834,7 +834,7 @@

    Returns void
    @@ -860,7 +860,7 @@

    Returns void
    @@ -900,7 +900,7 @@

    deploymentIDs

  • @@ -922,7 +922,7 @@

    eventBus

  • @@ -944,7 +944,7 @@

    exceptionHandler

  • @@ -973,7 +973,7 @@

    executeBlocking

  • @@ -1025,7 +1025,7 @@

    Returns void
    @@ -1062,7 +1062,7 @@

    fileSystem

  • @@ -1084,7 +1084,7 @@

    getOrCreateContext

  • @@ -1106,7 +1106,7 @@

    isClustered

  • @@ -1129,7 +1129,7 @@

    isMetricsEnabled

    @@ -1151,7 +1151,7 @@

    isNativeTransportEnabled

  • Returns boolean

    @@ -1168,7 +1168,7 @@

    nettyEventLoopGroup

  • @@ -1190,7 +1190,7 @@

    periodicStream

  • @@ -1219,7 +1219,7 @@

    registerVerticleFactory

  • @@ -1247,7 +1247,7 @@

    runOnContext

  • @@ -1276,7 +1276,7 @@

    setPeriodic

  • @@ -1308,7 +1308,7 @@

    setTimer

  • @@ -1340,7 +1340,7 @@

    sharedData

  • @@ -1362,7 +1362,7 @@

    timerStream

  • @@ -1392,7 +1392,7 @@

    undeploy

  • @@ -1413,7 +1413,7 @@

    Returns void
    @@ -1444,7 +1444,7 @@

    unregisterVerticleFactory

  • @@ -1472,7 +1472,7 @@

    verticleFactories

  • @@ -1494,7 +1494,7 @@

    Static clusteredVertx

  • @@ -1527,7 +1527,7 @@

    Static currentContext

  • @@ -1550,7 +1550,7 @@

    Static vertx

  • @@ -1563,7 +1563,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/core/classes/vertxoptions.html b/docs/.vuepress/public/@vertx/core/classes/vertxoptions.html index cccb24255..c7108d435 100644 --- a/docs/.vuepress/public/@vertx/core/classes/vertxoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/vertxoptions.html @@ -164,7 +164,7 @@

    constructor

  • Returns VertxOptions

    @@ -172,7 +172,7 @@

    Returns

    Parameters

    @@ -198,7 +198,7 @@

    getAddressResolverOptions

  • @@ -220,7 +220,7 @@

    getBlockedThreadCheckInterval

  • @@ -244,7 +244,7 @@

    getBlockedThreadCheckIntervalUnit

  • @@ -266,7 +266,7 @@

    getClusterHost

  • @@ -288,7 +288,7 @@

    getClusterPingInterval

  • @@ -310,7 +310,7 @@

    getClusterPingReplyInterval

  • @@ -332,7 +332,7 @@

    getClusterPort

  • @@ -354,7 +354,7 @@

    getClusterPublicHost

  • @@ -380,7 +380,7 @@

    getClusterPublicPort

  • @@ -402,7 +402,7 @@

    getEventBusOptions

  • @@ -424,7 +424,7 @@

    getEventLoopPoolSize

  • @@ -446,7 +446,7 @@

    getFileSystemOptions

  • @@ -468,7 +468,7 @@

    getHAGroup

  • @@ -490,7 +490,7 @@

    getInternalBlockingPoolSize

  • @@ -512,7 +512,7 @@

    getMaxEventLoopExecuteTime

  • @@ -536,7 +536,7 @@

    getMaxEventLoopExecuteTimeUnit

  • @@ -558,7 +558,7 @@

    getMaxWorkerExecuteTime

  • @@ -582,7 +582,7 @@

    getMaxWorkerExecuteTimeUnit

  • @@ -604,7 +604,7 @@

    getMetricsOptions

  • @@ -626,7 +626,7 @@

    getPreferNativeTransport

  • @@ -648,7 +648,7 @@

    getQuorumSize

  • @@ -670,7 +670,7 @@

    getWarningExceptionTime

  • @@ -693,7 +693,7 @@

    getWarningExceptionTimeUnit

  • @@ -715,7 +715,7 @@

    getWorkerPoolSize

  • @@ -737,7 +737,7 @@

    isClustered

  • @@ -759,7 +759,7 @@

    isFileResolverCachingEnabled

  • @@ -781,7 +781,7 @@

    isHAEnabled

  • @@ -803,7 +803,7 @@

    setAddressResolverOptions

  • @@ -831,7 +831,7 @@

    setBlockedThreadCheckInterval

  • @@ -861,7 +861,7 @@

    setBlockedThreadCheckIntervalUnit

  • @@ -889,7 +889,7 @@

    setClusterHost

  • @@ -917,7 +917,7 @@

    setClusterPingInterval

  • @@ -945,7 +945,7 @@

    setClusterPingReplyInterval

  • @@ -973,7 +973,7 @@

    setClusterPort

  • @@ -1001,7 +1001,7 @@

    setClusterPublicHost

  • @@ -1033,7 +1033,7 @@

    setClusterPublicPort

  • @@ -1061,7 +1061,7 @@

    setClustered

  • @@ -1089,7 +1089,7 @@

    setEventBusOptions

  • @@ -1117,7 +1117,7 @@

    setEventLoopPoolSize

  • @@ -1145,7 +1145,7 @@

    setFileResolverCachingEnabled

  • @@ -1173,7 +1173,7 @@

    setFileSystemOptions

  • @@ -1201,7 +1201,7 @@

    setHAEnabled

  • @@ -1229,7 +1229,7 @@

    setHAGroup

  • @@ -1257,7 +1257,7 @@

    setInternalBlockingPoolSize

  • @@ -1285,7 +1285,7 @@

    setMaxEventLoopExecuteTime

  • @@ -1315,7 +1315,7 @@

    setMaxEventLoopExecuteTimeUnit

  • @@ -1343,7 +1343,7 @@

    setMaxWorkerExecuteTime

  • @@ -1373,7 +1373,7 @@

    setMaxWorkerExecuteTimeUnit

  • @@ -1401,7 +1401,7 @@

    setMetricsOptions

  • @@ -1429,7 +1429,7 @@

    setPreferNativeTransport

  • @@ -1457,7 +1457,7 @@

    setQuorumSize

  • @@ -1485,7 +1485,7 @@

    setWarningExceptionTime

  • @@ -1514,7 +1514,7 @@

    setWarningExceptionTimeUnit

  • @@ -1542,7 +1542,7 @@

    setWorkerPoolSize

  • @@ -210,7 +210,7 @@

    close

    @@ -225,7 +225,7 @@

    Returns void
    @@ -245,7 +245,7 @@

    Returns void

    Implementation of WebSocketBase.close

      -
    • Defined in index.d.ts:7960
    • +
    • Defined in index.d.ts:7999
    @@ -267,7 +267,7 @@

    Returns void
    @@ -290,7 +290,7 @@

    Returns void

    Implementation of WebSocketBase.close

      -
    • Defined in index.d.ts:7973
    • +
    • Defined in index.d.ts:8012
    @@ -315,7 +315,7 @@

    Returns void
    @@ -349,7 +349,7 @@

    closeHandler

  • Parameters

    @@ -373,12 +373,12 @@

    closeReason

    -

    Returns the reason message received when the WebSocket was closed by the other side, otherwise null.

    +

    Returns the close reason message from the remote endpoint or null when not yet received.

    Returns string

    @@ -396,12 +396,12 @@

    closeStatusCode

    -

    Returns the status code received when the WebSocket was closed by the other side, otherwise null.

    +

    Returns the close status code received from the remote endpoint or null when not yet received.

    Returns number

    @@ -418,7 +418,7 @@

    drainHandler

  • Parameters

    @@ -445,7 +445,7 @@

    end

    @@ -464,7 +464,7 @@

    Returns void
    @@ -487,7 +487,7 @@

    Returns void

    Implementation of WebSocketBase.end

      -
    • Defined in index.d.ts:7935
    • +
    • Defined in index.d.ts:7974
    @@ -500,7 +500,7 @@

    Returns void
    @@ -528,7 +528,7 @@

    endHandler

  • Parameters

    @@ -551,7 +551,7 @@

    exceptionHandler

  • Parameters

    @@ -575,7 +575,7 @@

    fetch

    Parameters

    @@ -598,7 +598,7 @@

    frameHandler

  • Parameters

    @@ -621,7 +621,7 @@

    handler

  • Parameters

    @@ -645,7 +645,7 @@

    headers

    @@ -670,7 +670,7 @@

    isClosed

    Returns boolean

    @@ -688,7 +688,7 @@

    isSsl

    Returns boolean

    @@ -706,7 +706,7 @@

    localAddress

    Returns SocketAddress

    @@ -724,7 +724,7 @@

    pause

    Returns WebSocket

    @@ -742,7 +742,7 @@

    pipe

    @@ -768,7 +768,7 @@

    pipeTo

    @@ -787,7 +787,7 @@

    Returns void
    @@ -823,7 +823,7 @@

    pongHandler

  • @@ -860,7 +860,7 @@

    remoteAddress

    Returns SocketAddress

    @@ -878,7 +878,7 @@

    resume

    Returns WebSocket

    @@ -896,7 +896,7 @@

    setWriteQueueMaxSize

    Parameters

    @@ -920,7 +920,7 @@

    sslSession

    Returns any

    @@ -938,7 +938,7 @@

    subProtocol

    @@ -964,7 +964,7 @@

    textHandlerID

    @@ -991,7 +991,7 @@

    textMessageHandler

  • @@ -1022,7 +1022,7 @@

    write

    Parameters

    @@ -1036,7 +1036,7 @@

    Returns

    Parameters

    @@ -1064,7 +1064,7 @@

    writeBinaryMessage

    Parameters

    @@ -1078,7 +1078,7 @@

    Returns

    Parameters

    @@ -1106,7 +1106,7 @@

    writeFinalBinaryFrame

    Parameters

    @@ -1120,7 +1120,7 @@

    Returns

    Parameters

    @@ -1148,7 +1148,7 @@

    writeFinalTextFrame

    Parameters

    @@ -1162,7 +1162,7 @@

    Returns

    Parameters

    @@ -1190,7 +1190,7 @@

    writeFrame

    Parameters

    @@ -1204,7 +1204,7 @@

    Returns

    Parameters

    @@ -1231,7 +1231,7 @@

    writePing

    @@ -1266,7 +1266,7 @@

    writePong

    @@ -1302,7 +1302,7 @@

    writeQueueFull

    @@ -1326,7 +1326,7 @@

    writeTextMessage

    Parameters

    @@ -1340,7 +1340,7 @@

    Returns

    Parameters

    diff --git a/docs/.vuepress/public/@vertx/core/classes/websocketconnectoptions.html b/docs/.vuepress/public/@vertx/core/classes/websocketconnectoptions.html index 7ceb4e59f..f2e82514a 100644 --- a/docs/.vuepress/public/@vertx/core/classes/websocketconnectoptions.html +++ b/docs/.vuepress/public/@vertx/core/classes/websocketconnectoptions.html @@ -124,7 +124,7 @@

    constructor

  • Returns WebSocketConnectOptions

    @@ -132,7 +132,7 @@

    Returns

    Parameters

    @@ -158,7 +158,7 @@

    addHeader

  • @@ -189,7 +189,7 @@

    addSubProtocol

  • @@ -217,7 +217,7 @@

    getHost

  • @@ -239,7 +239,7 @@

    getPort

  • @@ -261,7 +261,7 @@

    getSubProtocols

  • @@ -283,7 +283,7 @@

    getURI

  • @@ -305,7 +305,7 @@

    getVersion

  • @@ -327,7 +327,7 @@

    isSsl

  • @@ -349,7 +349,7 @@

    setHost

  • @@ -377,7 +377,7 @@

    setPort

  • @@ -405,7 +405,7 @@

    setSsl

  • @@ -433,7 +433,7 @@

    setSubProtocols

  • @@ -461,7 +461,7 @@

    setURI

  • @@ -489,7 +489,7 @@

    setVersion

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/websocketframe.html b/docs/.vuepress/public/@vertx/core/classes/websocketframe.html index 5846e4285..a96be50e6 100644 --- a/docs/.vuepress/public/@vertx/core/classes/websocketframe.html +++ b/docs/.vuepress/public/@vertx/core/classes/websocketframe.html @@ -124,7 +124,7 @@

    binaryData

  • Returns Buffer

    @@ -141,7 +141,7 @@

    closeReason

  • Returns string

    @@ -158,7 +158,7 @@

    closeStatusCode

  • Returns number

    @@ -175,7 +175,7 @@

    isBinary

  • Returns boolean

    @@ -192,7 +192,7 @@

    isClose

  • Returns boolean

    @@ -209,7 +209,7 @@

    isContinuation

  • Returns boolean

    @@ -226,7 +226,7 @@

    isFinal

  • Returns boolean

    @@ -243,7 +243,7 @@

    isText

  • Returns boolean

    @@ -260,7 +260,7 @@

    textData

  • Returns string

    @@ -277,7 +277,7 @@

    Static binaryFrame

  • @@ -308,7 +308,7 @@

    Static continuationFrame
    @@ -339,7 +339,7 @@

    Static pingFrame

  • @@ -367,7 +367,7 @@

    Static pongFrame

  • @@ -395,7 +395,7 @@

    Static textFrame

  • diff --git a/docs/.vuepress/public/@vertx/core/classes/workerexecutor.html b/docs/.vuepress/public/@vertx/core/classes/workerexecutor.html index 2f49dcc0c..c6b9051f2 100644 --- a/docs/.vuepress/public/@vertx/core/classes/workerexecutor.html +++ b/docs/.vuepress/public/@vertx/core/classes/workerexecutor.html @@ -114,7 +114,7 @@

    close

  • @@ -137,7 +137,7 @@

    executeBlocking

  • @@ -180,7 +180,7 @@

    Returns void
    @@ -218,7 +218,7 @@

    isMetricsEnabled

    diff --git a/docs/.vuepress/public/@vertx/core/index.html b/docs/.vuepress/public/@vertx/core/index.html index cb6ac5243..9e65117c2 100644 --- a/docs/.vuepress/public/@vertx/core/index.html +++ b/docs/.vuepress/public/@vertx/core/index.html @@ -63,7 +63,8 @@

    @vertx/core

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/core/interfaces/measured.html b/docs/.vuepress/public/@vertx/core/interfaces/measured.html index b5166e8b6..252c24fdb 100644 --- a/docs/.vuepress/public/@vertx/core/interfaces/measured.html +++ b/docs/.vuepress/public/@vertx/core/interfaces/measured.html @@ -110,7 +110,7 @@

    isMetricsEnabled

  • diff --git a/docs/.vuepress/public/@vertx/core/interfaces/readstream.html b/docs/.vuepress/public/@vertx/core/interfaces/readstream.html index d026fc6f3..0cf79c83a 100644 --- a/docs/.vuepress/public/@vertx/core/interfaces/readstream.html +++ b/docs/.vuepress/public/@vertx/core/interfaces/readstream.html @@ -162,7 +162,7 @@

    endHandler

  • @@ -191,7 +191,7 @@

    exceptionHandler

    @@ -219,7 +219,7 @@

    fetch

  • @@ -249,7 +249,7 @@

    handler

  • @@ -277,7 +277,7 @@

    pause

  • @@ -301,7 +301,7 @@

    pipe

  • @@ -326,7 +326,7 @@

    pipeTo

  • @@ -345,7 +345,7 @@

    Returns void
    @@ -381,7 +381,7 @@

    resume

  • diff --git a/docs/.vuepress/public/@vertx/core/interfaces/streambase.html b/docs/.vuepress/public/@vertx/core/interfaces/streambase.html index b46cf4ec9..21cf58ab5 100644 --- a/docs/.vuepress/public/@vertx/core/interfaces/streambase.html +++ b/docs/.vuepress/public/@vertx/core/interfaces/streambase.html @@ -112,7 +112,7 @@

    exceptionHandler

  • diff --git a/docs/.vuepress/public/@vertx/core/interfaces/websocketbase.html b/docs/.vuepress/public/@vertx/core/interfaces/websocketbase.html index a6ef93689..65786566b 100644 --- a/docs/.vuepress/public/@vertx/core/interfaces/websocketbase.html +++ b/docs/.vuepress/public/@vertx/core/interfaces/websocketbase.html @@ -158,7 +158,7 @@

    binaryHandlerID

  • @@ -185,7 +185,7 @@

    binaryMessageHandler

  • @@ -220,7 +220,7 @@

    close

  • @@ -235,7 +235,7 @@

    Returns void
    @@ -254,7 +254,7 @@

    Returns void
    @@ -276,7 +276,7 @@

    Returns void
    @@ -298,7 +298,7 @@

    Returns void
    @@ -323,7 +323,7 @@

    Returns void
    @@ -357,7 +357,7 @@

    closeHandler

  • @@ -388,12 +388,12 @@

    closeReason

  • -

    Returns the reason message received when the WebSocket was closed by the other side, otherwise null.

    +

    Returns the close reason message from the remote endpoint or null when not yet received.

    Returns string

    @@ -410,12 +410,12 @@

    closeStatusCode

  • -

    Returns the status code received when the WebSocket was closed by the other side, otherwise null.

    +

    Returns the close status code received from the remote endpoint or null when not yet received.

    Returns number

    @@ -433,7 +433,7 @@

    drainHandler

    Parameters

    @@ -460,7 +460,7 @@

    end

    @@ -480,7 +480,7 @@

    Returns void

    Overrides WriteStream.end

      -
    • Defined in index.d.ts:8060
    • +
    • Defined in index.d.ts:8099
    @@ -503,7 +503,7 @@

    Returns void

    Overrides WriteStream.end

      -
    • Defined in index.d.ts:8271
    • +
    • Defined in index.d.ts:8310
    @@ -517,7 +517,7 @@

    Returns void

    Overrides WriteStream.end

      -
    • Defined in index.d.ts:8276
    • +
    • Defined in index.d.ts:8315
    @@ -546,7 +546,7 @@

    endHandler

    Parameters

    @@ -570,7 +570,7 @@

    exceptionHandler

    Parameters

    @@ -594,7 +594,7 @@

    fetch

    Parameters

    @@ -617,7 +617,7 @@

    frameHandler

  • @@ -646,7 +646,7 @@

    handler

    Parameters

    @@ -669,7 +669,7 @@

    headers

  • @@ -693,7 +693,7 @@

    isClosed

  • Returns boolean

    @@ -710,7 +710,7 @@

    isSsl

  • Returns boolean

    @@ -727,7 +727,7 @@

    localAddress

  • Returns SocketAddress

    @@ -745,7 +745,7 @@

    pause

    Returns WebSocketBase

    @@ -763,7 +763,7 @@

    pipe

    @@ -789,7 +789,7 @@

    pipeTo

    @@ -809,7 +809,7 @@

    Returns void

    Overrides ReadStream.pipeTo

      -
    • Defined in index.d.ts:8087
    • +
    • Defined in index.d.ts:8126
    @@ -845,7 +845,7 @@

    pongHandler

  • @@ -881,7 +881,7 @@

    remoteAddress

  • Returns SocketAddress

    @@ -899,7 +899,7 @@

    resume

    Returns WebSocketBase

    @@ -917,7 +917,7 @@

    setWriteQueueMaxSize

    Parameters

    @@ -940,7 +940,7 @@

    sslSession

  • Returns any

    @@ -957,7 +957,7 @@

    subProtocol

  • @@ -982,7 +982,7 @@

    textHandlerID

  • @@ -1009,7 +1009,7 @@

    textMessageHandler

  • @@ -1040,7 +1040,7 @@

    write

    Parameters

    @@ -1055,7 +1055,7 @@

    Returns

    Overrides WriteStream.write

      -
    • Defined in index.d.ts:8103
    • +
    • Defined in index.d.ts:8142

    Parameters

    @@ -1082,7 +1082,7 @@

    writeBinaryMessage

  • @@ -1102,7 +1102,7 @@

    Returns
    @@ -1134,7 +1134,7 @@

    writeFinalBinaryFrame

  • @@ -1153,7 +1153,7 @@

    Returns
    @@ -1185,7 +1185,7 @@

    writeFinalTextFrame

  • @@ -1204,7 +1204,7 @@

    Returns
    @@ -1236,7 +1236,7 @@

    writeFrame

  • @@ -1255,7 +1255,7 @@

    Returns
    @@ -1286,7 +1286,7 @@

    writePing

  • @@ -1320,7 +1320,7 @@

    writePong

  • @@ -1356,7 +1356,7 @@

    writeQueueFull

    @@ -1379,7 +1379,7 @@

    writeTextMessage

  • @@ -1399,7 +1399,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/core/interfaces/writestream.html b/docs/.vuepress/public/@vertx/core/interfaces/writestream.html index 23b2c7a3f..348ea55f1 100644 --- a/docs/.vuepress/public/@vertx/core/interfaces/writestream.html +++ b/docs/.vuepress/public/@vertx/core/interfaces/writestream.html @@ -140,7 +140,7 @@

    drainHandler

  • @@ -175,7 +175,7 @@

    end

  • @@ -190,7 +190,7 @@

    Returns void
    @@ -209,7 +209,7 @@

    Returns void
    @@ -228,7 +228,7 @@

    Returns void
    @@ -260,7 +260,7 @@

    exceptionHandler

    @@ -288,7 +288,7 @@

    setWriteQueueMaxSize

  • @@ -323,7 +323,7 @@

    write

  • @@ -344,7 +344,7 @@

    Returns
    @@ -375,7 +375,7 @@

    writeQueueFull

  • diff --git a/docs/.vuepress/public/@vertx/dropwizard-metrics/index.html b/docs/.vuepress/public/@vertx/dropwizard-metrics/index.html index b164f76f5..4432b4de5 100644 --- a/docs/.vuepress/public/@vertx/dropwizard-metrics/index.html +++ b/docs/.vuepress/public/@vertx/dropwizard-metrics/index.html @@ -63,7 +63,8 @@

    @vertx/dropwizard-metrics

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/health-check/index.html b/docs/.vuepress/public/@vertx/health-check/index.html index 68b2bb0e1..3eeec27ef 100644 --- a/docs/.vuepress/public/@vertx/health-check/index.html +++ b/docs/.vuepress/public/@vertx/health-check/index.html @@ -63,7 +63,8 @@

    @vertx/health-check

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/jdbc-client/index.html b/docs/.vuepress/public/@vertx/jdbc-client/index.html index dc8d844b0..a79b48a8b 100644 --- a/docs/.vuepress/public/@vertx/jdbc-client/index.html +++ b/docs/.vuepress/public/@vertx/jdbc-client/index.html @@ -63,7 +63,8 @@

    @vertx/jdbc-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/jwt/index.html b/docs/.vuepress/public/@vertx/jwt/index.html index 7aed4d06d..17fdd9e99 100644 --- a/docs/.vuepress/public/@vertx/jwt/index.html +++ b/docs/.vuepress/public/@vertx/jwt/index.html @@ -63,7 +63,8 @@

    @vertx/jwt

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/kafka-client/assets/js/search.json b/docs/.vuepress/public/@vertx/kafka-client/assets/js/search.json index 1854de604..a16e5555e 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/kafka-client/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"128":"Class","512":"Constructor","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"ClusterDescription","url":"classes/clusterdescription.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/clusterdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ClusterDescription"},{"id":2,"kind":2048,"name":"getClusterId","url":"classes/clusterdescription.html#getclusterid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":3,"kind":2048,"name":"setClusterId","url":"classes/clusterdescription.html#setclusterid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":4,"kind":2048,"name":"getController","url":"classes/clusterdescription.html#getcontroller","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":5,"kind":2048,"name":"setController","url":"classes/clusterdescription.html#setcontroller","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":6,"kind":2048,"name":"getNodes","url":"classes/clusterdescription.html#getnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":7,"kind":2048,"name":"setNodes","url":"classes/clusterdescription.html#setnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":8,"kind":2048,"name":"addNode","url":"classes/clusterdescription.html#addnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":9,"kind":128,"name":"Config","url":"classes/config.html","classes":"tsd-kind-class"},{"id":10,"kind":512,"name":"constructor","url":"classes/config.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Config"},{"id":11,"kind":2048,"name":"getEntries","url":"classes/config.html#getentries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Config"},{"id":12,"kind":2048,"name":"setEntries","url":"classes/config.html#setentries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Config"},{"id":13,"kind":128,"name":"ConfigEntry","url":"classes/configentry.html","classes":"tsd-kind-class"},{"id":14,"kind":512,"name":"constructor","url":"classes/configentry.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConfigEntry"},{"id":15,"kind":2048,"name":"isDefault","url":"classes/configentry.html#isdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":16,"kind":2048,"name":"setDefault","url":"classes/configentry.html#setdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":17,"kind":2048,"name":"getName","url":"classes/configentry.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":18,"kind":2048,"name":"setName","url":"classes/configentry.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":19,"kind":2048,"name":"isReadOnly","url":"classes/configentry.html#isreadonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":20,"kind":2048,"name":"setReadOnly","url":"classes/configentry.html#setreadonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":21,"kind":2048,"name":"isSensitive","url":"classes/configentry.html#issensitive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":22,"kind":2048,"name":"setSensitive","url":"classes/configentry.html#setsensitive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":23,"kind":2048,"name":"getSource","url":"classes/configentry.html#getsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":24,"kind":2048,"name":"setSource","url":"classes/configentry.html#setsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":25,"kind":2048,"name":"getSynonyms","url":"classes/configentry.html#getsynonyms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":26,"kind":2048,"name":"setSynonyms","url":"classes/configentry.html#setsynonyms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":27,"kind":2048,"name":"getValue","url":"classes/configentry.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":28,"kind":2048,"name":"setValue","url":"classes/configentry.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":29,"kind":128,"name":"ConfigResource","url":"classes/configresource.html","classes":"tsd-kind-class"},{"id":30,"kind":512,"name":"constructor","url":"classes/configresource.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConfigResource"},{"id":31,"kind":2048,"name":"isDefault","url":"classes/configresource.html#isdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":32,"kind":2048,"name":"setDefault","url":"classes/configresource.html#setdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":33,"kind":2048,"name":"getName","url":"classes/configresource.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":34,"kind":2048,"name":"setName","url":"classes/configresource.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":35,"kind":2048,"name":"getType","url":"classes/configresource.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":36,"kind":2048,"name":"setType","url":"classes/configresource.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":37,"kind":128,"name":"ConfigSynonym","url":"classes/configsynonym.html","classes":"tsd-kind-class"},{"id":38,"kind":512,"name":"constructor","url":"classes/configsynonym.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":39,"kind":2048,"name":"getName","url":"classes/configsynonym.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":40,"kind":2048,"name":"setName","url":"classes/configsynonym.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":41,"kind":2048,"name":"getSource","url":"classes/configsynonym.html#getsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":42,"kind":2048,"name":"setSource","url":"classes/configsynonym.html#setsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":43,"kind":2048,"name":"getValue","url":"classes/configsynonym.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":44,"kind":2048,"name":"setValue","url":"classes/configsynonym.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":45,"kind":128,"name":"ConsumerGroupDescription","url":"classes/consumergroupdescription.html","classes":"tsd-kind-class"},{"id":46,"kind":512,"name":"constructor","url":"classes/consumergroupdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":47,"kind":2048,"name":"getCoordinator","url":"classes/consumergroupdescription.html#getcoordinator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":48,"kind":2048,"name":"setCoordinator","url":"classes/consumergroupdescription.html#setcoordinator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":49,"kind":2048,"name":"getGroupId","url":"classes/consumergroupdescription.html#getgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":50,"kind":2048,"name":"setGroupId","url":"classes/consumergroupdescription.html#setgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":51,"kind":2048,"name":"getMembers","url":"classes/consumergroupdescription.html#getmembers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":52,"kind":2048,"name":"setMembers","url":"classes/consumergroupdescription.html#setmembers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":53,"kind":2048,"name":"getPartitionAssignor","url":"classes/consumergroupdescription.html#getpartitionassignor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":54,"kind":2048,"name":"setPartitionAssignor","url":"classes/consumergroupdescription.html#setpartitionassignor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":55,"kind":2048,"name":"isSimpleConsumerGroup","url":"classes/consumergroupdescription.html#issimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":56,"kind":2048,"name":"setSimpleConsumerGroup","url":"classes/consumergroupdescription.html#setsimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":57,"kind":2048,"name":"getState","url":"classes/consumergroupdescription.html#getstate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":58,"kind":2048,"name":"setState","url":"classes/consumergroupdescription.html#setstate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":59,"kind":128,"name":"ConsumerGroupListing","url":"classes/consumergrouplisting.html","classes":"tsd-kind-class"},{"id":60,"kind":512,"name":"constructor","url":"classes/consumergrouplisting.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":61,"kind":2048,"name":"getGroupId","url":"classes/consumergrouplisting.html#getgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":62,"kind":2048,"name":"setGroupId","url":"classes/consumergrouplisting.html#setgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":63,"kind":2048,"name":"isSimpleConsumerGroup","url":"classes/consumergrouplisting.html#issimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":64,"kind":2048,"name":"setSimpleConsumerGroup","url":"classes/consumergrouplisting.html#setsimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":65,"kind":128,"name":"ListConsumerGroupOffsetsOptions","url":"classes/listconsumergroupoffsetsoptions.html","classes":"tsd-kind-class"},{"id":66,"kind":512,"name":"constructor","url":"classes/listconsumergroupoffsetsoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ListConsumerGroupOffsetsOptions"},{"id":67,"kind":128,"name":"MemberAssignment","url":"classes/memberassignment.html","classes":"tsd-kind-class"},{"id":68,"kind":512,"name":"constructor","url":"classes/memberassignment.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MemberAssignment"},{"id":69,"kind":2048,"name":"getTopicPartitions","url":"classes/memberassignment.html#gettopicpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberAssignment"},{"id":70,"kind":2048,"name":"setTopicPartitions","url":"classes/memberassignment.html#settopicpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberAssignment"},{"id":71,"kind":128,"name":"MemberDescription","url":"classes/memberdescription.html","classes":"tsd-kind-class"},{"id":72,"kind":512,"name":"constructor","url":"classes/memberdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MemberDescription"},{"id":73,"kind":2048,"name":"getAssignment","url":"classes/memberdescription.html#getassignment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":74,"kind":2048,"name":"setAssignment","url":"classes/memberdescription.html#setassignment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":75,"kind":2048,"name":"getClientId","url":"classes/memberdescription.html#getclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":76,"kind":2048,"name":"setClientId","url":"classes/memberdescription.html#setclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":77,"kind":2048,"name":"getConsumerId","url":"classes/memberdescription.html#getconsumerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":78,"kind":2048,"name":"setConsumerId","url":"classes/memberdescription.html#setconsumerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":79,"kind":2048,"name":"getHost","url":"classes/memberdescription.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":80,"kind":2048,"name":"setHost","url":"classes/memberdescription.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":81,"kind":128,"name":"NewTopic","url":"classes/newtopic.html","classes":"tsd-kind-class"},{"id":82,"kind":512,"name":"constructor","url":"classes/newtopic.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NewTopic"},{"id":83,"kind":2048,"name":"getConfig","url":"classes/newtopic.html#getconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":84,"kind":2048,"name":"setConfig","url":"classes/newtopic.html#setconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":85,"kind":2048,"name":"getName","url":"classes/newtopic.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":86,"kind":2048,"name":"setName","url":"classes/newtopic.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":87,"kind":2048,"name":"getNumPartitions","url":"classes/newtopic.html#getnumpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":88,"kind":2048,"name":"setNumPartitions","url":"classes/newtopic.html#setnumpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":89,"kind":2048,"name":"getReplicationFactor","url":"classes/newtopic.html#getreplicationfactor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":90,"kind":2048,"name":"setReplicationFactor","url":"classes/newtopic.html#setreplicationfactor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":91,"kind":128,"name":"Node","url":"classes/node.html","classes":"tsd-kind-class"},{"id":92,"kind":512,"name":"constructor","url":"classes/node.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Node"},{"id":93,"kind":2048,"name":"isEmpty","url":"classes/node.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":94,"kind":2048,"name":"setHasRack","url":"classes/node.html#sethasrack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":95,"kind":2048,"name":"getHost","url":"classes/node.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":96,"kind":2048,"name":"setHost","url":"classes/node.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":97,"kind":2048,"name":"getId","url":"classes/node.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":98,"kind":2048,"name":"setId","url":"classes/node.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":99,"kind":2048,"name":"getIdString","url":"classes/node.html#getidstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":100,"kind":2048,"name":"setIdString","url":"classes/node.html#setidstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":101,"kind":2048,"name":"setIsEmpty","url":"classes/node.html#setisempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":102,"kind":2048,"name":"getPort","url":"classes/node.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":103,"kind":2048,"name":"setPort","url":"classes/node.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":104,"kind":2048,"name":"setRack","url":"classes/node.html#setrack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":105,"kind":128,"name":"OffsetAndMetadata","url":"classes/offsetandmetadata.html","classes":"tsd-kind-class"},{"id":106,"kind":512,"name":"constructor","url":"classes/offsetandmetadata.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":107,"kind":2048,"name":"getMetadata","url":"classes/offsetandmetadata.html#getmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":108,"kind":2048,"name":"setMetadata","url":"classes/offsetandmetadata.html#setmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":109,"kind":2048,"name":"getOffset","url":"classes/offsetandmetadata.html#getoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":110,"kind":2048,"name":"setOffset","url":"classes/offsetandmetadata.html#setoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":111,"kind":128,"name":"OffsetAndTimestamp","url":"classes/offsetandtimestamp.html","classes":"tsd-kind-class"},{"id":112,"kind":512,"name":"constructor","url":"classes/offsetandtimestamp.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":113,"kind":2048,"name":"getOffset","url":"classes/offsetandtimestamp.html#getoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":114,"kind":2048,"name":"setOffset","url":"classes/offsetandtimestamp.html#setoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":115,"kind":2048,"name":"getTimestamp","url":"classes/offsetandtimestamp.html#gettimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":116,"kind":2048,"name":"setTimestamp","url":"classes/offsetandtimestamp.html#settimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":117,"kind":128,"name":"PartitionInfo","url":"classes/partitioninfo.html","classes":"tsd-kind-class"},{"id":118,"kind":512,"name":"constructor","url":"classes/partitioninfo.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PartitionInfo"},{"id":119,"kind":2048,"name":"getInSyncReplicas","url":"classes/partitioninfo.html#getinsyncreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":120,"kind":2048,"name":"setInSyncReplicas","url":"classes/partitioninfo.html#setinsyncreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":121,"kind":2048,"name":"getLeader","url":"classes/partitioninfo.html#getleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":122,"kind":2048,"name":"setLeader","url":"classes/partitioninfo.html#setleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":123,"kind":2048,"name":"getPartition","url":"classes/partitioninfo.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":124,"kind":2048,"name":"setPartition","url":"classes/partitioninfo.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":125,"kind":2048,"name":"getReplicas","url":"classes/partitioninfo.html#getreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":126,"kind":2048,"name":"setReplicas","url":"classes/partitioninfo.html#setreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":127,"kind":2048,"name":"getTopic","url":"classes/partitioninfo.html#gettopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":128,"kind":2048,"name":"setTopic","url":"classes/partitioninfo.html#settopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":129,"kind":128,"name":"RecordMetadata","url":"classes/recordmetadata.html","classes":"tsd-kind-class"},{"id":130,"kind":512,"name":"constructor","url":"classes/recordmetadata.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"RecordMetadata"},{"id":131,"kind":2048,"name":"setChecksum","url":"classes/recordmetadata.html#setchecksum","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":132,"kind":2048,"name":"getOffset","url":"classes/recordmetadata.html#getoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":133,"kind":2048,"name":"setOffset","url":"classes/recordmetadata.html#setoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":134,"kind":2048,"name":"getPartition","url":"classes/recordmetadata.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":135,"kind":2048,"name":"setPartition","url":"classes/recordmetadata.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":136,"kind":2048,"name":"getTimestamp","url":"classes/recordmetadata.html#gettimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":137,"kind":2048,"name":"setTimestamp","url":"classes/recordmetadata.html#settimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":138,"kind":2048,"name":"getTopic","url":"classes/recordmetadata.html#gettopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":139,"kind":2048,"name":"setTopic","url":"classes/recordmetadata.html#settopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":140,"kind":128,"name":"TopicDescription","url":"classes/topicdescription.html","classes":"tsd-kind-class"},{"id":141,"kind":512,"name":"constructor","url":"classes/topicdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TopicDescription"},{"id":142,"kind":2048,"name":"isInternal","url":"classes/topicdescription.html#isinternal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":143,"kind":2048,"name":"setInternal","url":"classes/topicdescription.html#setinternal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":144,"kind":2048,"name":"getName","url":"classes/topicdescription.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":145,"kind":2048,"name":"setName","url":"classes/topicdescription.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":146,"kind":2048,"name":"getPartitions","url":"classes/topicdescription.html#getpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":147,"kind":2048,"name":"setPartitions","url":"classes/topicdescription.html#setpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":148,"kind":128,"name":"TopicPartition","url":"classes/topicpartition.html","classes":"tsd-kind-class"},{"id":149,"kind":512,"name":"constructor","url":"classes/topicpartition.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TopicPartition"},{"id":150,"kind":2048,"name":"getPartition","url":"classes/topicpartition.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":151,"kind":2048,"name":"setPartition","url":"classes/topicpartition.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":152,"kind":2048,"name":"getTopic","url":"classes/topicpartition.html#gettopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":153,"kind":2048,"name":"setTopic","url":"classes/topicpartition.html#settopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":154,"kind":128,"name":"TopicPartitionInfo","url":"classes/topicpartitioninfo.html","classes":"tsd-kind-class"},{"id":155,"kind":512,"name":"constructor","url":"classes/topicpartitioninfo.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":156,"kind":2048,"name":"getIsr","url":"classes/topicpartitioninfo.html#getisr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":157,"kind":2048,"name":"setIsr","url":"classes/topicpartitioninfo.html#setisr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":158,"kind":2048,"name":"getLeader","url":"classes/topicpartitioninfo.html#getleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":159,"kind":2048,"name":"setLeader","url":"classes/topicpartitioninfo.html#setleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":160,"kind":2048,"name":"getPartition","url":"classes/topicpartitioninfo.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":161,"kind":2048,"name":"setPartition","url":"classes/topicpartitioninfo.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":162,"kind":2048,"name":"getReplicas","url":"classes/topicpartitioninfo.html#getreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":163,"kind":2048,"name":"setReplicas","url":"classes/topicpartitioninfo.html#setreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":164,"kind":128,"name":"KafkaAdminClient","url":"classes/kafkaadminclient.html","classes":"tsd-kind-class"},{"id":165,"kind":2048,"name":"create","url":"classes/kafkaadminclient.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KafkaAdminClient"},{"id":166,"kind":2048,"name":"listTopics","url":"classes/kafkaadminclient.html#listtopics","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":167,"kind":2048,"name":"createTopics","url":"classes/kafkaadminclient.html#createtopics","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":168,"kind":2048,"name":"deleteTopics","url":"classes/kafkaadminclient.html#deletetopics","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":169,"kind":2048,"name":"listConsumerGroups","url":"classes/kafkaadminclient.html#listconsumergroups","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":170,"kind":2048,"name":"close","url":"classes/kafkaadminclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":171,"kind":2048,"name":"describeCluster","url":"classes/kafkaadminclient.html#describecluster","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":172,"kind":2048,"name":"deleteConsumerGroups","url":"classes/kafkaadminclient.html#deleteconsumergroups","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":173,"kind":2048,"name":"deleteConsumerGroupOffsets","url":"classes/kafkaadminclient.html#deleteconsumergroupoffsets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":174,"kind":128,"name":"KafkaConsumer","url":"classes/kafkaconsumer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":175,"kind":2048,"name":"pipe","url":"classes/kafkaconsumer.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":176,"kind":2048,"name":"pipeTo","url":"classes/kafkaconsumer.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":177,"kind":2048,"name":"create","url":"classes/kafkaconsumer.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaConsumer"},{"id":178,"kind":2048,"name":"exceptionHandler","url":"classes/kafkaconsumer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":179,"kind":2048,"name":"handler","url":"classes/kafkaconsumer.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":180,"kind":2048,"name":"pause","url":"classes/kafkaconsumer.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":181,"kind":2048,"name":"resume","url":"classes/kafkaconsumer.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":182,"kind":2048,"name":"endHandler","url":"classes/kafkaconsumer.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":183,"kind":2048,"name":"fetch","url":"classes/kafkaconsumer.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":184,"kind":2048,"name":"subscribe","url":"classes/kafkaconsumer.html#subscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":185,"kind":2048,"name":"assign","url":"classes/kafkaconsumer.html#assign","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":186,"kind":2048,"name":"assignment","url":"classes/kafkaconsumer.html#assignment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":187,"kind":2048,"name":"unsubscribe","url":"classes/kafkaconsumer.html#unsubscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":188,"kind":2048,"name":"subscription","url":"classes/kafkaconsumer.html#subscription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":189,"kind":2048,"name":"paused","url":"classes/kafkaconsumer.html#paused","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":190,"kind":2048,"name":"partitionsRevokedHandler","url":"classes/kafkaconsumer.html#partitionsrevokedhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":191,"kind":2048,"name":"partitionsAssignedHandler","url":"classes/kafkaconsumer.html#partitionsassignedhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":192,"kind":2048,"name":"seek","url":"classes/kafkaconsumer.html#seek","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":193,"kind":2048,"name":"seekToBeginning","url":"classes/kafkaconsumer.html#seektobeginning","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":194,"kind":2048,"name":"seekToEnd","url":"classes/kafkaconsumer.html#seektoend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":195,"kind":2048,"name":"commit","url":"classes/kafkaconsumer.html#commit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":196,"kind":2048,"name":"committed","url":"classes/kafkaconsumer.html#committed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":197,"kind":2048,"name":"partitionsFor","url":"classes/kafkaconsumer.html#partitionsfor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":198,"kind":2048,"name":"batchHandler","url":"classes/kafkaconsumer.html#batchhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":199,"kind":2048,"name":"close","url":"classes/kafkaconsumer.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":200,"kind":2048,"name":"position","url":"classes/kafkaconsumer.html#position","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":201,"kind":2048,"name":"offsetsForTimes","url":"classes/kafkaconsumer.html#offsetsfortimes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":202,"kind":2048,"name":"beginningOffsets","url":"classes/kafkaconsumer.html#beginningoffsets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":203,"kind":2048,"name":"endOffsets","url":"classes/kafkaconsumer.html#endoffsets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":204,"kind":2048,"name":"pollTimeout","url":"classes/kafkaconsumer.html#polltimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":205,"kind":2048,"name":"poll","url":"classes/kafkaconsumer.html#poll","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":206,"kind":128,"name":"KafkaConsumerRecord","url":"classes/kafkaconsumerrecord.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":207,"kind":2048,"name":"topic","url":"classes/kafkaconsumerrecord.html#topic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":208,"kind":2048,"name":"partition","url":"classes/kafkaconsumerrecord.html#partition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":209,"kind":2048,"name":"offset","url":"classes/kafkaconsumerrecord.html#offset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":210,"kind":2048,"name":"timestamp","url":"classes/kafkaconsumerrecord.html#timestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":211,"kind":2048,"name":"timestampType","url":"classes/kafkaconsumerrecord.html#timestamptype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":212,"kind":2048,"name":"checksum","url":"classes/kafkaconsumerrecord.html#checksum","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":213,"kind":2048,"name":"key","url":"classes/kafkaconsumerrecord.html#key","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":214,"kind":2048,"name":"value","url":"classes/kafkaconsumerrecord.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":215,"kind":2048,"name":"headers","url":"classes/kafkaconsumerrecord.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":216,"kind":128,"name":"KafkaConsumerRecords","url":"classes/kafkaconsumerrecords.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":217,"kind":2048,"name":"size","url":"classes/kafkaconsumerrecords.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecords"},{"id":218,"kind":2048,"name":"isEmpty","url":"classes/kafkaconsumerrecords.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecords"},{"id":219,"kind":2048,"name":"recordAt","url":"classes/kafkaconsumerrecords.html#recordat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecords"},{"id":220,"kind":128,"name":"KafkaHeader","url":"classes/kafkaheader.html","classes":"tsd-kind-class"},{"id":221,"kind":2048,"name":"header","url":"classes/kafkaheader.html#header","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KafkaHeader"},{"id":222,"kind":2048,"name":"key","url":"classes/kafkaheader.html#key","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaHeader"},{"id":223,"kind":2048,"name":"value","url":"classes/kafkaheader.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaHeader"},{"id":224,"kind":128,"name":"KafkaProducer","url":"classes/kafkaproducer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":225,"kind":2048,"name":"end","url":"classes/kafkaproducer.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":226,"kind":2048,"name":"createShared","url":"classes/kafkaproducer.html#createshared","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaProducer"},{"id":227,"kind":2048,"name":"create","url":"classes/kafkaproducer.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaProducer"},{"id":228,"kind":2048,"name":"exceptionHandler","url":"classes/kafkaproducer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":229,"kind":2048,"name":"write","url":"classes/kafkaproducer.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":230,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/kafkaproducer.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":231,"kind":2048,"name":"writeQueueFull","url":"classes/kafkaproducer.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":232,"kind":2048,"name":"drainHandler","url":"classes/kafkaproducer.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":233,"kind":2048,"name":"send","url":"classes/kafkaproducer.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":234,"kind":2048,"name":"partitionsFor","url":"classes/kafkaproducer.html#partitionsfor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":235,"kind":2048,"name":"flush","url":"classes/kafkaproducer.html#flush","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":236,"kind":2048,"name":"close","url":"classes/kafkaproducer.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":237,"kind":128,"name":"KafkaProducerRecord","url":"classes/kafkaproducerrecord.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":238,"kind":2048,"name":"create","url":"classes/kafkaproducerrecord.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaProducerRecord"},{"id":239,"kind":2048,"name":"topic","url":"classes/kafkaproducerrecord.html#topic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":240,"kind":2048,"name":"key","url":"classes/kafkaproducerrecord.html#key","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":241,"kind":2048,"name":"value","url":"classes/kafkaproducerrecord.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":242,"kind":2048,"name":"timestamp","url":"classes/kafkaproducerrecord.html#timestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":243,"kind":2048,"name":"partition","url":"classes/kafkaproducerrecord.html#partition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":244,"kind":2048,"name":"addHeader","url":"classes/kafkaproducerrecord.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":245,"kind":2048,"name":"addHeaders","url":"classes/kafkaproducerrecord.html#addheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":246,"kind":2048,"name":"headers","url":"classes/kafkaproducerrecord.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,32.621]],["parent/0",[]],["name/1",[1,25.43]],["parent/1",[0,3.112]],["name/2",[2,51.08]],["parent/2",[0,3.112]],["name/3",[3,51.08]],["parent/3",[0,3.112]],["name/4",[4,51.08]],["parent/4",[0,3.112]],["name/5",[5,51.08]],["parent/5",[0,3.112]],["name/6",[6,51.08]],["parent/6",[0,3.112]],["name/7",[7,51.08]],["parent/7",[0,3.112]],["name/8",[8,51.08]],["parent/8",[0,3.112]],["name/9",[9,40.094]],["parent/9",[]],["name/10",[1,25.43]],["parent/10",[9,3.825]],["name/11",[10,51.08]],["parent/11",[9,3.825]],["name/12",[11,51.08]],["parent/12",[9,3.825]],["name/13",[12,27.101]],["parent/13",[]],["name/14",[1,25.43]],["parent/14",[12,2.586]],["name/15",[13,45.971]],["parent/15",[12,2.586]],["name/16",[14,45.971]],["parent/16",[12,2.586]],["name/17",[15,38.087]],["parent/17",[12,2.586]],["name/18",[16,38.087]],["parent/18",[12,2.586]],["name/19",[17,51.08]],["parent/19",[12,2.586]],["name/20",[18,51.08]],["parent/20",[12,2.586]],["name/21",[19,51.08]],["parent/21",[12,2.586]],["name/22",[20,51.08]],["parent/22",[12,2.586]],["name/23",[21,45.971]],["parent/23",[12,2.586]],["name/24",[22,45.971]],["parent/24",[12,2.586]],["name/25",[23,51.08]],["parent/25",[12,2.586]],["name/26",[24,51.08]],["parent/26",[12,2.586]],["name/27",[25,45.971]],["parent/27",[12,2.586]],["name/28",[26,45.971]],["parent/28",[12,2.586]],["name/29",[27,33.734]],["parent/29",[]],["name/30",[1,25.43]],["parent/30",[27,3.218]],["name/31",[13,45.971]],["parent/31",[27,3.218]],["name/32",[14,45.971]],["parent/32",[27,3.218]],["name/33",[15,38.087]],["parent/33",[27,3.218]],["name/34",[16,38.087]],["parent/34",[27,3.218]],["name/35",[28,51.08]],["parent/35",[27,3.218]],["name/36",[29,51.08]],["parent/36",[27,3.218]],["name/37",[30,33.734]],["parent/37",[]],["name/38",[1,25.43]],["parent/38",[30,3.218]],["name/39",[15,38.087]],["parent/39",[30,3.218]],["name/40",[16,38.087]],["parent/40",[30,3.218]],["name/41",[21,45.971]],["parent/41",[30,3.218]],["name/42",[22,45.971]],["parent/42",[30,3.218]],["name/43",[25,45.971]],["parent/43",[30,3.218]],["name/44",[26,45.971]],["parent/44",[30,3.218]],["name/45",[31,28.393]],["parent/45",[]],["name/46",[1,25.43]],["parent/46",[31,2.709]],["name/47",[32,51.08]],["parent/47",[31,2.709]],["name/48",[33,51.08]],["parent/48",[31,2.709]],["name/49",[34,45.971]],["parent/49",[31,2.709]],["name/50",[35,45.971]],["parent/50",[31,2.709]],["name/51",[36,51.08]],["parent/51",[31,2.709]],["name/52",[37,51.08]],["parent/52",[31,2.709]],["name/53",[38,51.08]],["parent/53",[31,2.709]],["name/54",[39,51.08]],["parent/54",[31,2.709]],["name/55",[40,45.971]],["parent/55",[31,2.709]],["name/56",[41,45.971]],["parent/56",[31,2.709]],["name/57",[42,51.08]],["parent/57",[31,2.709]],["name/58",[43,51.08]],["parent/58",[31,2.709]],["name/59",[44,36.416]],["parent/59",[]],["name/60",[1,25.43]],["parent/60",[44,3.474]],["name/61",[34,45.971]],["parent/61",[44,3.474]],["name/62",[35,45.971]],["parent/62",[44,3.474]],["name/63",[40,45.971]],["parent/63",[44,3.474]],["name/64",[41,45.971]],["parent/64",[44,3.474]],["name/65",[45,45.971]],["parent/65",[]],["name/66",[1,25.43]],["parent/66",[45,4.386]],["name/67",[46,40.094]],["parent/67",[]],["name/68",[1,25.43]],["parent/68",[46,3.825]],["name/69",[47,51.08]],["parent/69",[46,3.825]],["name/70",[48,51.08]],["parent/70",[46,3.825]],["name/71",[49,31.621]],["parent/71",[]],["name/72",[1,25.43]],["parent/72",[49,3.017]],["name/73",[50,51.08]],["parent/73",[49,3.017]],["name/74",[51,51.08]],["parent/74",[49,3.017]],["name/75",[52,51.08]],["parent/75",[49,3.017]],["name/76",[53,51.08]],["parent/76",[49,3.017]],["name/77",[54,51.08]],["parent/77",[49,3.017]],["name/78",[55,51.08]],["parent/78",[49,3.017]],["name/79",[56,45.971]],["parent/79",[49,3.017]],["name/80",[57,45.971]],["parent/80",[49,3.017]],["name/81",[58,31.621]],["parent/81",[]],["name/82",[1,25.43]],["parent/82",[58,3.017]],["name/83",[59,51.08]],["parent/83",[58,3.017]],["name/84",[60,51.08]],["parent/84",[58,3.017]],["name/85",[15,38.087]],["parent/85",[58,3.017]],["name/86",[16,38.087]],["parent/86",[58,3.017]],["name/87",[61,51.08]],["parent/87",[58,3.017]],["name/88",[62,51.08]],["parent/88",[58,3.017]],["name/89",[63,51.08]],["parent/89",[58,3.017]],["name/90",[64,51.08]],["parent/90",[58,3.017]],["name/91",[65,28.393]],["parent/91",[]],["name/92",[1,25.43]],["parent/92",[65,2.709]],["name/93",[66,45.971]],["parent/93",[65,2.709]],["name/94",[67,51.08]],["parent/94",[65,2.709]],["name/95",[56,45.971]],["parent/95",[65,2.709]],["name/96",[57,45.971]],["parent/96",[65,2.709]],["name/97",[68,51.08]],["parent/97",[65,2.709]],["name/98",[69,51.08]],["parent/98",[65,2.709]],["name/99",[70,51.08]],["parent/99",[65,2.709]],["name/100",[71,51.08]],["parent/100",[65,2.709]],["name/101",[72,51.08]],["parent/101",[65,2.709]],["name/102",[73,51.08]],["parent/102",[65,2.709]],["name/103",[74,51.08]],["parent/103",[65,2.709]],["name/104",[75,51.08]],["parent/104",[65,2.709]],["name/105",[76,36.416]],["parent/105",[]],["name/106",[1,25.43]],["parent/106",[76,3.474]],["name/107",[77,51.08]],["parent/107",[76,3.474]],["name/108",[78,51.08]],["parent/108",[76,3.474]],["name/109",[79,42.607]],["parent/109",[76,3.474]],["name/110",[80,42.607]],["parent/110",[76,3.474]],["name/111",[81,36.416]],["parent/111",[]],["name/112",[1,25.43]],["parent/112",[81,3.474]],["name/113",[79,42.607]],["parent/113",[81,3.474]],["name/114",[80,42.607]],["parent/114",[81,3.474]],["name/115",[82,45.971]],["parent/115",[81,3.474]],["name/116",[83,45.971]],["parent/116",[81,3.474]],["name/117",[84,29.877]],["parent/117",[]],["name/118",[1,25.43]],["parent/118",[84,2.851]],["name/119",[85,51.08]],["parent/119",[84,2.851]],["name/120",[86,51.08]],["parent/120",[84,2.851]],["name/121",[87,45.971]],["parent/121",[84,2.851]],["name/122",[88,45.971]],["parent/122",[84,2.851]],["name/123",[89,40.094]],["parent/123",[84,2.851]],["name/124",[90,40.094]],["parent/124",[84,2.851]],["name/125",[91,45.971]],["parent/125",[84,2.851]],["name/126",[92,45.971]],["parent/126",[84,2.851]],["name/127",[93,42.607]],["parent/127",[84,2.851]],["name/128",[94,42.607]],["parent/128",[84,2.851]],["name/129",[95,30.711]],["parent/129",[]],["name/130",[1,25.43]],["parent/130",[95,2.93]],["name/131",[96,51.08]],["parent/131",[95,2.93]],["name/132",[79,42.607]],["parent/132",[95,2.93]],["name/133",[80,42.607]],["parent/133",[95,2.93]],["name/134",[89,40.094]],["parent/134",[95,2.93]],["name/135",[90,40.094]],["parent/135",[95,2.93]],["name/136",[82,45.971]],["parent/136",[95,2.93]],["name/137",[83,45.971]],["parent/137",[95,2.93]],["name/138",[93,42.607]],["parent/138",[95,2.93]],["name/139",[94,42.607]],["parent/139",[95,2.93]],["name/140",[97,33.734]],["parent/140",[]],["name/141",[1,25.43]],["parent/141",[97,3.218]],["name/142",[98,51.08]],["parent/142",[97,3.218]],["name/143",[99,51.08]],["parent/143",[97,3.218]],["name/144",[15,38.087]],["parent/144",[97,3.218]],["name/145",[16,38.087]],["parent/145",[97,3.218]],["name/146",[100,51.08]],["parent/146",[97,3.218]],["name/147",[101,51.08]],["parent/147",[97,3.218]],["name/148",[102,36.416]],["parent/148",[]],["name/149",[1,25.43]],["parent/149",[102,3.474]],["name/150",[89,40.094]],["parent/150",[102,3.474]],["name/151",[90,40.094]],["parent/151",[102,3.474]],["name/152",[93,42.607]],["parent/152",[102,3.474]],["name/153",[94,42.607]],["parent/153",[102,3.474]],["name/154",[103,31.621]],["parent/154",[]],["name/155",[1,25.43]],["parent/155",[103,3.017]],["name/156",[104,51.08]],["parent/156",[103,3.017]],["name/157",[105,51.08]],["parent/157",[103,3.017]],["name/158",[87,45.971]],["parent/158",[103,3.017]],["name/159",[88,45.971]],["parent/159",[103,3.017]],["name/160",[89,40.094]],["parent/160",[103,3.017]],["name/161",[90,40.094]],["parent/161",[103,3.017]],["name/162",[91,45.971]],["parent/162",[103,3.017]],["name/163",[92,45.971]],["parent/163",[103,3.017]],["name/164",[106,31.621]],["parent/164",[]],["name/165",[107,40.094]],["parent/165",[106,3.017]],["name/166",[108,51.08]],["parent/166",[106,3.017]],["name/167",[109,51.08]],["parent/167",[106,3.017]],["name/168",[110,51.08]],["parent/168",[106,3.017]],["name/169",[111,51.08]],["parent/169",[106,3.017]],["name/170",[112,42.607]],["parent/170",[106,3.017]],["name/171",[113,51.08]],["parent/171",[106,3.017]],["name/172",[114,51.08]],["parent/172",[106,3.017]],["name/173",[115,51.08]],["parent/173",[106,3.017]],["name/174",[116,20.322]],["parent/174",[]],["name/175",[117,51.08]],["parent/175",[116,1.939]],["name/176",[118,51.08]],["parent/176",[116,1.939]],["name/177",[107,40.094]],["parent/177",[116,1.939]],["name/178",[119,45.971]],["parent/178",[116,1.939]],["name/179",[120,51.08]],["parent/179",[116,1.939]],["name/180",[121,51.08]],["parent/180",[116,1.939]],["name/181",[122,51.08]],["parent/181",[116,1.939]],["name/182",[123,51.08]],["parent/182",[116,1.939]],["name/183",[124,51.08]],["parent/183",[116,1.939]],["name/184",[125,51.08]],["parent/184",[116,1.939]],["name/185",[126,51.08]],["parent/185",[116,1.939]],["name/186",[127,51.08]],["parent/186",[116,1.939]],["name/187",[128,51.08]],["parent/187",[116,1.939]],["name/188",[129,51.08]],["parent/188",[116,1.939]],["name/189",[130,51.08]],["parent/189",[116,1.939]],["name/190",[131,51.08]],["parent/190",[116,1.939]],["name/191",[132,51.08]],["parent/191",[116,1.939]],["name/192",[133,51.08]],["parent/192",[116,1.939]],["name/193",[134,51.08]],["parent/193",[116,1.939]],["name/194",[135,51.08]],["parent/194",[116,1.939]],["name/195",[136,51.08]],["parent/195",[116,1.939]],["name/196",[137,51.08]],["parent/196",[116,1.939]],["name/197",[138,45.971]],["parent/197",[116,1.939]],["name/198",[139,51.08]],["parent/198",[116,1.939]],["name/199",[112,42.607]],["parent/199",[116,1.939]],["name/200",[140,51.08]],["parent/200",[116,1.939]],["name/201",[141,51.08]],["parent/201",[116,1.939]],["name/202",[142,51.08]],["parent/202",[116,1.939]],["name/203",[143,51.08]],["parent/203",[116,1.939]],["name/204",[144,51.08]],["parent/204",[116,1.939]],["name/205",[145,51.08]],["parent/205",[116,1.939]],["name/206",[146,31.621]],["parent/206",[]],["name/207",[147,45.971]],["parent/207",[146,3.017]],["name/208",[148,45.971]],["parent/208",[146,3.017]],["name/209",[149,51.08]],["parent/209",[146,3.017]],["name/210",[150,45.971]],["parent/210",[146,3.017]],["name/211",[151,51.08]],["parent/211",[146,3.017]],["name/212",[152,51.08]],["parent/212",[146,3.017]],["name/213",[153,42.607]],["parent/213",[146,3.017]],["name/214",[154,42.607]],["parent/214",[146,3.017]],["name/215",[155,45.971]],["parent/215",[146,3.017]],["name/216",[156,40.094]],["parent/216",[]],["name/217",[157,51.08]],["parent/217",[156,3.825]],["name/218",[66,45.971]],["parent/218",[156,3.825]],["name/219",[158,51.08]],["parent/219",[156,3.825]],["name/220",[159,40.094]],["parent/220",[]],["name/221",[160,51.08]],["parent/221",[159,3.825]],["name/222",[153,42.607]],["parent/222",[159,3.825]],["name/223",[154,42.607]],["parent/223",[159,3.825]],["name/224",[161,29.107]],["parent/224",[]],["name/225",[162,51.08]],["parent/225",[161,2.777]],["name/226",[163,51.08]],["parent/226",[161,2.777]],["name/227",[107,40.094]],["parent/227",[161,2.777]],["name/228",[119,45.971]],["parent/228",[161,2.777]],["name/229",[164,51.08]],["parent/229",[161,2.777]],["name/230",[165,51.08]],["parent/230",[161,2.777]],["name/231",[166,51.08]],["parent/231",[161,2.777]],["name/232",[167,51.08]],["parent/232",[161,2.777]],["name/233",[168,51.08]],["parent/233",[161,2.777]],["name/234",[138,45.971]],["parent/234",[161,2.777]],["name/235",[169,51.08]],["parent/235",[161,2.777]],["name/236",[112,42.607]],["parent/236",[161,2.777]],["name/237",[170,31.621]],["parent/237",[]],["name/238",[107,40.094]],["parent/238",[170,3.017]],["name/239",[147,45.971]],["parent/239",[170,3.017]],["name/240",[153,42.607]],["parent/240",[170,3.017]],["name/241",[154,42.607]],["parent/241",[170,3.017]],["name/242",[150,45.971]],["parent/242",[170,3.017]],["name/243",[148,45.971]],["parent/243",[170,3.017]],["name/244",[171,51.08]],["parent/244",[170,3.017]],["name/245",[172,51.08]],["parent/245",[170,3.017]],["name/246",[155,45.971]],["parent/246",[170,3.017]]],"invertedIndex":[["addheader",{"_index":171,"name":{"244":{}},"parent":{}}],["addheaders",{"_index":172,"name":{"245":{}},"parent":{}}],["addnode",{"_index":8,"name":{"8":{}},"parent":{}}],["assign",{"_index":126,"name":{"185":{}},"parent":{}}],["assignment",{"_index":127,"name":{"186":{}},"parent":{}}],["batchhandler",{"_index":139,"name":{"198":{}},"parent":{}}],["beginningoffsets",{"_index":142,"name":{"202":{}},"parent":{}}],["checksum",{"_index":152,"name":{"212":{}},"parent":{}}],["close",{"_index":112,"name":{"170":{},"199":{},"236":{}},"parent":{}}],["clusterdescription",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{}}}],["commit",{"_index":136,"name":{"195":{}},"parent":{}}],["committed",{"_index":137,"name":{"196":{}},"parent":{}}],["config",{"_index":9,"name":{"9":{}},"parent":{"10":{},"11":{},"12":{}}}],["configentry",{"_index":12,"name":{"13":{}},"parent":{"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{}}}],["configresource",{"_index":27,"name":{"29":{}},"parent":{"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{}}}],["configsynonym",{"_index":30,"name":{"37":{}},"parent":{"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{}}}],["constructor",{"_index":1,"name":{"1":{},"10":{},"14":{},"30":{},"38":{},"46":{},"60":{},"66":{},"68":{},"72":{},"82":{},"92":{},"106":{},"112":{},"118":{},"130":{},"141":{},"149":{},"155":{}},"parent":{}}],["consumergroupdescription",{"_index":31,"name":{"45":{}},"parent":{"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{}}}],["consumergrouplisting",{"_index":44,"name":{"59":{}},"parent":{"60":{},"61":{},"62":{},"63":{},"64":{}}}],["create",{"_index":107,"name":{"165":{},"177":{},"227":{},"238":{}},"parent":{}}],["createshared",{"_index":163,"name":{"226":{}},"parent":{}}],["createtopics",{"_index":109,"name":{"167":{}},"parent":{}}],["deleteconsumergroupoffsets",{"_index":115,"name":{"173":{}},"parent":{}}],["deleteconsumergroups",{"_index":114,"name":{"172":{}},"parent":{}}],["deletetopics",{"_index":110,"name":{"168":{}},"parent":{}}],["describecluster",{"_index":113,"name":{"171":{}},"parent":{}}],["drainhandler",{"_index":167,"name":{"232":{}},"parent":{}}],["end",{"_index":162,"name":{"225":{}},"parent":{}}],["endhandler",{"_index":123,"name":{"182":{}},"parent":{}}],["endoffsets",{"_index":143,"name":{"203":{}},"parent":{}}],["exceptionhandler",{"_index":119,"name":{"178":{},"228":{}},"parent":{}}],["fetch",{"_index":124,"name":{"183":{}},"parent":{}}],["flush",{"_index":169,"name":{"235":{}},"parent":{}}],["getassignment",{"_index":50,"name":{"73":{}},"parent":{}}],["getclientid",{"_index":52,"name":{"75":{}},"parent":{}}],["getclusterid",{"_index":2,"name":{"2":{}},"parent":{}}],["getconfig",{"_index":59,"name":{"83":{}},"parent":{}}],["getconsumerid",{"_index":54,"name":{"77":{}},"parent":{}}],["getcontroller",{"_index":4,"name":{"4":{}},"parent":{}}],["getcoordinator",{"_index":32,"name":{"47":{}},"parent":{}}],["getentries",{"_index":10,"name":{"11":{}},"parent":{}}],["getgroupid",{"_index":34,"name":{"49":{},"61":{}},"parent":{}}],["gethost",{"_index":56,"name":{"79":{},"95":{}},"parent":{}}],["getid",{"_index":68,"name":{"97":{}},"parent":{}}],["getidstring",{"_index":70,"name":{"99":{}},"parent":{}}],["getinsyncreplicas",{"_index":85,"name":{"119":{}},"parent":{}}],["getisr",{"_index":104,"name":{"156":{}},"parent":{}}],["getleader",{"_index":87,"name":{"121":{},"158":{}},"parent":{}}],["getmembers",{"_index":36,"name":{"51":{}},"parent":{}}],["getmetadata",{"_index":77,"name":{"107":{}},"parent":{}}],["getname",{"_index":15,"name":{"17":{},"33":{},"39":{},"85":{},"144":{}},"parent":{}}],["getnodes",{"_index":6,"name":{"6":{}},"parent":{}}],["getnumpartitions",{"_index":61,"name":{"87":{}},"parent":{}}],["getoffset",{"_index":79,"name":{"109":{},"113":{},"132":{}},"parent":{}}],["getpartition",{"_index":89,"name":{"123":{},"134":{},"150":{},"160":{}},"parent":{}}],["getpartitionassignor",{"_index":38,"name":{"53":{}},"parent":{}}],["getpartitions",{"_index":100,"name":{"146":{}},"parent":{}}],["getport",{"_index":73,"name":{"102":{}},"parent":{}}],["getreplicas",{"_index":91,"name":{"125":{},"162":{}},"parent":{}}],["getreplicationfactor",{"_index":63,"name":{"89":{}},"parent":{}}],["getsource",{"_index":21,"name":{"23":{},"41":{}},"parent":{}}],["getstate",{"_index":42,"name":{"57":{}},"parent":{}}],["getsynonyms",{"_index":23,"name":{"25":{}},"parent":{}}],["gettimestamp",{"_index":82,"name":{"115":{},"136":{}},"parent":{}}],["gettopic",{"_index":93,"name":{"127":{},"138":{},"152":{}},"parent":{}}],["gettopicpartitions",{"_index":47,"name":{"69":{}},"parent":{}}],["gettype",{"_index":28,"name":{"35":{}},"parent":{}}],["getvalue",{"_index":25,"name":{"27":{},"43":{}},"parent":{}}],["handler",{"_index":120,"name":{"179":{}},"parent":{}}],["header",{"_index":160,"name":{"221":{}},"parent":{}}],["headers",{"_index":155,"name":{"215":{},"246":{}},"parent":{}}],["isdefault",{"_index":13,"name":{"15":{},"31":{}},"parent":{}}],["isempty",{"_index":66,"name":{"93":{},"218":{}},"parent":{}}],["isinternal",{"_index":98,"name":{"142":{}},"parent":{}}],["isreadonly",{"_index":17,"name":{"19":{}},"parent":{}}],["issensitive",{"_index":19,"name":{"21":{}},"parent":{}}],["issimpleconsumergroup",{"_index":40,"name":{"55":{},"63":{}},"parent":{}}],["kafkaadminclient",{"_index":106,"name":{"164":{}},"parent":{"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{}}}],["kafkaconsumer",{"_index":116,"name":{"174":{}},"parent":{"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{}}}],["kafkaconsumerrecord",{"_index":146,"name":{"206":{}},"parent":{"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{}}}],["kafkaconsumerrecords",{"_index":156,"name":{"216":{}},"parent":{"217":{},"218":{},"219":{}}}],["kafkaheader",{"_index":159,"name":{"220":{}},"parent":{"221":{},"222":{},"223":{}}}],["kafkaproducer",{"_index":161,"name":{"224":{}},"parent":{"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{}}}],["kafkaproducerrecord",{"_index":170,"name":{"237":{}},"parent":{"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{},"245":{},"246":{}}}],["key",{"_index":153,"name":{"213":{},"222":{},"240":{}},"parent":{}}],["listconsumergroupoffsetsoptions",{"_index":45,"name":{"65":{}},"parent":{"66":{}}}],["listconsumergroups",{"_index":111,"name":{"169":{}},"parent":{}}],["listtopics",{"_index":108,"name":{"166":{}},"parent":{}}],["memberassignment",{"_index":46,"name":{"67":{}},"parent":{"68":{},"69":{},"70":{}}}],["memberdescription",{"_index":49,"name":{"71":{}},"parent":{"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{}}}],["newtopic",{"_index":58,"name":{"81":{}},"parent":{"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{}}}],["node",{"_index":65,"name":{"91":{}},"parent":{"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{}}}],["offset",{"_index":149,"name":{"209":{}},"parent":{}}],["offsetandmetadata",{"_index":76,"name":{"105":{}},"parent":{"106":{},"107":{},"108":{},"109":{},"110":{}}}],["offsetandtimestamp",{"_index":81,"name":{"111":{}},"parent":{"112":{},"113":{},"114":{},"115":{},"116":{}}}],["offsetsfortimes",{"_index":141,"name":{"201":{}},"parent":{}}],["partition",{"_index":148,"name":{"208":{},"243":{}},"parent":{}}],["partitioninfo",{"_index":84,"name":{"117":{}},"parent":{"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{}}}],["partitionsassignedhandler",{"_index":132,"name":{"191":{}},"parent":{}}],["partitionsfor",{"_index":138,"name":{"197":{},"234":{}},"parent":{}}],["partitionsrevokedhandler",{"_index":131,"name":{"190":{}},"parent":{}}],["pause",{"_index":121,"name":{"180":{}},"parent":{}}],["paused",{"_index":130,"name":{"189":{}},"parent":{}}],["pipe",{"_index":117,"name":{"175":{}},"parent":{}}],["pipeto",{"_index":118,"name":{"176":{}},"parent":{}}],["poll",{"_index":145,"name":{"205":{}},"parent":{}}],["polltimeout",{"_index":144,"name":{"204":{}},"parent":{}}],["position",{"_index":140,"name":{"200":{}},"parent":{}}],["recordat",{"_index":158,"name":{"219":{}},"parent":{}}],["recordmetadata",{"_index":95,"name":{"129":{}},"parent":{"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{}}}],["resume",{"_index":122,"name":{"181":{}},"parent":{}}],["seek",{"_index":133,"name":{"192":{}},"parent":{}}],["seektobeginning",{"_index":134,"name":{"193":{}},"parent":{}}],["seektoend",{"_index":135,"name":{"194":{}},"parent":{}}],["send",{"_index":168,"name":{"233":{}},"parent":{}}],["setassignment",{"_index":51,"name":{"74":{}},"parent":{}}],["setchecksum",{"_index":96,"name":{"131":{}},"parent":{}}],["setclientid",{"_index":53,"name":{"76":{}},"parent":{}}],["setclusterid",{"_index":3,"name":{"3":{}},"parent":{}}],["setconfig",{"_index":60,"name":{"84":{}},"parent":{}}],["setconsumerid",{"_index":55,"name":{"78":{}},"parent":{}}],["setcontroller",{"_index":5,"name":{"5":{}},"parent":{}}],["setcoordinator",{"_index":33,"name":{"48":{}},"parent":{}}],["setdefault",{"_index":14,"name":{"16":{},"32":{}},"parent":{}}],["setentries",{"_index":11,"name":{"12":{}},"parent":{}}],["setgroupid",{"_index":35,"name":{"50":{},"62":{}},"parent":{}}],["sethasrack",{"_index":67,"name":{"94":{}},"parent":{}}],["sethost",{"_index":57,"name":{"80":{},"96":{}},"parent":{}}],["setid",{"_index":69,"name":{"98":{}},"parent":{}}],["setidstring",{"_index":71,"name":{"100":{}},"parent":{}}],["setinsyncreplicas",{"_index":86,"name":{"120":{}},"parent":{}}],["setinternal",{"_index":99,"name":{"143":{}},"parent":{}}],["setisempty",{"_index":72,"name":{"101":{}},"parent":{}}],["setisr",{"_index":105,"name":{"157":{}},"parent":{}}],["setleader",{"_index":88,"name":{"122":{},"159":{}},"parent":{}}],["setmembers",{"_index":37,"name":{"52":{}},"parent":{}}],["setmetadata",{"_index":78,"name":{"108":{}},"parent":{}}],["setname",{"_index":16,"name":{"18":{},"34":{},"40":{},"86":{},"145":{}},"parent":{}}],["setnodes",{"_index":7,"name":{"7":{}},"parent":{}}],["setnumpartitions",{"_index":62,"name":{"88":{}},"parent":{}}],["setoffset",{"_index":80,"name":{"110":{},"114":{},"133":{}},"parent":{}}],["setpartition",{"_index":90,"name":{"124":{},"135":{},"151":{},"161":{}},"parent":{}}],["setpartitionassignor",{"_index":39,"name":{"54":{}},"parent":{}}],["setpartitions",{"_index":101,"name":{"147":{}},"parent":{}}],["setport",{"_index":74,"name":{"103":{}},"parent":{}}],["setrack",{"_index":75,"name":{"104":{}},"parent":{}}],["setreadonly",{"_index":18,"name":{"20":{}},"parent":{}}],["setreplicas",{"_index":92,"name":{"126":{},"163":{}},"parent":{}}],["setreplicationfactor",{"_index":64,"name":{"90":{}},"parent":{}}],["setsensitive",{"_index":20,"name":{"22":{}},"parent":{}}],["setsimpleconsumergroup",{"_index":41,"name":{"56":{},"64":{}},"parent":{}}],["setsource",{"_index":22,"name":{"24":{},"42":{}},"parent":{}}],["setstate",{"_index":43,"name":{"58":{}},"parent":{}}],["setsynonyms",{"_index":24,"name":{"26":{}},"parent":{}}],["settimestamp",{"_index":83,"name":{"116":{},"137":{}},"parent":{}}],["settopic",{"_index":94,"name":{"128":{},"139":{},"153":{}},"parent":{}}],["settopicpartitions",{"_index":48,"name":{"70":{}},"parent":{}}],["settype",{"_index":29,"name":{"36":{}},"parent":{}}],["setvalue",{"_index":26,"name":{"28":{},"44":{}},"parent":{}}],["setwritequeuemaxsize",{"_index":165,"name":{"230":{}},"parent":{}}],["size",{"_index":157,"name":{"217":{}},"parent":{}}],["subscribe",{"_index":125,"name":{"184":{}},"parent":{}}],["subscription",{"_index":129,"name":{"188":{}},"parent":{}}],["timestamp",{"_index":150,"name":{"210":{},"242":{}},"parent":{}}],["timestamptype",{"_index":151,"name":{"211":{}},"parent":{}}],["topic",{"_index":147,"name":{"207":{},"239":{}},"parent":{}}],["topicdescription",{"_index":97,"name":{"140":{}},"parent":{"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{}}}],["topicpartition",{"_index":102,"name":{"148":{}},"parent":{"149":{},"150":{},"151":{},"152":{},"153":{}}}],["topicpartitioninfo",{"_index":103,"name":{"154":{}},"parent":{"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{}}}],["unsubscribe",{"_index":128,"name":{"187":{}},"parent":{}}],["value",{"_index":154,"name":{"214":{},"223":{},"241":{}},"parent":{}}],["write",{"_index":164,"name":{"229":{}},"parent":{}}],["writequeuefull",{"_index":166,"name":{"231":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"128":"Class","512":"Constructor","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"ClusterDescription","url":"classes/clusterdescription.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/clusterdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ClusterDescription"},{"id":2,"kind":2048,"name":"getClusterId","url":"classes/clusterdescription.html#getclusterid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":3,"kind":2048,"name":"setClusterId","url":"classes/clusterdescription.html#setclusterid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":4,"kind":2048,"name":"getController","url":"classes/clusterdescription.html#getcontroller","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":5,"kind":2048,"name":"setController","url":"classes/clusterdescription.html#setcontroller","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":6,"kind":2048,"name":"getNodes","url":"classes/clusterdescription.html#getnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":7,"kind":2048,"name":"setNodes","url":"classes/clusterdescription.html#setnodes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":8,"kind":2048,"name":"addNode","url":"classes/clusterdescription.html#addnode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ClusterDescription"},{"id":9,"kind":128,"name":"Config","url":"classes/config.html","classes":"tsd-kind-class"},{"id":10,"kind":512,"name":"constructor","url":"classes/config.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Config"},{"id":11,"kind":2048,"name":"getEntries","url":"classes/config.html#getentries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Config"},{"id":12,"kind":2048,"name":"setEntries","url":"classes/config.html#setentries","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Config"},{"id":13,"kind":128,"name":"ConfigEntry","url":"classes/configentry.html","classes":"tsd-kind-class"},{"id":14,"kind":512,"name":"constructor","url":"classes/configentry.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConfigEntry"},{"id":15,"kind":2048,"name":"isDefault","url":"classes/configentry.html#isdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":16,"kind":2048,"name":"setDefault","url":"classes/configentry.html#setdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":17,"kind":2048,"name":"getName","url":"classes/configentry.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":18,"kind":2048,"name":"setName","url":"classes/configentry.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":19,"kind":2048,"name":"isReadOnly","url":"classes/configentry.html#isreadonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":20,"kind":2048,"name":"setReadOnly","url":"classes/configentry.html#setreadonly","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":21,"kind":2048,"name":"isSensitive","url":"classes/configentry.html#issensitive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":22,"kind":2048,"name":"setSensitive","url":"classes/configentry.html#setsensitive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":23,"kind":2048,"name":"getSource","url":"classes/configentry.html#getsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":24,"kind":2048,"name":"setSource","url":"classes/configentry.html#setsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":25,"kind":2048,"name":"getSynonyms","url":"classes/configentry.html#getsynonyms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":26,"kind":2048,"name":"setSynonyms","url":"classes/configentry.html#setsynonyms","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":27,"kind":2048,"name":"getValue","url":"classes/configentry.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":28,"kind":2048,"name":"setValue","url":"classes/configentry.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigEntry"},{"id":29,"kind":128,"name":"ConfigResource","url":"classes/configresource.html","classes":"tsd-kind-class"},{"id":30,"kind":512,"name":"constructor","url":"classes/configresource.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConfigResource"},{"id":31,"kind":2048,"name":"isDefault","url":"classes/configresource.html#isdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":32,"kind":2048,"name":"setDefault","url":"classes/configresource.html#setdefault","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":33,"kind":2048,"name":"getName","url":"classes/configresource.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":34,"kind":2048,"name":"setName","url":"classes/configresource.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":35,"kind":2048,"name":"getType","url":"classes/configresource.html#gettype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":36,"kind":2048,"name":"setType","url":"classes/configresource.html#settype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigResource"},{"id":37,"kind":128,"name":"ConfigSynonym","url":"classes/configsynonym.html","classes":"tsd-kind-class"},{"id":38,"kind":512,"name":"constructor","url":"classes/configsynonym.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":39,"kind":2048,"name":"getName","url":"classes/configsynonym.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":40,"kind":2048,"name":"setName","url":"classes/configsynonym.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":41,"kind":2048,"name":"getSource","url":"classes/configsynonym.html#getsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":42,"kind":2048,"name":"setSource","url":"classes/configsynonym.html#setsource","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":43,"kind":2048,"name":"getValue","url":"classes/configsynonym.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":44,"kind":2048,"name":"setValue","url":"classes/configsynonym.html#setvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConfigSynonym"},{"id":45,"kind":128,"name":"ConsumerGroupDescription","url":"classes/consumergroupdescription.html","classes":"tsd-kind-class"},{"id":46,"kind":512,"name":"constructor","url":"classes/consumergroupdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":47,"kind":2048,"name":"getCoordinator","url":"classes/consumergroupdescription.html#getcoordinator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":48,"kind":2048,"name":"setCoordinator","url":"classes/consumergroupdescription.html#setcoordinator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":49,"kind":2048,"name":"getGroupId","url":"classes/consumergroupdescription.html#getgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":50,"kind":2048,"name":"setGroupId","url":"classes/consumergroupdescription.html#setgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":51,"kind":2048,"name":"getMembers","url":"classes/consumergroupdescription.html#getmembers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":52,"kind":2048,"name":"setMembers","url":"classes/consumergroupdescription.html#setmembers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":53,"kind":2048,"name":"getPartitionAssignor","url":"classes/consumergroupdescription.html#getpartitionassignor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":54,"kind":2048,"name":"setPartitionAssignor","url":"classes/consumergroupdescription.html#setpartitionassignor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":55,"kind":2048,"name":"isSimpleConsumerGroup","url":"classes/consumergroupdescription.html#issimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":56,"kind":2048,"name":"setSimpleConsumerGroup","url":"classes/consumergroupdescription.html#setsimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":57,"kind":2048,"name":"getState","url":"classes/consumergroupdescription.html#getstate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":58,"kind":2048,"name":"setState","url":"classes/consumergroupdescription.html#setstate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupDescription"},{"id":59,"kind":128,"name":"ConsumerGroupListing","url":"classes/consumergrouplisting.html","classes":"tsd-kind-class"},{"id":60,"kind":512,"name":"constructor","url":"classes/consumergrouplisting.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":61,"kind":2048,"name":"getGroupId","url":"classes/consumergrouplisting.html#getgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":62,"kind":2048,"name":"setGroupId","url":"classes/consumergrouplisting.html#setgroupid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":63,"kind":2048,"name":"isSimpleConsumerGroup","url":"classes/consumergrouplisting.html#issimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":64,"kind":2048,"name":"setSimpleConsumerGroup","url":"classes/consumergrouplisting.html#setsimpleconsumergroup","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ConsumerGroupListing"},{"id":65,"kind":128,"name":"ListConsumerGroupOffsetsOptions","url":"classes/listconsumergroupoffsetsoptions.html","classes":"tsd-kind-class"},{"id":66,"kind":512,"name":"constructor","url":"classes/listconsumergroupoffsetsoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ListConsumerGroupOffsetsOptions"},{"id":67,"kind":128,"name":"MemberAssignment","url":"classes/memberassignment.html","classes":"tsd-kind-class"},{"id":68,"kind":512,"name":"constructor","url":"classes/memberassignment.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MemberAssignment"},{"id":69,"kind":2048,"name":"getTopicPartitions","url":"classes/memberassignment.html#gettopicpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberAssignment"},{"id":70,"kind":2048,"name":"setTopicPartitions","url":"classes/memberassignment.html#settopicpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberAssignment"},{"id":71,"kind":128,"name":"MemberDescription","url":"classes/memberdescription.html","classes":"tsd-kind-class"},{"id":72,"kind":512,"name":"constructor","url":"classes/memberdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MemberDescription"},{"id":73,"kind":2048,"name":"getAssignment","url":"classes/memberdescription.html#getassignment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":74,"kind":2048,"name":"setAssignment","url":"classes/memberdescription.html#setassignment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":75,"kind":2048,"name":"getClientId","url":"classes/memberdescription.html#getclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":76,"kind":2048,"name":"setClientId","url":"classes/memberdescription.html#setclientid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":77,"kind":2048,"name":"getConsumerId","url":"classes/memberdescription.html#getconsumerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":78,"kind":2048,"name":"setConsumerId","url":"classes/memberdescription.html#setconsumerid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":79,"kind":2048,"name":"getHost","url":"classes/memberdescription.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":80,"kind":2048,"name":"setHost","url":"classes/memberdescription.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MemberDescription"},{"id":81,"kind":128,"name":"NewTopic","url":"classes/newtopic.html","classes":"tsd-kind-class"},{"id":82,"kind":512,"name":"constructor","url":"classes/newtopic.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"NewTopic"},{"id":83,"kind":2048,"name":"getConfig","url":"classes/newtopic.html#getconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":84,"kind":2048,"name":"setConfig","url":"classes/newtopic.html#setconfig","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":85,"kind":2048,"name":"getName","url":"classes/newtopic.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":86,"kind":2048,"name":"setName","url":"classes/newtopic.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":87,"kind":2048,"name":"getNumPartitions","url":"classes/newtopic.html#getnumpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":88,"kind":2048,"name":"setNumPartitions","url":"classes/newtopic.html#setnumpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":89,"kind":2048,"name":"getReplicationFactor","url":"classes/newtopic.html#getreplicationfactor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":90,"kind":2048,"name":"setReplicationFactor","url":"classes/newtopic.html#setreplicationfactor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"NewTopic"},{"id":91,"kind":128,"name":"Node","url":"classes/node.html","classes":"tsd-kind-class"},{"id":92,"kind":512,"name":"constructor","url":"classes/node.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Node"},{"id":93,"kind":2048,"name":"isEmpty","url":"classes/node.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":94,"kind":2048,"name":"setHasRack","url":"classes/node.html#sethasrack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":95,"kind":2048,"name":"getHost","url":"classes/node.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":96,"kind":2048,"name":"setHost","url":"classes/node.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":97,"kind":2048,"name":"getId","url":"classes/node.html#getid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":98,"kind":2048,"name":"setId","url":"classes/node.html#setid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":99,"kind":2048,"name":"getIdString","url":"classes/node.html#getidstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":100,"kind":2048,"name":"setIdString","url":"classes/node.html#setidstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":101,"kind":2048,"name":"setIsEmpty","url":"classes/node.html#setisempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":102,"kind":2048,"name":"getPort","url":"classes/node.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":103,"kind":2048,"name":"setPort","url":"classes/node.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":104,"kind":2048,"name":"setRack","url":"classes/node.html#setrack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Node"},{"id":105,"kind":128,"name":"OffsetAndMetadata","url":"classes/offsetandmetadata.html","classes":"tsd-kind-class"},{"id":106,"kind":512,"name":"constructor","url":"classes/offsetandmetadata.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":107,"kind":2048,"name":"getMetadata","url":"classes/offsetandmetadata.html#getmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":108,"kind":2048,"name":"setMetadata","url":"classes/offsetandmetadata.html#setmetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":109,"kind":2048,"name":"getOffset","url":"classes/offsetandmetadata.html#getoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":110,"kind":2048,"name":"setOffset","url":"classes/offsetandmetadata.html#setoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndMetadata"},{"id":111,"kind":128,"name":"OffsetAndTimestamp","url":"classes/offsetandtimestamp.html","classes":"tsd-kind-class"},{"id":112,"kind":512,"name":"constructor","url":"classes/offsetandtimestamp.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":113,"kind":2048,"name":"getOffset","url":"classes/offsetandtimestamp.html#getoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":114,"kind":2048,"name":"setOffset","url":"classes/offsetandtimestamp.html#setoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":115,"kind":2048,"name":"getTimestamp","url":"classes/offsetandtimestamp.html#gettimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":116,"kind":2048,"name":"setTimestamp","url":"classes/offsetandtimestamp.html#settimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"OffsetAndTimestamp"},{"id":117,"kind":128,"name":"PartitionInfo","url":"classes/partitioninfo.html","classes":"tsd-kind-class"},{"id":118,"kind":512,"name":"constructor","url":"classes/partitioninfo.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PartitionInfo"},{"id":119,"kind":2048,"name":"getInSyncReplicas","url":"classes/partitioninfo.html#getinsyncreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":120,"kind":2048,"name":"setInSyncReplicas","url":"classes/partitioninfo.html#setinsyncreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":121,"kind":2048,"name":"getLeader","url":"classes/partitioninfo.html#getleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":122,"kind":2048,"name":"setLeader","url":"classes/partitioninfo.html#setleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":123,"kind":2048,"name":"getPartition","url":"classes/partitioninfo.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":124,"kind":2048,"name":"setPartition","url":"classes/partitioninfo.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":125,"kind":2048,"name":"getReplicas","url":"classes/partitioninfo.html#getreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":126,"kind":2048,"name":"setReplicas","url":"classes/partitioninfo.html#setreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":127,"kind":2048,"name":"getTopic","url":"classes/partitioninfo.html#gettopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":128,"kind":2048,"name":"setTopic","url":"classes/partitioninfo.html#settopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PartitionInfo"},{"id":129,"kind":128,"name":"RecordMetadata","url":"classes/recordmetadata.html","classes":"tsd-kind-class"},{"id":130,"kind":512,"name":"constructor","url":"classes/recordmetadata.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"RecordMetadata"},{"id":131,"kind":2048,"name":"setChecksum","url":"classes/recordmetadata.html#setchecksum","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":132,"kind":2048,"name":"getOffset","url":"classes/recordmetadata.html#getoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":133,"kind":2048,"name":"setOffset","url":"classes/recordmetadata.html#setoffset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":134,"kind":2048,"name":"getPartition","url":"classes/recordmetadata.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":135,"kind":2048,"name":"setPartition","url":"classes/recordmetadata.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":136,"kind":2048,"name":"getTimestamp","url":"classes/recordmetadata.html#gettimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":137,"kind":2048,"name":"setTimestamp","url":"classes/recordmetadata.html#settimestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":138,"kind":2048,"name":"getTopic","url":"classes/recordmetadata.html#gettopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":139,"kind":2048,"name":"setTopic","url":"classes/recordmetadata.html#settopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RecordMetadata"},{"id":140,"kind":128,"name":"TopicDescription","url":"classes/topicdescription.html","classes":"tsd-kind-class"},{"id":141,"kind":512,"name":"constructor","url":"classes/topicdescription.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TopicDescription"},{"id":142,"kind":2048,"name":"isInternal","url":"classes/topicdescription.html#isinternal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":143,"kind":2048,"name":"setInternal","url":"classes/topicdescription.html#setinternal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":144,"kind":2048,"name":"getName","url":"classes/topicdescription.html#getname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":145,"kind":2048,"name":"setName","url":"classes/topicdescription.html#setname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":146,"kind":2048,"name":"getPartitions","url":"classes/topicdescription.html#getpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":147,"kind":2048,"name":"setPartitions","url":"classes/topicdescription.html#setpartitions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicDescription"},{"id":148,"kind":128,"name":"TopicPartition","url":"classes/topicpartition.html","classes":"tsd-kind-class"},{"id":149,"kind":512,"name":"constructor","url":"classes/topicpartition.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TopicPartition"},{"id":150,"kind":2048,"name":"getPartition","url":"classes/topicpartition.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":151,"kind":2048,"name":"setPartition","url":"classes/topicpartition.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":152,"kind":2048,"name":"getTopic","url":"classes/topicpartition.html#gettopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":153,"kind":2048,"name":"setTopic","url":"classes/topicpartition.html#settopic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartition"},{"id":154,"kind":128,"name":"TopicPartitionInfo","url":"classes/topicpartitioninfo.html","classes":"tsd-kind-class"},{"id":155,"kind":512,"name":"constructor","url":"classes/topicpartitioninfo.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":156,"kind":2048,"name":"getIsr","url":"classes/topicpartitioninfo.html#getisr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":157,"kind":2048,"name":"setIsr","url":"classes/topicpartitioninfo.html#setisr","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":158,"kind":2048,"name":"getLeader","url":"classes/topicpartitioninfo.html#getleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":159,"kind":2048,"name":"setLeader","url":"classes/topicpartitioninfo.html#setleader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":160,"kind":2048,"name":"getPartition","url":"classes/topicpartitioninfo.html#getpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":161,"kind":2048,"name":"setPartition","url":"classes/topicpartitioninfo.html#setpartition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":162,"kind":2048,"name":"getReplicas","url":"classes/topicpartitioninfo.html#getreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":163,"kind":2048,"name":"setReplicas","url":"classes/topicpartitioninfo.html#setreplicas","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TopicPartitionInfo"},{"id":164,"kind":128,"name":"KafkaAdminClient","url":"classes/kafkaadminclient.html","classes":"tsd-kind-class"},{"id":165,"kind":2048,"name":"create","url":"classes/kafkaadminclient.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KafkaAdminClient"},{"id":166,"kind":2048,"name":"listTopics","url":"classes/kafkaadminclient.html#listtopics","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":167,"kind":2048,"name":"createTopics","url":"classes/kafkaadminclient.html#createtopics","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":168,"kind":2048,"name":"deleteTopics","url":"classes/kafkaadminclient.html#deletetopics","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":169,"kind":2048,"name":"listConsumerGroups","url":"classes/kafkaadminclient.html#listconsumergroups","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":170,"kind":2048,"name":"close","url":"classes/kafkaadminclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":171,"kind":2048,"name":"describeCluster","url":"classes/kafkaadminclient.html#describecluster","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":172,"kind":2048,"name":"deleteConsumerGroups","url":"classes/kafkaadminclient.html#deleteconsumergroups","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":173,"kind":2048,"name":"deleteConsumerGroupOffsets","url":"classes/kafkaadminclient.html#deleteconsumergroupoffsets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaAdminClient"},{"id":174,"kind":128,"name":"KafkaConsumer","url":"classes/kafkaconsumer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":175,"kind":2048,"name":"pipe","url":"classes/kafkaconsumer.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":176,"kind":2048,"name":"pipeTo","url":"classes/kafkaconsumer.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":177,"kind":2048,"name":"create","url":"classes/kafkaconsumer.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaConsumer"},{"id":178,"kind":2048,"name":"exceptionHandler","url":"classes/kafkaconsumer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":179,"kind":2048,"name":"handler","url":"classes/kafkaconsumer.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":180,"kind":2048,"name":"pause","url":"classes/kafkaconsumer.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":181,"kind":2048,"name":"resume","url":"classes/kafkaconsumer.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":182,"kind":2048,"name":"endHandler","url":"classes/kafkaconsumer.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":183,"kind":2048,"name":"fetch","url":"classes/kafkaconsumer.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":184,"kind":2048,"name":"demand","url":"classes/kafkaconsumer.html#demand","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":185,"kind":2048,"name":"subscribe","url":"classes/kafkaconsumer.html#subscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":186,"kind":2048,"name":"assign","url":"classes/kafkaconsumer.html#assign","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":187,"kind":2048,"name":"assignment","url":"classes/kafkaconsumer.html#assignment","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":188,"kind":2048,"name":"unsubscribe","url":"classes/kafkaconsumer.html#unsubscribe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":189,"kind":2048,"name":"subscription","url":"classes/kafkaconsumer.html#subscription","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":190,"kind":2048,"name":"paused","url":"classes/kafkaconsumer.html#paused","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":191,"kind":2048,"name":"partitionsRevokedHandler","url":"classes/kafkaconsumer.html#partitionsrevokedhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":192,"kind":2048,"name":"partitionsAssignedHandler","url":"classes/kafkaconsumer.html#partitionsassignedhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":193,"kind":2048,"name":"seek","url":"classes/kafkaconsumer.html#seek","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":194,"kind":2048,"name":"seekToBeginning","url":"classes/kafkaconsumer.html#seektobeginning","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":195,"kind":2048,"name":"seekToEnd","url":"classes/kafkaconsumer.html#seektoend","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":196,"kind":2048,"name":"commit","url":"classes/kafkaconsumer.html#commit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":197,"kind":2048,"name":"committed","url":"classes/kafkaconsumer.html#committed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":198,"kind":2048,"name":"partitionsFor","url":"classes/kafkaconsumer.html#partitionsfor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":199,"kind":2048,"name":"batchHandler","url":"classes/kafkaconsumer.html#batchhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":200,"kind":2048,"name":"close","url":"classes/kafkaconsumer.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":201,"kind":2048,"name":"position","url":"classes/kafkaconsumer.html#position","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":202,"kind":2048,"name":"offsetsForTimes","url":"classes/kafkaconsumer.html#offsetsfortimes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":203,"kind":2048,"name":"beginningOffsets","url":"classes/kafkaconsumer.html#beginningoffsets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":204,"kind":2048,"name":"endOffsets","url":"classes/kafkaconsumer.html#endoffsets","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":205,"kind":2048,"name":"pollTimeout","url":"classes/kafkaconsumer.html#polltimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":206,"kind":2048,"name":"poll","url":"classes/kafkaconsumer.html#poll","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumer"},{"id":207,"kind":128,"name":"KafkaConsumerRecord","url":"classes/kafkaconsumerrecord.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":208,"kind":2048,"name":"topic","url":"classes/kafkaconsumerrecord.html#topic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":209,"kind":2048,"name":"partition","url":"classes/kafkaconsumerrecord.html#partition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":210,"kind":2048,"name":"offset","url":"classes/kafkaconsumerrecord.html#offset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":211,"kind":2048,"name":"timestamp","url":"classes/kafkaconsumerrecord.html#timestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":212,"kind":2048,"name":"timestampType","url":"classes/kafkaconsumerrecord.html#timestamptype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":213,"kind":2048,"name":"checksum","url":"classes/kafkaconsumerrecord.html#checksum","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":214,"kind":2048,"name":"key","url":"classes/kafkaconsumerrecord.html#key","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":215,"kind":2048,"name":"value","url":"classes/kafkaconsumerrecord.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":216,"kind":2048,"name":"headers","url":"classes/kafkaconsumerrecord.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecord"},{"id":217,"kind":128,"name":"KafkaConsumerRecords","url":"classes/kafkaconsumerrecords.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":218,"kind":2048,"name":"size","url":"classes/kafkaconsumerrecords.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecords"},{"id":219,"kind":2048,"name":"isEmpty","url":"classes/kafkaconsumerrecords.html#isempty","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecords"},{"id":220,"kind":2048,"name":"recordAt","url":"classes/kafkaconsumerrecords.html#recordat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaConsumerRecords"},{"id":221,"kind":128,"name":"KafkaHeader","url":"classes/kafkaheader.html","classes":"tsd-kind-class"},{"id":222,"kind":2048,"name":"header","url":"classes/kafkaheader.html#header","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KafkaHeader"},{"id":223,"kind":2048,"name":"key","url":"classes/kafkaheader.html#key","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaHeader"},{"id":224,"kind":2048,"name":"value","url":"classes/kafkaheader.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaHeader"},{"id":225,"kind":128,"name":"KafkaProducer","url":"classes/kafkaproducer.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":226,"kind":2048,"name":"end","url":"classes/kafkaproducer.html#end","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":227,"kind":2048,"name":"createShared","url":"classes/kafkaproducer.html#createshared","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaProducer"},{"id":228,"kind":2048,"name":"create","url":"classes/kafkaproducer.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaProducer"},{"id":229,"kind":2048,"name":"exceptionHandler","url":"classes/kafkaproducer.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":230,"kind":2048,"name":"write","url":"classes/kafkaproducer.html#write","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":231,"kind":2048,"name":"setWriteQueueMaxSize","url":"classes/kafkaproducer.html#setwritequeuemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":232,"kind":2048,"name":"writeQueueFull","url":"classes/kafkaproducer.html#writequeuefull","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":233,"kind":2048,"name":"drainHandler","url":"classes/kafkaproducer.html#drainhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":234,"kind":2048,"name":"send","url":"classes/kafkaproducer.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":235,"kind":2048,"name":"partitionsFor","url":"classes/kafkaproducer.html#partitionsfor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":236,"kind":2048,"name":"flush","url":"classes/kafkaproducer.html#flush","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":237,"kind":2048,"name":"close","url":"classes/kafkaproducer.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducer"},{"id":238,"kind":128,"name":"KafkaProducerRecord","url":"classes/kafkaproducerrecord.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":239,"kind":2048,"name":"create","url":"classes/kafkaproducerrecord.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"KafkaProducerRecord"},{"id":240,"kind":2048,"name":"topic","url":"classes/kafkaproducerrecord.html#topic","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":241,"kind":2048,"name":"key","url":"classes/kafkaproducerrecord.html#key","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":242,"kind":2048,"name":"value","url":"classes/kafkaproducerrecord.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":243,"kind":2048,"name":"timestamp","url":"classes/kafkaproducerrecord.html#timestamp","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":244,"kind":2048,"name":"partition","url":"classes/kafkaproducerrecord.html#partition","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":245,"kind":2048,"name":"addHeader","url":"classes/kafkaproducerrecord.html#addheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":246,"kind":2048,"name":"addHeaders","url":"classes/kafkaproducerrecord.html#addheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"},{"id":247,"kind":2048,"name":"headers","url":"classes/kafkaproducerrecord.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KafkaProducerRecord"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,32.662]],["parent/0",[]],["name/1",[1,25.47]],["parent/1",[0,3.117]],["name/2",[2,51.12]],["parent/2",[0,3.117]],["name/3",[3,51.12]],["parent/3",[0,3.117]],["name/4",[4,51.12]],["parent/4",[0,3.117]],["name/5",[5,51.12]],["parent/5",[0,3.117]],["name/6",[6,51.12]],["parent/6",[0,3.117]],["name/7",[7,51.12]],["parent/7",[0,3.117]],["name/8",[8,51.12]],["parent/8",[0,3.117]],["name/9",[9,40.134]],["parent/9",[]],["name/10",[1,25.47]],["parent/10",[9,3.83]],["name/11",[10,51.12]],["parent/11",[9,3.83]],["name/12",[11,51.12]],["parent/12",[9,3.83]],["name/13",[12,27.141]],["parent/13",[]],["name/14",[1,25.47]],["parent/14",[12,2.59]],["name/15",[13,46.012]],["parent/15",[12,2.59]],["name/16",[14,46.012]],["parent/16",[12,2.59]],["name/17",[15,38.127]],["parent/17",[12,2.59]],["name/18",[16,38.127]],["parent/18",[12,2.59]],["name/19",[17,51.12]],["parent/19",[12,2.59]],["name/20",[18,51.12]],["parent/20",[12,2.59]],["name/21",[19,51.12]],["parent/21",[12,2.59]],["name/22",[20,51.12]],["parent/22",[12,2.59]],["name/23",[21,46.012]],["parent/23",[12,2.59]],["name/24",[22,46.012]],["parent/24",[12,2.59]],["name/25",[23,51.12]],["parent/25",[12,2.59]],["name/26",[24,51.12]],["parent/26",[12,2.59]],["name/27",[25,46.012]],["parent/27",[12,2.59]],["name/28",[26,46.012]],["parent/28",[12,2.59]],["name/29",[27,33.774]],["parent/29",[]],["name/30",[1,25.47]],["parent/30",[27,3.223]],["name/31",[13,46.012]],["parent/31",[27,3.223]],["name/32",[14,46.012]],["parent/32",[27,3.223]],["name/33",[15,38.127]],["parent/33",[27,3.223]],["name/34",[16,38.127]],["parent/34",[27,3.223]],["name/35",[28,51.12]],["parent/35",[27,3.223]],["name/36",[29,51.12]],["parent/36",[27,3.223]],["name/37",[30,33.774]],["parent/37",[]],["name/38",[1,25.47]],["parent/38",[30,3.223]],["name/39",[15,38.127]],["parent/39",[30,3.223]],["name/40",[16,38.127]],["parent/40",[30,3.223]],["name/41",[21,46.012]],["parent/41",[30,3.223]],["name/42",[22,46.012]],["parent/42",[30,3.223]],["name/43",[25,46.012]],["parent/43",[30,3.223]],["name/44",[26,46.012]],["parent/44",[30,3.223]],["name/45",[31,28.433]],["parent/45",[]],["name/46",[1,25.47]],["parent/46",[31,2.713]],["name/47",[32,51.12]],["parent/47",[31,2.713]],["name/48",[33,51.12]],["parent/48",[31,2.713]],["name/49",[34,46.012]],["parent/49",[31,2.713]],["name/50",[35,46.012]],["parent/50",[31,2.713]],["name/51",[36,51.12]],["parent/51",[31,2.713]],["name/52",[37,51.12]],["parent/52",[31,2.713]],["name/53",[38,51.12]],["parent/53",[31,2.713]],["name/54",[39,51.12]],["parent/54",[31,2.713]],["name/55",[40,46.012]],["parent/55",[31,2.713]],["name/56",[41,46.012]],["parent/56",[31,2.713]],["name/57",[42,51.12]],["parent/57",[31,2.713]],["name/58",[43,51.12]],["parent/58",[31,2.713]],["name/59",[44,36.457]],["parent/59",[]],["name/60",[1,25.47]],["parent/60",[44,3.479]],["name/61",[34,46.012]],["parent/61",[44,3.479]],["name/62",[35,46.012]],["parent/62",[44,3.479]],["name/63",[40,46.012]],["parent/63",[44,3.479]],["name/64",[41,46.012]],["parent/64",[44,3.479]],["name/65",[45,46.012]],["parent/65",[]],["name/66",[1,25.47]],["parent/66",[45,4.391]],["name/67",[46,40.134]],["parent/67",[]],["name/68",[1,25.47]],["parent/68",[46,3.83]],["name/69",[47,51.12]],["parent/69",[46,3.83]],["name/70",[48,51.12]],["parent/70",[46,3.83]],["name/71",[49,31.661]],["parent/71",[]],["name/72",[1,25.47]],["parent/72",[49,3.021]],["name/73",[50,51.12]],["parent/73",[49,3.021]],["name/74",[51,51.12]],["parent/74",[49,3.021]],["name/75",[52,51.12]],["parent/75",[49,3.021]],["name/76",[53,51.12]],["parent/76",[49,3.021]],["name/77",[54,51.12]],["parent/77",[49,3.021]],["name/78",[55,51.12]],["parent/78",[49,3.021]],["name/79",[56,46.012]],["parent/79",[49,3.021]],["name/80",[57,46.012]],["parent/80",[49,3.021]],["name/81",[58,31.661]],["parent/81",[]],["name/82",[1,25.47]],["parent/82",[58,3.021]],["name/83",[59,51.12]],["parent/83",[58,3.021]],["name/84",[60,51.12]],["parent/84",[58,3.021]],["name/85",[15,38.127]],["parent/85",[58,3.021]],["name/86",[16,38.127]],["parent/86",[58,3.021]],["name/87",[61,51.12]],["parent/87",[58,3.021]],["name/88",[62,51.12]],["parent/88",[58,3.021]],["name/89",[63,51.12]],["parent/89",[58,3.021]],["name/90",[64,51.12]],["parent/90",[58,3.021]],["name/91",[65,28.433]],["parent/91",[]],["name/92",[1,25.47]],["parent/92",[65,2.713]],["name/93",[66,46.012]],["parent/93",[65,2.713]],["name/94",[67,51.12]],["parent/94",[65,2.713]],["name/95",[56,46.012]],["parent/95",[65,2.713]],["name/96",[57,46.012]],["parent/96",[65,2.713]],["name/97",[68,51.12]],["parent/97",[65,2.713]],["name/98",[69,51.12]],["parent/98",[65,2.713]],["name/99",[70,51.12]],["parent/99",[65,2.713]],["name/100",[71,51.12]],["parent/100",[65,2.713]],["name/101",[72,51.12]],["parent/101",[65,2.713]],["name/102",[73,51.12]],["parent/102",[65,2.713]],["name/103",[74,51.12]],["parent/103",[65,2.713]],["name/104",[75,51.12]],["parent/104",[65,2.713]],["name/105",[76,36.457]],["parent/105",[]],["name/106",[1,25.47]],["parent/106",[76,3.479]],["name/107",[77,51.12]],["parent/107",[76,3.479]],["name/108",[78,51.12]],["parent/108",[76,3.479]],["name/109",[79,42.647]],["parent/109",[76,3.479]],["name/110",[80,42.647]],["parent/110",[76,3.479]],["name/111",[81,36.457]],["parent/111",[]],["name/112",[1,25.47]],["parent/112",[81,3.479]],["name/113",[79,42.647]],["parent/113",[81,3.479]],["name/114",[80,42.647]],["parent/114",[81,3.479]],["name/115",[82,46.012]],["parent/115",[81,3.479]],["name/116",[83,46.012]],["parent/116",[81,3.479]],["name/117",[84,29.917]],["parent/117",[]],["name/118",[1,25.47]],["parent/118",[84,2.855]],["name/119",[85,51.12]],["parent/119",[84,2.855]],["name/120",[86,51.12]],["parent/120",[84,2.855]],["name/121",[87,46.012]],["parent/121",[84,2.855]],["name/122",[88,46.012]],["parent/122",[84,2.855]],["name/123",[89,40.134]],["parent/123",[84,2.855]],["name/124",[90,40.134]],["parent/124",[84,2.855]],["name/125",[91,46.012]],["parent/125",[84,2.855]],["name/126",[92,46.012]],["parent/126",[84,2.855]],["name/127",[93,42.647]],["parent/127",[84,2.855]],["name/128",[94,42.647]],["parent/128",[84,2.855]],["name/129",[95,30.751]],["parent/129",[]],["name/130",[1,25.47]],["parent/130",[95,2.935]],["name/131",[96,51.12]],["parent/131",[95,2.935]],["name/132",[79,42.647]],["parent/132",[95,2.935]],["name/133",[80,42.647]],["parent/133",[95,2.935]],["name/134",[89,40.134]],["parent/134",[95,2.935]],["name/135",[90,40.134]],["parent/135",[95,2.935]],["name/136",[82,46.012]],["parent/136",[95,2.935]],["name/137",[83,46.012]],["parent/137",[95,2.935]],["name/138",[93,42.647]],["parent/138",[95,2.935]],["name/139",[94,42.647]],["parent/139",[95,2.935]],["name/140",[97,33.774]],["parent/140",[]],["name/141",[1,25.47]],["parent/141",[97,3.223]],["name/142",[98,51.12]],["parent/142",[97,3.223]],["name/143",[99,51.12]],["parent/143",[97,3.223]],["name/144",[15,38.127]],["parent/144",[97,3.223]],["name/145",[16,38.127]],["parent/145",[97,3.223]],["name/146",[100,51.12]],["parent/146",[97,3.223]],["name/147",[101,51.12]],["parent/147",[97,3.223]],["name/148",[102,36.457]],["parent/148",[]],["name/149",[1,25.47]],["parent/149",[102,3.479]],["name/150",[89,40.134]],["parent/150",[102,3.479]],["name/151",[90,40.134]],["parent/151",[102,3.479]],["name/152",[93,42.647]],["parent/152",[102,3.479]],["name/153",[94,42.647]],["parent/153",[102,3.479]],["name/154",[103,31.661]],["parent/154",[]],["name/155",[1,25.47]],["parent/155",[103,3.021]],["name/156",[104,51.12]],["parent/156",[103,3.021]],["name/157",[105,51.12]],["parent/157",[103,3.021]],["name/158",[87,46.012]],["parent/158",[103,3.021]],["name/159",[88,46.012]],["parent/159",[103,3.021]],["name/160",[89,40.134]],["parent/160",[103,3.021]],["name/161",[90,40.134]],["parent/161",[103,3.021]],["name/162",[91,46.012]],["parent/162",[103,3.021]],["name/163",[92,46.012]],["parent/163",[103,3.021]],["name/164",[106,31.661]],["parent/164",[]],["name/165",[107,40.134]],["parent/165",[106,3.021]],["name/166",[108,51.12]],["parent/166",[106,3.021]],["name/167",[109,51.12]],["parent/167",[106,3.021]],["name/168",[110,51.12]],["parent/168",[106,3.021]],["name/169",[111,51.12]],["parent/169",[106,3.021]],["name/170",[112,42.647]],["parent/170",[106,3.021]],["name/171",[113,51.12]],["parent/171",[106,3.021]],["name/172",[114,51.12]],["parent/172",[106,3.021]],["name/173",[115,51.12]],["parent/173",[106,3.021]],["name/174",[116,20.059]],["parent/174",[]],["name/175",[117,51.12]],["parent/175",[116,1.914]],["name/176",[118,51.12]],["parent/176",[116,1.914]],["name/177",[107,40.134]],["parent/177",[116,1.914]],["name/178",[119,46.012]],["parent/178",[116,1.914]],["name/179",[120,51.12]],["parent/179",[116,1.914]],["name/180",[121,51.12]],["parent/180",[116,1.914]],["name/181",[122,51.12]],["parent/181",[116,1.914]],["name/182",[123,51.12]],["parent/182",[116,1.914]],["name/183",[124,51.12]],["parent/183",[116,1.914]],["name/184",[125,51.12]],["parent/184",[116,1.914]],["name/185",[126,51.12]],["parent/185",[116,1.914]],["name/186",[127,51.12]],["parent/186",[116,1.914]],["name/187",[128,51.12]],["parent/187",[116,1.914]],["name/188",[129,51.12]],["parent/188",[116,1.914]],["name/189",[130,51.12]],["parent/189",[116,1.914]],["name/190",[131,51.12]],["parent/190",[116,1.914]],["name/191",[132,51.12]],["parent/191",[116,1.914]],["name/192",[133,51.12]],["parent/192",[116,1.914]],["name/193",[134,51.12]],["parent/193",[116,1.914]],["name/194",[135,51.12]],["parent/194",[116,1.914]],["name/195",[136,51.12]],["parent/195",[116,1.914]],["name/196",[137,51.12]],["parent/196",[116,1.914]],["name/197",[138,51.12]],["parent/197",[116,1.914]],["name/198",[139,46.012]],["parent/198",[116,1.914]],["name/199",[140,51.12]],["parent/199",[116,1.914]],["name/200",[112,42.647]],["parent/200",[116,1.914]],["name/201",[141,51.12]],["parent/201",[116,1.914]],["name/202",[142,51.12]],["parent/202",[116,1.914]],["name/203",[143,51.12]],["parent/203",[116,1.914]],["name/204",[144,51.12]],["parent/204",[116,1.914]],["name/205",[145,51.12]],["parent/205",[116,1.914]],["name/206",[146,51.12]],["parent/206",[116,1.914]],["name/207",[147,31.661]],["parent/207",[]],["name/208",[148,46.012]],["parent/208",[147,3.021]],["name/209",[149,46.012]],["parent/209",[147,3.021]],["name/210",[150,51.12]],["parent/210",[147,3.021]],["name/211",[151,46.012]],["parent/211",[147,3.021]],["name/212",[152,51.12]],["parent/212",[147,3.021]],["name/213",[153,51.12]],["parent/213",[147,3.021]],["name/214",[154,42.647]],["parent/214",[147,3.021]],["name/215",[155,42.647]],["parent/215",[147,3.021]],["name/216",[156,46.012]],["parent/216",[147,3.021]],["name/217",[157,40.134]],["parent/217",[]],["name/218",[158,51.12]],["parent/218",[157,3.83]],["name/219",[66,46.012]],["parent/219",[157,3.83]],["name/220",[159,51.12]],["parent/220",[157,3.83]],["name/221",[160,40.134]],["parent/221",[]],["name/222",[161,51.12]],["parent/222",[160,3.83]],["name/223",[154,42.647]],["parent/223",[160,3.83]],["name/224",[155,42.647]],["parent/224",[160,3.83]],["name/225",[162,29.148]],["parent/225",[]],["name/226",[163,51.12]],["parent/226",[162,2.781]],["name/227",[164,51.12]],["parent/227",[162,2.781]],["name/228",[107,40.134]],["parent/228",[162,2.781]],["name/229",[119,46.012]],["parent/229",[162,2.781]],["name/230",[165,51.12]],["parent/230",[162,2.781]],["name/231",[166,51.12]],["parent/231",[162,2.781]],["name/232",[167,51.12]],["parent/232",[162,2.781]],["name/233",[168,51.12]],["parent/233",[162,2.781]],["name/234",[169,51.12]],["parent/234",[162,2.781]],["name/235",[139,46.012]],["parent/235",[162,2.781]],["name/236",[170,51.12]],["parent/236",[162,2.781]],["name/237",[112,42.647]],["parent/237",[162,2.781]],["name/238",[171,31.661]],["parent/238",[]],["name/239",[107,40.134]],["parent/239",[171,3.021]],["name/240",[148,46.012]],["parent/240",[171,3.021]],["name/241",[154,42.647]],["parent/241",[171,3.021]],["name/242",[155,42.647]],["parent/242",[171,3.021]],["name/243",[151,46.012]],["parent/243",[171,3.021]],["name/244",[149,46.012]],["parent/244",[171,3.021]],["name/245",[172,51.12]],["parent/245",[171,3.021]],["name/246",[173,51.12]],["parent/246",[171,3.021]],["name/247",[156,46.012]],["parent/247",[171,3.021]]],"invertedIndex":[["addheader",{"_index":172,"name":{"245":{}},"parent":{}}],["addheaders",{"_index":173,"name":{"246":{}},"parent":{}}],["addnode",{"_index":8,"name":{"8":{}},"parent":{}}],["assign",{"_index":127,"name":{"186":{}},"parent":{}}],["assignment",{"_index":128,"name":{"187":{}},"parent":{}}],["batchhandler",{"_index":140,"name":{"199":{}},"parent":{}}],["beginningoffsets",{"_index":143,"name":{"203":{}},"parent":{}}],["checksum",{"_index":153,"name":{"213":{}},"parent":{}}],["close",{"_index":112,"name":{"170":{},"200":{},"237":{}},"parent":{}}],["clusterdescription",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{}}}],["commit",{"_index":137,"name":{"196":{}},"parent":{}}],["committed",{"_index":138,"name":{"197":{}},"parent":{}}],["config",{"_index":9,"name":{"9":{}},"parent":{"10":{},"11":{},"12":{}}}],["configentry",{"_index":12,"name":{"13":{}},"parent":{"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{}}}],["configresource",{"_index":27,"name":{"29":{}},"parent":{"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{}}}],["configsynonym",{"_index":30,"name":{"37":{}},"parent":{"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{}}}],["constructor",{"_index":1,"name":{"1":{},"10":{},"14":{},"30":{},"38":{},"46":{},"60":{},"66":{},"68":{},"72":{},"82":{},"92":{},"106":{},"112":{},"118":{},"130":{},"141":{},"149":{},"155":{}},"parent":{}}],["consumergroupdescription",{"_index":31,"name":{"45":{}},"parent":{"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{}}}],["consumergrouplisting",{"_index":44,"name":{"59":{}},"parent":{"60":{},"61":{},"62":{},"63":{},"64":{}}}],["create",{"_index":107,"name":{"165":{},"177":{},"228":{},"239":{}},"parent":{}}],["createshared",{"_index":164,"name":{"227":{}},"parent":{}}],["createtopics",{"_index":109,"name":{"167":{}},"parent":{}}],["deleteconsumergroupoffsets",{"_index":115,"name":{"173":{}},"parent":{}}],["deleteconsumergroups",{"_index":114,"name":{"172":{}},"parent":{}}],["deletetopics",{"_index":110,"name":{"168":{}},"parent":{}}],["demand",{"_index":125,"name":{"184":{}},"parent":{}}],["describecluster",{"_index":113,"name":{"171":{}},"parent":{}}],["drainhandler",{"_index":168,"name":{"233":{}},"parent":{}}],["end",{"_index":163,"name":{"226":{}},"parent":{}}],["endhandler",{"_index":123,"name":{"182":{}},"parent":{}}],["endoffsets",{"_index":144,"name":{"204":{}},"parent":{}}],["exceptionhandler",{"_index":119,"name":{"178":{},"229":{}},"parent":{}}],["fetch",{"_index":124,"name":{"183":{}},"parent":{}}],["flush",{"_index":170,"name":{"236":{}},"parent":{}}],["getassignment",{"_index":50,"name":{"73":{}},"parent":{}}],["getclientid",{"_index":52,"name":{"75":{}},"parent":{}}],["getclusterid",{"_index":2,"name":{"2":{}},"parent":{}}],["getconfig",{"_index":59,"name":{"83":{}},"parent":{}}],["getconsumerid",{"_index":54,"name":{"77":{}},"parent":{}}],["getcontroller",{"_index":4,"name":{"4":{}},"parent":{}}],["getcoordinator",{"_index":32,"name":{"47":{}},"parent":{}}],["getentries",{"_index":10,"name":{"11":{}},"parent":{}}],["getgroupid",{"_index":34,"name":{"49":{},"61":{}},"parent":{}}],["gethost",{"_index":56,"name":{"79":{},"95":{}},"parent":{}}],["getid",{"_index":68,"name":{"97":{}},"parent":{}}],["getidstring",{"_index":70,"name":{"99":{}},"parent":{}}],["getinsyncreplicas",{"_index":85,"name":{"119":{}},"parent":{}}],["getisr",{"_index":104,"name":{"156":{}},"parent":{}}],["getleader",{"_index":87,"name":{"121":{},"158":{}},"parent":{}}],["getmembers",{"_index":36,"name":{"51":{}},"parent":{}}],["getmetadata",{"_index":77,"name":{"107":{}},"parent":{}}],["getname",{"_index":15,"name":{"17":{},"33":{},"39":{},"85":{},"144":{}},"parent":{}}],["getnodes",{"_index":6,"name":{"6":{}},"parent":{}}],["getnumpartitions",{"_index":61,"name":{"87":{}},"parent":{}}],["getoffset",{"_index":79,"name":{"109":{},"113":{},"132":{}},"parent":{}}],["getpartition",{"_index":89,"name":{"123":{},"134":{},"150":{},"160":{}},"parent":{}}],["getpartitionassignor",{"_index":38,"name":{"53":{}},"parent":{}}],["getpartitions",{"_index":100,"name":{"146":{}},"parent":{}}],["getport",{"_index":73,"name":{"102":{}},"parent":{}}],["getreplicas",{"_index":91,"name":{"125":{},"162":{}},"parent":{}}],["getreplicationfactor",{"_index":63,"name":{"89":{}},"parent":{}}],["getsource",{"_index":21,"name":{"23":{},"41":{}},"parent":{}}],["getstate",{"_index":42,"name":{"57":{}},"parent":{}}],["getsynonyms",{"_index":23,"name":{"25":{}},"parent":{}}],["gettimestamp",{"_index":82,"name":{"115":{},"136":{}},"parent":{}}],["gettopic",{"_index":93,"name":{"127":{},"138":{},"152":{}},"parent":{}}],["gettopicpartitions",{"_index":47,"name":{"69":{}},"parent":{}}],["gettype",{"_index":28,"name":{"35":{}},"parent":{}}],["getvalue",{"_index":25,"name":{"27":{},"43":{}},"parent":{}}],["handler",{"_index":120,"name":{"179":{}},"parent":{}}],["header",{"_index":161,"name":{"222":{}},"parent":{}}],["headers",{"_index":156,"name":{"216":{},"247":{}},"parent":{}}],["isdefault",{"_index":13,"name":{"15":{},"31":{}},"parent":{}}],["isempty",{"_index":66,"name":{"93":{},"219":{}},"parent":{}}],["isinternal",{"_index":98,"name":{"142":{}},"parent":{}}],["isreadonly",{"_index":17,"name":{"19":{}},"parent":{}}],["issensitive",{"_index":19,"name":{"21":{}},"parent":{}}],["issimpleconsumergroup",{"_index":40,"name":{"55":{},"63":{}},"parent":{}}],["kafkaadminclient",{"_index":106,"name":{"164":{}},"parent":{"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{}}}],["kafkaconsumer",{"_index":116,"name":{"174":{}},"parent":{"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{}}}],["kafkaconsumerrecord",{"_index":147,"name":{"207":{}},"parent":{"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{},"216":{}}}],["kafkaconsumerrecords",{"_index":157,"name":{"217":{}},"parent":{"218":{},"219":{},"220":{}}}],["kafkaheader",{"_index":160,"name":{"221":{}},"parent":{"222":{},"223":{},"224":{}}}],["kafkaproducer",{"_index":162,"name":{"225":{}},"parent":{"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{}}}],["kafkaproducerrecord",{"_index":171,"name":{"238":{}},"parent":{"239":{},"240":{},"241":{},"242":{},"243":{},"244":{},"245":{},"246":{},"247":{}}}],["key",{"_index":154,"name":{"214":{},"223":{},"241":{}},"parent":{}}],["listconsumergroupoffsetsoptions",{"_index":45,"name":{"65":{}},"parent":{"66":{}}}],["listconsumergroups",{"_index":111,"name":{"169":{}},"parent":{}}],["listtopics",{"_index":108,"name":{"166":{}},"parent":{}}],["memberassignment",{"_index":46,"name":{"67":{}},"parent":{"68":{},"69":{},"70":{}}}],["memberdescription",{"_index":49,"name":{"71":{}},"parent":{"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{}}}],["newtopic",{"_index":58,"name":{"81":{}},"parent":{"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{}}}],["node",{"_index":65,"name":{"91":{}},"parent":{"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{}}}],["offset",{"_index":150,"name":{"210":{}},"parent":{}}],["offsetandmetadata",{"_index":76,"name":{"105":{}},"parent":{"106":{},"107":{},"108":{},"109":{},"110":{}}}],["offsetandtimestamp",{"_index":81,"name":{"111":{}},"parent":{"112":{},"113":{},"114":{},"115":{},"116":{}}}],["offsetsfortimes",{"_index":142,"name":{"202":{}},"parent":{}}],["partition",{"_index":149,"name":{"209":{},"244":{}},"parent":{}}],["partitioninfo",{"_index":84,"name":{"117":{}},"parent":{"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{}}}],["partitionsassignedhandler",{"_index":133,"name":{"192":{}},"parent":{}}],["partitionsfor",{"_index":139,"name":{"198":{},"235":{}},"parent":{}}],["partitionsrevokedhandler",{"_index":132,"name":{"191":{}},"parent":{}}],["pause",{"_index":121,"name":{"180":{}},"parent":{}}],["paused",{"_index":131,"name":{"190":{}},"parent":{}}],["pipe",{"_index":117,"name":{"175":{}},"parent":{}}],["pipeto",{"_index":118,"name":{"176":{}},"parent":{}}],["poll",{"_index":146,"name":{"206":{}},"parent":{}}],["polltimeout",{"_index":145,"name":{"205":{}},"parent":{}}],["position",{"_index":141,"name":{"201":{}},"parent":{}}],["recordat",{"_index":159,"name":{"220":{}},"parent":{}}],["recordmetadata",{"_index":95,"name":{"129":{}},"parent":{"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{}}}],["resume",{"_index":122,"name":{"181":{}},"parent":{}}],["seek",{"_index":134,"name":{"193":{}},"parent":{}}],["seektobeginning",{"_index":135,"name":{"194":{}},"parent":{}}],["seektoend",{"_index":136,"name":{"195":{}},"parent":{}}],["send",{"_index":169,"name":{"234":{}},"parent":{}}],["setassignment",{"_index":51,"name":{"74":{}},"parent":{}}],["setchecksum",{"_index":96,"name":{"131":{}},"parent":{}}],["setclientid",{"_index":53,"name":{"76":{}},"parent":{}}],["setclusterid",{"_index":3,"name":{"3":{}},"parent":{}}],["setconfig",{"_index":60,"name":{"84":{}},"parent":{}}],["setconsumerid",{"_index":55,"name":{"78":{}},"parent":{}}],["setcontroller",{"_index":5,"name":{"5":{}},"parent":{}}],["setcoordinator",{"_index":33,"name":{"48":{}},"parent":{}}],["setdefault",{"_index":14,"name":{"16":{},"32":{}},"parent":{}}],["setentries",{"_index":11,"name":{"12":{}},"parent":{}}],["setgroupid",{"_index":35,"name":{"50":{},"62":{}},"parent":{}}],["sethasrack",{"_index":67,"name":{"94":{}},"parent":{}}],["sethost",{"_index":57,"name":{"80":{},"96":{}},"parent":{}}],["setid",{"_index":69,"name":{"98":{}},"parent":{}}],["setidstring",{"_index":71,"name":{"100":{}},"parent":{}}],["setinsyncreplicas",{"_index":86,"name":{"120":{}},"parent":{}}],["setinternal",{"_index":99,"name":{"143":{}},"parent":{}}],["setisempty",{"_index":72,"name":{"101":{}},"parent":{}}],["setisr",{"_index":105,"name":{"157":{}},"parent":{}}],["setleader",{"_index":88,"name":{"122":{},"159":{}},"parent":{}}],["setmembers",{"_index":37,"name":{"52":{}},"parent":{}}],["setmetadata",{"_index":78,"name":{"108":{}},"parent":{}}],["setname",{"_index":16,"name":{"18":{},"34":{},"40":{},"86":{},"145":{}},"parent":{}}],["setnodes",{"_index":7,"name":{"7":{}},"parent":{}}],["setnumpartitions",{"_index":62,"name":{"88":{}},"parent":{}}],["setoffset",{"_index":80,"name":{"110":{},"114":{},"133":{}},"parent":{}}],["setpartition",{"_index":90,"name":{"124":{},"135":{},"151":{},"161":{}},"parent":{}}],["setpartitionassignor",{"_index":39,"name":{"54":{}},"parent":{}}],["setpartitions",{"_index":101,"name":{"147":{}},"parent":{}}],["setport",{"_index":74,"name":{"103":{}},"parent":{}}],["setrack",{"_index":75,"name":{"104":{}},"parent":{}}],["setreadonly",{"_index":18,"name":{"20":{}},"parent":{}}],["setreplicas",{"_index":92,"name":{"126":{},"163":{}},"parent":{}}],["setreplicationfactor",{"_index":64,"name":{"90":{}},"parent":{}}],["setsensitive",{"_index":20,"name":{"22":{}},"parent":{}}],["setsimpleconsumergroup",{"_index":41,"name":{"56":{},"64":{}},"parent":{}}],["setsource",{"_index":22,"name":{"24":{},"42":{}},"parent":{}}],["setstate",{"_index":43,"name":{"58":{}},"parent":{}}],["setsynonyms",{"_index":24,"name":{"26":{}},"parent":{}}],["settimestamp",{"_index":83,"name":{"116":{},"137":{}},"parent":{}}],["settopic",{"_index":94,"name":{"128":{},"139":{},"153":{}},"parent":{}}],["settopicpartitions",{"_index":48,"name":{"70":{}},"parent":{}}],["settype",{"_index":29,"name":{"36":{}},"parent":{}}],["setvalue",{"_index":26,"name":{"28":{},"44":{}},"parent":{}}],["setwritequeuemaxsize",{"_index":166,"name":{"231":{}},"parent":{}}],["size",{"_index":158,"name":{"218":{}},"parent":{}}],["subscribe",{"_index":126,"name":{"185":{}},"parent":{}}],["subscription",{"_index":130,"name":{"189":{}},"parent":{}}],["timestamp",{"_index":151,"name":{"211":{},"243":{}},"parent":{}}],["timestamptype",{"_index":152,"name":{"212":{}},"parent":{}}],["topic",{"_index":148,"name":{"208":{},"240":{}},"parent":{}}],["topicdescription",{"_index":97,"name":{"140":{}},"parent":{"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{}}}],["topicpartition",{"_index":102,"name":{"148":{}},"parent":{"149":{},"150":{},"151":{},"152":{},"153":{}}}],["topicpartitioninfo",{"_index":103,"name":{"154":{}},"parent":{"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{}}}],["unsubscribe",{"_index":129,"name":{"188":{}},"parent":{}}],["value",{"_index":155,"name":{"215":{},"224":{},"242":{}},"parent":{}}],["write",{"_index":165,"name":{"230":{}},"parent":{}}],["writequeuefull",{"_index":167,"name":{"232":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumer.html b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumer.html index 96d821a2c..1afddc33f 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumer.html +++ b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumer.html @@ -118,6 +118,7 @@

    Methods

  • close
  • commit
  • committed
  • +
  • demand
  • endHandler
  • endOffsets
  • exceptionHandler
  • @@ -162,7 +163,7 @@

    assign

  • @@ -181,7 +182,7 @@

    Returns
    @@ -200,7 +201,7 @@

    Returns
    @@ -230,7 +231,7 @@

    Returns
    @@ -269,7 +270,7 @@

    assignment

  • @@ -297,7 +298,7 @@

    batchHandler

  • @@ -328,7 +329,7 @@

    beginningOffsets

  • @@ -360,7 +361,7 @@

    close

  • @@ -373,7 +374,7 @@

    Returns void
    @@ -402,7 +403,7 @@

    commit

  • @@ -415,7 +416,7 @@

    Returns void
    @@ -443,7 +444,7 @@

    committed

  • @@ -464,6 +465,32 @@

    Returns void +
    + +

    demand

    +
      +
    • demand(): number
    • +
    +
      +
    • + +
      +
      +

      Returns the current demand.

      +
      +
        + If the stream is in flowing mode will return MAX_VALUE. +
      • If the stream is in fetch mode, will return the current number of elements still to be delivered or 0 if paused.
      • +
      +
      +

      Returns number

      +
    • +
    +

    endHandler

    @@ -497,7 +524,7 @@

    endOffsets

  • @@ -598,7 +625,7 @@

    offsetsForTimes

  • @@ -633,7 +660,7 @@

    partitionsAssignedHandler

  • @@ -661,7 +688,7 @@

    partitionsFor

  • @@ -692,7 +719,7 @@

    partitionsRevokedHandler

  • @@ -732,7 +759,7 @@

    Returns
    @@ -751,7 +778,7 @@

    Returns
    @@ -770,7 +797,7 @@

    Returns
    @@ -800,7 +827,7 @@

    Returns
    @@ -839,7 +866,7 @@

    paused

  • @@ -926,7 +953,7 @@

    poll

  • @@ -948,7 +975,7 @@

    Returns void
    @@ -980,7 +1007,7 @@

    pollTimeout

  • @@ -999,7 +1026,7 @@

    Returns
    @@ -1030,7 +1057,7 @@

    position

  • @@ -1073,7 +1100,7 @@

    Returns
    @@ -1092,7 +1119,7 @@

    Returns
    @@ -1111,7 +1138,7 @@

    Returns
    @@ -1133,7 +1160,7 @@

    Returns
    @@ -1165,7 +1192,7 @@

    seek

  • @@ -1187,7 +1214,7 @@

    Returns
    @@ -1232,7 +1259,7 @@

    seekToBeginning

  • @@ -1251,7 +1278,7 @@

    Returns
    @@ -1270,7 +1297,7 @@

    Returns
    @@ -1300,7 +1327,7 @@

    Returns
    @@ -1342,7 +1369,7 @@

    seekToEnd

  • @@ -1361,7 +1388,7 @@

    Returns
    @@ -1380,7 +1407,7 @@

    Returns
    @@ -1410,7 +1437,7 @@

    Returns
    @@ -1452,7 +1479,7 @@

    subscribe

  • @@ -1471,7 +1498,7 @@

    Returns
    @@ -1490,7 +1517,7 @@

    Returns
    @@ -1520,7 +1547,7 @@

    Returns
    @@ -1559,7 +1586,7 @@

    subscription

  • @@ -1588,7 +1615,7 @@

    unsubscribe

  • +
  • + demand +
  • endHandler
  • diff --git a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecord.html b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecord.html index 4bacb988e..7700686da 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecord.html +++ b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecord.html @@ -123,7 +123,7 @@

    checksum

  • Returns number

    @@ -140,7 +140,7 @@

    headers

  • Returns KafkaHeader[]

    @@ -157,7 +157,7 @@

    key

  • Returns K

    @@ -174,7 +174,7 @@

    offset

  • Returns number

    @@ -191,7 +191,7 @@

    partition

  • Returns number

    @@ -208,7 +208,7 @@

    timestamp

  • Returns number

    @@ -225,7 +225,7 @@

    timestampType

  • Returns any

    @@ -242,7 +242,7 @@

    topic

  • Returns string

    @@ -259,7 +259,7 @@

    value

  • Returns V

    diff --git a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecords.html b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecords.html index a9df36a1c..a8410665f 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecords.html +++ b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaconsumerrecords.html @@ -117,7 +117,7 @@

    isEmpty

  • Returns boolean

    @@ -134,7 +134,7 @@

    recordAt

  • @@ -162,7 +162,7 @@

    size

  • Returns number

    diff --git a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaheader.html b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaheader.html index a3897e50b..290346344 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaheader.html +++ b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaheader.html @@ -106,7 +106,7 @@

    key

  • Returns string

    @@ -123,7 +123,7 @@

    value

  • Returns Buffer

    @@ -141,7 +141,7 @@

    Static header

  • Parameters

    @@ -158,7 +158,7 @@

    Returns

    Parameters

    diff --git a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducer.html b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducer.html index 42755c0af..d65abed7b 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducer.html +++ b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducer.html @@ -136,7 +136,7 @@

    close

  • @@ -149,7 +149,7 @@

    Returns void
    @@ -168,7 +168,7 @@

    Returns void
    @@ -199,7 +199,7 @@

    drainHandler

  • Parameters

    @@ -225,7 +225,7 @@

    end

  • Returns void

    @@ -233,7 +233,7 @@

    Returns void

    Parameters

    @@ -247,7 +247,7 @@

    Returns void

    Parameters

    @@ -261,7 +261,7 @@

    Returns void

    Parameters

    @@ -287,7 +287,7 @@

    exceptionHandler

  • Parameters

    @@ -310,7 +310,7 @@

    flush

  • @@ -338,7 +338,7 @@

    partitionsFor

  • @@ -370,7 +370,7 @@

    send

  • @@ -389,7 +389,7 @@

    Returns
    @@ -420,7 +420,7 @@

    setWriteQueueMaxSize

  • Parameters

    @@ -444,7 +444,7 @@

    write

  • Parameters

    @@ -458,7 +458,7 @@

    Returns

    Parameters

    @@ -484,7 +484,7 @@

    writeQueueFull

  • Returns boolean

    @@ -502,7 +502,7 @@

    Static create

  • @@ -538,7 +538,7 @@

    Returns
    @@ -590,7 +590,7 @@

    Static createShared

  • @@ -629,7 +629,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducerrecord.html b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducerrecord.html index e78dad218..ed7d49e93 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducerrecord.html +++ b/docs/.vuepress/public/@vertx/kafka-client/classes/kafkaproducerrecord.html @@ -125,7 +125,7 @@

    addHeader

  • @@ -147,7 +147,7 @@

    Returns
    @@ -169,7 +169,7 @@

    Returns
    @@ -197,7 +197,7 @@

    addHeaders

  • @@ -225,7 +225,7 @@

    headers

  • Returns KafkaHeader[]

    @@ -242,7 +242,7 @@

    key

  • Returns K

    @@ -259,7 +259,7 @@

    partition

  • Returns number

    @@ -276,7 +276,7 @@

    timestamp

  • Returns number

    @@ -293,7 +293,7 @@

    topic

  • Returns string

    @@ -310,7 +310,7 @@

    value

  • Returns V

    @@ -329,7 +329,7 @@

    Static create

  • @@ -369,7 +369,7 @@

    Returns
    @@ -403,7 +403,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/kafka-client/index.html b/docs/.vuepress/public/@vertx/kafka-client/index.html index 5be46e33d..faf2cf017 100644 --- a/docs/.vuepress/public/@vertx/kafka-client/index.html +++ b/docs/.vuepress/public/@vertx/kafka-client/index.html @@ -63,7 +63,8 @@

    @vertx/kafka-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/mail-client/index.html b/docs/.vuepress/public/@vertx/mail-client/index.html index f3a76088f..0acfcf666 100644 --- a/docs/.vuepress/public/@vertx/mail-client/index.html +++ b/docs/.vuepress/public/@vertx/mail-client/index.html @@ -63,7 +63,8 @@

    @vertx/mail-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/micrometer-metrics/index.html b/docs/.vuepress/public/@vertx/micrometer-metrics/index.html index bbe92f569..ba02c1824 100644 --- a/docs/.vuepress/public/@vertx/micrometer-metrics/index.html +++ b/docs/.vuepress/public/@vertx/micrometer-metrics/index.html @@ -63,7 +63,8 @@

    @vertx/micrometer-metrics

  • diff --git a/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlconnection.html b/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlconnection.html index ff82a924a..68e8c4d1c 100644 --- a/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlconnection.html +++ b/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlconnection.html @@ -119,7 +119,7 @@

    changeUser

  • @@ -150,7 +150,7 @@

    closeHandler

  • Parameters

    @@ -173,7 +173,7 @@

    debug

  • @@ -201,7 +201,7 @@

    exceptionHandler

  • Parameters

    @@ -224,7 +224,7 @@

    getInternalStatistics

  • @@ -252,7 +252,7 @@

    ping

  • @@ -280,7 +280,7 @@

    prepare

  • Parameters

    @@ -306,7 +306,7 @@

    resetConnection

  • @@ -334,7 +334,7 @@

    setOption

  • @@ -365,7 +365,7 @@

    specifySchema

  • @@ -397,7 +397,7 @@

    Static connect

  • @@ -422,7 +422,7 @@

    Returns void
    diff --git a/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlpool.html b/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlpool.html index 2f4243465..71fd9cf63 100644 --- a/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlpool.html +++ b/docs/.vuepress/public/@vertx/mysql-client/classes/mysqlpool.html @@ -114,7 +114,7 @@

    Static pool

  • @@ -133,7 +133,7 @@

    Returns
    @@ -155,7 +155,7 @@

    Returns
    @@ -177,7 +177,7 @@

    Returns
    @@ -202,7 +202,7 @@

    Returns
    @@ -224,7 +224,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/mysql-client/index.html b/docs/.vuepress/public/@vertx/mysql-client/index.html index 2a16809cf..8e97265b7 100644 --- a/docs/.vuepress/public/@vertx/mysql-client/index.html +++ b/docs/.vuepress/public/@vertx/mysql-client/index.html @@ -63,7 +63,8 @@

    @vertx/mysql-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/mysql-postgresql-client/index.html b/docs/.vuepress/public/@vertx/mysql-postgresql-client/index.html index cde5b689e..5c3ff2900 100644 --- a/docs/.vuepress/public/@vertx/mysql-postgresql-client/index.html +++ b/docs/.vuepress/public/@vertx/mysql-postgresql-client/index.html @@ -63,7 +63,8 @@

    @vertx/mysql-postgresql-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/pg-client/index.html b/docs/.vuepress/public/@vertx/pg-client/index.html index 94c64edd1..8c6dfa886 100644 --- a/docs/.vuepress/public/@vertx/pg-client/index.html +++ b/docs/.vuepress/public/@vertx/pg-client/index.html @@ -63,7 +63,8 @@

    @vertx/pg-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/rabbitmq-client/index.html b/docs/.vuepress/public/@vertx/rabbitmq-client/index.html index 558d799c7..18c09419f 100644 --- a/docs/.vuepress/public/@vertx/rabbitmq-client/index.html +++ b/docs/.vuepress/public/@vertx/rabbitmq-client/index.html @@ -63,7 +63,8 @@

    @vertx/rabbitmq-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/redis-client/index.html b/docs/.vuepress/public/@vertx/redis-client/index.html index deee7a5fb..d07d49afa 100644 --- a/docs/.vuepress/public/@vertx/redis-client/index.html +++ b/docs/.vuepress/public/@vertx/redis-client/index.html @@ -63,7 +63,8 @@

    @vertx/redis-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/service-discovery/index.html b/docs/.vuepress/public/@vertx/service-discovery/index.html index 3f974d5ea..a00724e44 100644 --- a/docs/.vuepress/public/@vertx/service-discovery/index.html +++ b/docs/.vuepress/public/@vertx/service-discovery/index.html @@ -63,7 +63,8 @@

    @vertx/service-discovery

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/shell/index.html b/docs/.vuepress/public/@vertx/shell/index.html index b48cb16d7..0c32d1293 100644 --- a/docs/.vuepress/public/@vertx/shell/index.html +++ b/docs/.vuepress/public/@vertx/shell/index.html @@ -63,7 +63,8 @@

    @vertx/shell

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/sql-client/assets/js/search.json b/docs/.vuepress/public/@vertx/sql-client/assets/js/search.json index e7c9f8888..5d3ced60f 100644 --- a/docs/.vuepress/public/@vertx/sql-client/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/sql-client/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"128":"Class","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"PoolOptions","url":"classes/pooloptions.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/pooloptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PoolOptions"},{"id":2,"kind":2048,"name":"getMaxSize","url":"classes/pooloptions.html#getmaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":3,"kind":2048,"name":"setMaxSize","url":"classes/pooloptions.html#setmaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":4,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/pooloptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":5,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/pooloptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":6,"kind":128,"name":"SqlConnectOptions","url":"classes/sqlconnectoptions.html","classes":"tsd-kind-class"},{"id":7,"kind":512,"name":"constructor","url":"classes/sqlconnectoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":8,"kind":2048,"name":"getCachePreparedStatements","url":"classes/sqlconnectoptions.html#getcachepreparedstatements","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":9,"kind":2048,"name":"setCachePreparedStatements","url":"classes/sqlconnectoptions.html#setcachepreparedstatements","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":10,"kind":2048,"name":"getConnectTimeout","url":"classes/sqlconnectoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":11,"kind":2048,"name":"setConnectTimeout","url":"classes/sqlconnectoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":12,"kind":2048,"name":"getCrlPaths","url":"classes/sqlconnectoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":13,"kind":2048,"name":"addCrlPath","url":"classes/sqlconnectoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":14,"kind":2048,"name":"getCrlValues","url":"classes/sqlconnectoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":15,"kind":2048,"name":"addCrlValue","url":"classes/sqlconnectoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":16,"kind":2048,"name":"getDatabase","url":"classes/sqlconnectoptions.html#getdatabase","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":17,"kind":2048,"name":"setDatabase","url":"classes/sqlconnectoptions.html#setdatabase","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":18,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/sqlconnectoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":19,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/sqlconnectoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":20,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/sqlconnectoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":21,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/sqlconnectoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":22,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/sqlconnectoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":23,"kind":2048,"name":"getHost","url":"classes/sqlconnectoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":24,"kind":2048,"name":"setHost","url":"classes/sqlconnectoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":25,"kind":2048,"name":"getHostnameVerificationAlgorithm","url":"classes/sqlconnectoptions.html#gethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":26,"kind":2048,"name":"setHostnameVerificationAlgorithm","url":"classes/sqlconnectoptions.html#sethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":27,"kind":2048,"name":"getIdleTimeout","url":"classes/sqlconnectoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":28,"kind":2048,"name":"setIdleTimeout","url":"classes/sqlconnectoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":29,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/sqlconnectoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":30,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/sqlconnectoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":31,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/sqlconnectoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":32,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/sqlconnectoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":33,"kind":2048,"name":"getKeyStoreOptions","url":"classes/sqlconnectoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":34,"kind":2048,"name":"setKeyStoreOptions","url":"classes/sqlconnectoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":35,"kind":2048,"name":"getLocalAddress","url":"classes/sqlconnectoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":36,"kind":2048,"name":"setLocalAddress","url":"classes/sqlconnectoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":37,"kind":2048,"name":"getLogActivity","url":"classes/sqlconnectoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":38,"kind":2048,"name":"setLogActivity","url":"classes/sqlconnectoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":39,"kind":2048,"name":"getMetricsName","url":"classes/sqlconnectoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":40,"kind":2048,"name":"setMetricsName","url":"classes/sqlconnectoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":41,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/sqlconnectoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":42,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/sqlconnectoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":43,"kind":2048,"name":"getPassword","url":"classes/sqlconnectoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":44,"kind":2048,"name":"setPassword","url":"classes/sqlconnectoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":45,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/sqlconnectoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":46,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/sqlconnectoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":47,"kind":2048,"name":"getPemTrustOptions","url":"classes/sqlconnectoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":48,"kind":2048,"name":"setPemTrustOptions","url":"classes/sqlconnectoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":49,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/sqlconnectoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":50,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/sqlconnectoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":51,"kind":2048,"name":"getPfxTrustOptions","url":"classes/sqlconnectoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":52,"kind":2048,"name":"setPfxTrustOptions","url":"classes/sqlconnectoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":53,"kind":2048,"name":"getPort","url":"classes/sqlconnectoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":54,"kind":2048,"name":"setPort","url":"classes/sqlconnectoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":55,"kind":2048,"name":"getPreparedStatementCacheMaxSize","url":"classes/sqlconnectoptions.html#getpreparedstatementcachemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":56,"kind":2048,"name":"setPreparedStatementCacheMaxSize","url":"classes/sqlconnectoptions.html#setpreparedstatementcachemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":57,"kind":2048,"name":"setPreparedStatementCacheSqlLimit","url":"classes/sqlconnectoptions.html#setpreparedstatementcachesqllimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":58,"kind":2048,"name":"getProperties","url":"classes/sqlconnectoptions.html#getproperties","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":59,"kind":2048,"name":"setProperties","url":"classes/sqlconnectoptions.html#setproperties","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":60,"kind":2048,"name":"getProxyOptions","url":"classes/sqlconnectoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":61,"kind":2048,"name":"setProxyOptions","url":"classes/sqlconnectoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":62,"kind":2048,"name":"getReceiveBufferSize","url":"classes/sqlconnectoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":63,"kind":2048,"name":"setReceiveBufferSize","url":"classes/sqlconnectoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":64,"kind":2048,"name":"getReconnectAttempts","url":"classes/sqlconnectoptions.html#getreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":65,"kind":2048,"name":"setReconnectAttempts","url":"classes/sqlconnectoptions.html#setreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":66,"kind":2048,"name":"getReconnectInterval","url":"classes/sqlconnectoptions.html#getreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":67,"kind":2048,"name":"setReconnectInterval","url":"classes/sqlconnectoptions.html#setreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":68,"kind":2048,"name":"isReuseAddress","url":"classes/sqlconnectoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":69,"kind":2048,"name":"setReuseAddress","url":"classes/sqlconnectoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":70,"kind":2048,"name":"isReusePort","url":"classes/sqlconnectoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":71,"kind":2048,"name":"setReusePort","url":"classes/sqlconnectoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":72,"kind":2048,"name":"getSendBufferSize","url":"classes/sqlconnectoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":73,"kind":2048,"name":"setSendBufferSize","url":"classes/sqlconnectoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":74,"kind":2048,"name":"getSoLinger","url":"classes/sqlconnectoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":75,"kind":2048,"name":"setSoLinger","url":"classes/sqlconnectoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":76,"kind":2048,"name":"isSsl","url":"classes/sqlconnectoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":77,"kind":2048,"name":"setSsl","url":"classes/sqlconnectoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":78,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/sqlconnectoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":79,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/sqlconnectoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":80,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/sqlconnectoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":81,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/sqlconnectoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":82,"kind":2048,"name":"isTcpCork","url":"classes/sqlconnectoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":83,"kind":2048,"name":"setTcpCork","url":"classes/sqlconnectoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":84,"kind":2048,"name":"isTcpFastOpen","url":"classes/sqlconnectoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":85,"kind":2048,"name":"setTcpFastOpen","url":"classes/sqlconnectoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":86,"kind":2048,"name":"isTcpKeepAlive","url":"classes/sqlconnectoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":87,"kind":2048,"name":"setTcpKeepAlive","url":"classes/sqlconnectoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":88,"kind":2048,"name":"isTcpNoDelay","url":"classes/sqlconnectoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":89,"kind":2048,"name":"setTcpNoDelay","url":"classes/sqlconnectoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":90,"kind":2048,"name":"isTcpQuickAck","url":"classes/sqlconnectoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":91,"kind":2048,"name":"setTcpQuickAck","url":"classes/sqlconnectoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":92,"kind":2048,"name":"getTrafficClass","url":"classes/sqlconnectoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":93,"kind":2048,"name":"setTrafficClass","url":"classes/sqlconnectoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":94,"kind":2048,"name":"isTrustAll","url":"classes/sqlconnectoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":95,"kind":2048,"name":"setTrustAll","url":"classes/sqlconnectoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":96,"kind":2048,"name":"getTrustStoreOptions","url":"classes/sqlconnectoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":97,"kind":2048,"name":"setTrustStoreOptions","url":"classes/sqlconnectoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":98,"kind":2048,"name":"isUseAlpn","url":"classes/sqlconnectoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":99,"kind":2048,"name":"setUseAlpn","url":"classes/sqlconnectoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":100,"kind":2048,"name":"isUsePooledBuffers","url":"classes/sqlconnectoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":101,"kind":2048,"name":"setUsePooledBuffers","url":"classes/sqlconnectoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":102,"kind":2048,"name":"getUser","url":"classes/sqlconnectoptions.html#getuser","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":103,"kind":2048,"name":"setUser","url":"classes/sqlconnectoptions.html#setuser","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":104,"kind":128,"name":"Cursor","url":"classes/cursor.html","classes":"tsd-kind-class"},{"id":105,"kind":2048,"name":"read","url":"classes/cursor.html#read","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cursor"},{"id":106,"kind":2048,"name":"hasMore","url":"classes/cursor.html#hasmore","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cursor"},{"id":107,"kind":2048,"name":"close","url":"classes/cursor.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cursor"},{"id":108,"kind":128,"name":"DatabaseMetadata","url":"classes/databasemetadata.html","classes":"tsd-kind-class"},{"id":109,"kind":2048,"name":"productName","url":"classes/databasemetadata.html#productname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":110,"kind":2048,"name":"fullVersion","url":"classes/databasemetadata.html#fullversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":111,"kind":2048,"name":"majorVersion","url":"classes/databasemetadata.html#majorversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":112,"kind":2048,"name":"minorVersion","url":"classes/databasemetadata.html#minorversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":113,"kind":128,"name":"Pool","url":"classes/pool.html","classes":"tsd-kind-class"},{"id":114,"kind":2048,"name":"pool","url":"classes/pool.html#pool-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Pool"},{"id":115,"kind":2048,"name":"getConnection","url":"classes/pool.html#getconnection","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pool"},{"id":116,"kind":2048,"name":"query","url":"classes/pool.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Pool"},{"id":117,"kind":2048,"name":"preparedQuery","url":"classes/pool.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Pool"},{"id":118,"kind":2048,"name":"begin","url":"classes/pool.html#begin","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pool"},{"id":119,"kind":2048,"name":"close","url":"classes/pool.html#close","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Pool"},{"id":120,"kind":128,"name":"PreparedQuery","url":"classes/preparedquery.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":121,"kind":2048,"name":"execute","url":"classes/preparedquery.html#execute","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"PreparedQuery"},{"id":122,"kind":2048,"name":"executeBatch","url":"classes/preparedquery.html#executebatch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQuery"},{"id":123,"kind":2048,"name":"mapping","url":"classes/preparedquery.html#mapping","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"PreparedQuery"},{"id":124,"kind":128,"name":"PreparedStatement","url":"classes/preparedstatement.html","classes":"tsd-kind-class"},{"id":125,"kind":2048,"name":"query","url":"classes/preparedstatement.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":126,"kind":2048,"name":"cursor","url":"classes/preparedstatement.html#cursor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":127,"kind":2048,"name":"createStream","url":"classes/preparedstatement.html#createstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":128,"kind":2048,"name":"close","url":"classes/preparedstatement.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":129,"kind":128,"name":"PropertyKind","url":"classes/propertykind.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":130,"kind":128,"name":"Query","url":"classes/query.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":131,"kind":2048,"name":"execute","url":"classes/query.html#execute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Query"},{"id":132,"kind":2048,"name":"mapping","url":"classes/query.html#mapping","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Query"},{"id":133,"kind":128,"name":"Row","url":"classes/row.html","classes":"tsd-kind-class"},{"id":134,"kind":1024,"name":"JSON_NULL","url":"classes/row.html#json_null","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"Row"},{"id":135,"kind":2048,"name":"getColumnName","url":"classes/row.html#getcolumnname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Row"},{"id":136,"kind":2048,"name":"getColumnIndex","url":"classes/row.html#getcolumnindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Row"},{"id":137,"kind":2048,"name":"getValue","url":"classes/row.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":138,"kind":2048,"name":"getBoolean","url":"classes/row.html#getboolean","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":139,"kind":2048,"name":"getShort","url":"classes/row.html#getshort","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":140,"kind":2048,"name":"getInteger","url":"classes/row.html#getinteger","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":141,"kind":2048,"name":"getLong","url":"classes/row.html#getlong","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":142,"kind":2048,"name":"getFloat","url":"classes/row.html#getfloat","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":143,"kind":2048,"name":"getDouble","url":"classes/row.html#getdouble","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":144,"kind":2048,"name":"getString","url":"classes/row.html#getstring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":145,"kind":2048,"name":"getBuffer","url":"classes/row.html#getbuffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":146,"kind":2048,"name":"getTemporal","url":"classes/row.html#gettemporal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":147,"kind":2048,"name":"getLocalDate","url":"classes/row.html#getlocaldate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":148,"kind":2048,"name":"getLocalTime","url":"classes/row.html#getlocaltime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":149,"kind":2048,"name":"getLocalDateTime","url":"classes/row.html#getlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":150,"kind":2048,"name":"getOffsetTime","url":"classes/row.html#getoffsettime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":151,"kind":2048,"name":"getOffsetDateTime","url":"classes/row.html#getoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":152,"kind":2048,"name":"getUUID","url":"classes/row.html#getuuid","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":153,"kind":2048,"name":"getBigDecimal","url":"classes/row.html#getbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":154,"kind":2048,"name":"getBooleanArray","url":"classes/row.html#getbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":155,"kind":2048,"name":"getShortArray","url":"classes/row.html#getshortarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":156,"kind":2048,"name":"getIntegerArray","url":"classes/row.html#getintegerarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":157,"kind":2048,"name":"getLongArray","url":"classes/row.html#getlongarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":158,"kind":2048,"name":"getFloatArray","url":"classes/row.html#getfloatarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":159,"kind":2048,"name":"getDoubleArray","url":"classes/row.html#getdoublearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":160,"kind":2048,"name":"getStringArray","url":"classes/row.html#getstringarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":161,"kind":2048,"name":"getTemporalArray","url":"classes/row.html#gettemporalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":162,"kind":2048,"name":"getLocalDateArray","url":"classes/row.html#getlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":163,"kind":2048,"name":"getLocalTimeArray","url":"classes/row.html#getlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":164,"kind":2048,"name":"getLocalDateTimeArray","url":"classes/row.html#getlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":165,"kind":2048,"name":"getOffsetTimeArray","url":"classes/row.html#getoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":166,"kind":2048,"name":"getOffsetDateTimeArray","url":"classes/row.html#getoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":167,"kind":2048,"name":"getUUIDArray","url":"classes/row.html#getuuidarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":168,"kind":2048,"name":"getBigDecimalArray","url":"classes/row.html#getbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":169,"kind":2048,"name":"tuple","url":"classes/row.html#tuple","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Row"},{"id":170,"kind":2048,"name":"wrap","url":"classes/row.html#wrap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Row"},{"id":171,"kind":2048,"name":"of","url":"classes/row.html#of","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Row"},{"id":172,"kind":2048,"name":"addValue","url":"classes/row.html#addvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":173,"kind":2048,"name":"addBoolean","url":"classes/row.html#addboolean","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":174,"kind":2048,"name":"addShort","url":"classes/row.html#addshort","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":175,"kind":2048,"name":"addInteger","url":"classes/row.html#addinteger","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":176,"kind":2048,"name":"addLong","url":"classes/row.html#addlong","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":177,"kind":2048,"name":"addFloat","url":"classes/row.html#addfloat","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":178,"kind":2048,"name":"addDouble","url":"classes/row.html#adddouble","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":179,"kind":2048,"name":"addString","url":"classes/row.html#addstring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":180,"kind":2048,"name":"addBuffer","url":"classes/row.html#addbuffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":181,"kind":2048,"name":"get","url":"classes/row.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"Row"},{"id":182,"kind":2048,"name":"size","url":"classes/row.html#size","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":183,"kind":2048,"name":"clear","url":"classes/row.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":184,"kind":2048,"name":"deepToString","url":"classes/row.html#deeptostring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":185,"kind":2048,"name":"addTemporal","url":"classes/row.html#addtemporal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":186,"kind":2048,"name":"addLocalDate","url":"classes/row.html#addlocaldate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":187,"kind":2048,"name":"addLocalTime","url":"classes/row.html#addlocaltime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":188,"kind":2048,"name":"addLocalDateTime","url":"classes/row.html#addlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":189,"kind":2048,"name":"addOffsetTime","url":"classes/row.html#addoffsettime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":190,"kind":2048,"name":"addOffsetDateTime","url":"classes/row.html#addoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":191,"kind":2048,"name":"addUUID","url":"classes/row.html#adduuid","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":192,"kind":2048,"name":"addBigDecimal","url":"classes/row.html#addbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":193,"kind":2048,"name":"addBooleanArray","url":"classes/row.html#addbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":194,"kind":2048,"name":"addShortArray","url":"classes/row.html#addshortarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":195,"kind":2048,"name":"addIntegerArray","url":"classes/row.html#addintegerarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":196,"kind":2048,"name":"addLongArray","url":"classes/row.html#addlongarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":197,"kind":2048,"name":"addFloatArray","url":"classes/row.html#addfloatarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":198,"kind":2048,"name":"addDoubleArray","url":"classes/row.html#adddoublearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":199,"kind":2048,"name":"addStringArray","url":"classes/row.html#addstringarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":200,"kind":2048,"name":"addTemporalArray","url":"classes/row.html#addtemporalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":201,"kind":2048,"name":"addLocalDateArray","url":"classes/row.html#addlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":202,"kind":2048,"name":"addLocalTimeArray","url":"classes/row.html#addlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":203,"kind":2048,"name":"addLocalDateTimeArray","url":"classes/row.html#addlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":204,"kind":2048,"name":"addOffsetTimeArray","url":"classes/row.html#addoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":205,"kind":2048,"name":"addOffsetDateTimeArray","url":"classes/row.html#addoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":206,"kind":2048,"name":"addUUIDArray","url":"classes/row.html#adduuidarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":207,"kind":2048,"name":"addBigDecimalArray","url":"classes/row.html#addbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":208,"kind":128,"name":"RowIterator","url":"classes/rowiterator.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":209,"kind":2048,"name":"hasNext","url":"classes/rowiterator.html#hasnext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowIterator"},{"id":210,"kind":2048,"name":"next","url":"classes/rowiterator.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowIterator"},{"id":211,"kind":128,"name":"RowSet","url":"classes/rowset.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":212,"kind":2048,"name":"value","url":"classes/rowset.html#value","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"RowSet"},{"id":213,"kind":2048,"name":"iterator","url":"classes/rowset.html#iterator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowSet"},{"id":214,"kind":2048,"name":"next","url":"classes/rowset.html#next","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"RowSet"},{"id":215,"kind":2048,"name":"rowCount","url":"classes/rowset.html#rowcount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"RowSet"},{"id":216,"kind":2048,"name":"columnsNames","url":"classes/rowset.html#columnsnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"RowSet"},{"id":217,"kind":2048,"name":"size","url":"classes/rowset.html#size","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"RowSet"},{"id":218,"kind":2048,"name":"property","url":"classes/rowset.html#property","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"RowSet"},{"id":219,"kind":128,"name":"RowStream","url":"classes/rowstream.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":220,"kind":2048,"name":"fetch","url":"classes/rowstream.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":221,"kind":2048,"name":"pipe","url":"classes/rowstream.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":222,"kind":2048,"name":"pipeTo","url":"classes/rowstream.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":223,"kind":2048,"name":"exceptionHandler","url":"classes/rowstream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":224,"kind":2048,"name":"handler","url":"classes/rowstream.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":225,"kind":2048,"name":"pause","url":"classes/rowstream.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":226,"kind":2048,"name":"resume","url":"classes/rowstream.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":227,"kind":2048,"name":"endHandler","url":"classes/rowstream.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":228,"kind":2048,"name":"close","url":"classes/rowstream.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":229,"kind":128,"name":"SqlClient","url":"classes/sqlclient.html","classes":"tsd-kind-class"},{"id":230,"kind":2048,"name":"query","url":"classes/sqlclient.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlClient"},{"id":231,"kind":2048,"name":"preparedQuery","url":"classes/sqlclient.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlClient"},{"id":232,"kind":2048,"name":"close","url":"classes/sqlclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlClient"},{"id":233,"kind":128,"name":"SqlConnection","url":"classes/sqlconnection.html","classes":"tsd-kind-class"},{"id":234,"kind":2048,"name":"prepare","url":"classes/sqlconnection.html#prepare","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":235,"kind":2048,"name":"exceptionHandler","url":"classes/sqlconnection.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":236,"kind":2048,"name":"closeHandler","url":"classes/sqlconnection.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":237,"kind":2048,"name":"begin","url":"classes/sqlconnection.html#begin","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":238,"kind":2048,"name":"isSSL","url":"classes/sqlconnection.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":239,"kind":2048,"name":"close","url":"classes/sqlconnection.html#close","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"SqlConnection"},{"id":240,"kind":2048,"name":"databaseMetadata","url":"classes/sqlconnection.html#databasemetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":241,"kind":2048,"name":"query","url":"classes/sqlconnection.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SqlConnection"},{"id":242,"kind":2048,"name":"preparedQuery","url":"classes/sqlconnection.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SqlConnection"},{"id":243,"kind":128,"name":"SqlResult","url":"classes/sqlresult.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":244,"kind":2048,"name":"rowCount","url":"classes/sqlresult.html#rowcount","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":245,"kind":2048,"name":"columnsNames","url":"classes/sqlresult.html#columnsnames","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":246,"kind":2048,"name":"size","url":"classes/sqlresult.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":247,"kind":2048,"name":"property","url":"classes/sqlresult.html#property","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SqlResult"},{"id":248,"kind":2048,"name":"value","url":"classes/sqlresult.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":249,"kind":2048,"name":"next","url":"classes/sqlresult.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":250,"kind":128,"name":"Transaction","url":"classes/transaction.html","classes":"tsd-kind-class"},{"id":251,"kind":2048,"name":"prepare","url":"classes/transaction.html#prepare","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":252,"kind":2048,"name":"commit","url":"classes/transaction.html#commit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":253,"kind":2048,"name":"rollback","url":"classes/transaction.html#rollback","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":254,"kind":2048,"name":"abortHandler","url":"classes/transaction.html#aborthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":255,"kind":2048,"name":"close","url":"classes/transaction.html#close","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Transaction"},{"id":256,"kind":2048,"name":"query","url":"classes/transaction.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Transaction"},{"id":257,"kind":2048,"name":"preparedQuery","url":"classes/transaction.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Transaction"},{"id":258,"kind":128,"name":"Tuple","url":"classes/tuple.html","classes":"tsd-kind-class"},{"id":259,"kind":1024,"name":"JSON_NULL","url":"classes/tuple.html#json_null","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":260,"kind":2048,"name":"tuple","url":"classes/tuple.html#tuple-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":261,"kind":2048,"name":"wrap","url":"classes/tuple.html#wrap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":262,"kind":2048,"name":"of","url":"classes/tuple.html#of","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":263,"kind":2048,"name":"getValue","url":"classes/tuple.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":264,"kind":2048,"name":"getBoolean","url":"classes/tuple.html#getboolean","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":265,"kind":2048,"name":"getShort","url":"classes/tuple.html#getshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":266,"kind":2048,"name":"getInteger","url":"classes/tuple.html#getinteger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":267,"kind":2048,"name":"getLong","url":"classes/tuple.html#getlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":268,"kind":2048,"name":"getFloat","url":"classes/tuple.html#getfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":269,"kind":2048,"name":"getDouble","url":"classes/tuple.html#getdouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":270,"kind":2048,"name":"getString","url":"classes/tuple.html#getstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":271,"kind":2048,"name":"getBuffer","url":"classes/tuple.html#getbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":272,"kind":2048,"name":"addValue","url":"classes/tuple.html#addvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":273,"kind":2048,"name":"addBoolean","url":"classes/tuple.html#addboolean","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":274,"kind":2048,"name":"addShort","url":"classes/tuple.html#addshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":275,"kind":2048,"name":"addInteger","url":"classes/tuple.html#addinteger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":276,"kind":2048,"name":"addLong","url":"classes/tuple.html#addlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":277,"kind":2048,"name":"addFloat","url":"classes/tuple.html#addfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":278,"kind":2048,"name":"addDouble","url":"classes/tuple.html#adddouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":279,"kind":2048,"name":"addString","url":"classes/tuple.html#addstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":280,"kind":2048,"name":"addBuffer","url":"classes/tuple.html#addbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":281,"kind":2048,"name":"get","url":"classes/tuple.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Tuple"},{"id":282,"kind":2048,"name":"size","url":"classes/tuple.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":283,"kind":2048,"name":"clear","url":"classes/tuple.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":284,"kind":2048,"name":"deepToString","url":"classes/tuple.html#deeptostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":285,"kind":2048,"name":"getTemporal","url":"classes/tuple.html#gettemporal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":286,"kind":2048,"name":"getLocalDate","url":"classes/tuple.html#getlocaldate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":287,"kind":2048,"name":"getLocalTime","url":"classes/tuple.html#getlocaltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":288,"kind":2048,"name":"getLocalDateTime","url":"classes/tuple.html#getlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":289,"kind":2048,"name":"getOffsetTime","url":"classes/tuple.html#getoffsettime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":290,"kind":2048,"name":"getOffsetDateTime","url":"classes/tuple.html#getoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":291,"kind":2048,"name":"getUUID","url":"classes/tuple.html#getuuid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":292,"kind":2048,"name":"getBigDecimal","url":"classes/tuple.html#getbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":293,"kind":2048,"name":"getBooleanArray","url":"classes/tuple.html#getbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":294,"kind":2048,"name":"getShortArray","url":"classes/tuple.html#getshortarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":295,"kind":2048,"name":"getIntegerArray","url":"classes/tuple.html#getintegerarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":296,"kind":2048,"name":"getLongArray","url":"classes/tuple.html#getlongarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":297,"kind":2048,"name":"getFloatArray","url":"classes/tuple.html#getfloatarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":298,"kind":2048,"name":"getDoubleArray","url":"classes/tuple.html#getdoublearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":299,"kind":2048,"name":"getStringArray","url":"classes/tuple.html#getstringarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":300,"kind":2048,"name":"getTemporalArray","url":"classes/tuple.html#gettemporalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":301,"kind":2048,"name":"getLocalDateArray","url":"classes/tuple.html#getlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":302,"kind":2048,"name":"getLocalTimeArray","url":"classes/tuple.html#getlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":303,"kind":2048,"name":"getLocalDateTimeArray","url":"classes/tuple.html#getlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":304,"kind":2048,"name":"getOffsetTimeArray","url":"classes/tuple.html#getoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":305,"kind":2048,"name":"getOffsetDateTimeArray","url":"classes/tuple.html#getoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":306,"kind":2048,"name":"getUUIDArray","url":"classes/tuple.html#getuuidarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":307,"kind":2048,"name":"getBigDecimalArray","url":"classes/tuple.html#getbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":308,"kind":2048,"name":"addTemporal","url":"classes/tuple.html#addtemporal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":309,"kind":2048,"name":"addLocalDate","url":"classes/tuple.html#addlocaldate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":310,"kind":2048,"name":"addLocalTime","url":"classes/tuple.html#addlocaltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":311,"kind":2048,"name":"addLocalDateTime","url":"classes/tuple.html#addlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":312,"kind":2048,"name":"addOffsetTime","url":"classes/tuple.html#addoffsettime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":313,"kind":2048,"name":"addOffsetDateTime","url":"classes/tuple.html#addoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":314,"kind":2048,"name":"addUUID","url":"classes/tuple.html#adduuid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":315,"kind":2048,"name":"addBigDecimal","url":"classes/tuple.html#addbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":316,"kind":2048,"name":"addBooleanArray","url":"classes/tuple.html#addbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":317,"kind":2048,"name":"addShortArray","url":"classes/tuple.html#addshortarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":318,"kind":2048,"name":"addIntegerArray","url":"classes/tuple.html#addintegerarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":319,"kind":2048,"name":"addLongArray","url":"classes/tuple.html#addlongarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":320,"kind":2048,"name":"addFloatArray","url":"classes/tuple.html#addfloatarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":321,"kind":2048,"name":"addDoubleArray","url":"classes/tuple.html#adddoublearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":322,"kind":2048,"name":"addStringArray","url":"classes/tuple.html#addstringarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":323,"kind":2048,"name":"addTemporalArray","url":"classes/tuple.html#addtemporalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":324,"kind":2048,"name":"addLocalDateArray","url":"classes/tuple.html#addlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":325,"kind":2048,"name":"addLocalTimeArray","url":"classes/tuple.html#addlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":326,"kind":2048,"name":"addLocalDateTimeArray","url":"classes/tuple.html#addlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":327,"kind":2048,"name":"addOffsetTimeArray","url":"classes/tuple.html#addoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":328,"kind":2048,"name":"addOffsetDateTimeArray","url":"classes/tuple.html#addoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":329,"kind":2048,"name":"addUUIDArray","url":"classes/tuple.html#adduuidarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":330,"kind":2048,"name":"addBigDecimalArray","url":"classes/tuple.html#addbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,39.333]],["parent/0",[]],["name/1",[1,48.888]],["parent/1",[0,3.843]],["name/2",[2,53.997]],["parent/2",[0,3.843]],["name/3",[3,53.997]],["parent/3",[0,3.843]],["name/4",[4,53.997]],["parent/4",[0,3.843]],["name/5",[5,53.997]],["parent/5",[0,3.843]],["name/6",[6,12.151]],["parent/6",[]],["name/7",[1,48.888]],["parent/7",[6,1.187]],["name/8",[7,53.997]],["parent/8",[6,1.187]],["name/9",[8,53.997]],["parent/9",[6,1.187]],["name/10",[9,53.997]],["parent/10",[6,1.187]],["name/11",[10,53.997]],["parent/11",[6,1.187]],["name/12",[11,53.997]],["parent/12",[6,1.187]],["name/13",[12,53.997]],["parent/13",[6,1.187]],["name/14",[13,53.997]],["parent/14",[6,1.187]],["name/15",[14,53.997]],["parent/15",[6,1.187]],["name/16",[15,53.997]],["parent/16",[6,1.187]],["name/17",[16,53.997]],["parent/17",[6,1.187]],["name/18",[17,53.997]],["parent/18",[6,1.187]],["name/19",[18,53.997]],["parent/19",[6,1.187]],["name/20",[19,53.997]],["parent/20",[6,1.187]],["name/21",[20,53.997]],["parent/21",[6,1.187]],["name/22",[21,53.997]],["parent/22",[6,1.187]],["name/23",[22,53.997]],["parent/23",[6,1.187]],["name/24",[23,53.997]],["parent/24",[6,1.187]],["name/25",[24,53.997]],["parent/25",[6,1.187]],["name/26",[25,53.997]],["parent/26",[6,1.187]],["name/27",[26,53.997]],["parent/27",[6,1.187]],["name/28",[27,53.997]],["parent/28",[6,1.187]],["name/29",[28,53.997]],["parent/29",[6,1.187]],["name/30",[29,53.997]],["parent/30",[6,1.187]],["name/31",[30,53.997]],["parent/31",[6,1.187]],["name/32",[31,53.997]],["parent/32",[6,1.187]],["name/33",[32,53.997]],["parent/33",[6,1.187]],["name/34",[33,53.997]],["parent/34",[6,1.187]],["name/35",[34,53.997]],["parent/35",[6,1.187]],["name/36",[35,53.997]],["parent/36",[6,1.187]],["name/37",[36,53.997]],["parent/37",[6,1.187]],["name/38",[37,53.997]],["parent/38",[6,1.187]],["name/39",[38,53.997]],["parent/39",[6,1.187]],["name/40",[39,53.997]],["parent/40",[6,1.187]],["name/41",[40,53.997]],["parent/41",[6,1.187]],["name/42",[41,53.997]],["parent/42",[6,1.187]],["name/43",[42,53.997]],["parent/43",[6,1.187]],["name/44",[43,53.997]],["parent/44",[6,1.187]],["name/45",[44,53.997]],["parent/45",[6,1.187]],["name/46",[45,53.997]],["parent/46",[6,1.187]],["name/47",[46,53.997]],["parent/47",[6,1.187]],["name/48",[47,53.997]],["parent/48",[6,1.187]],["name/49",[48,53.997]],["parent/49",[6,1.187]],["name/50",[49,53.997]],["parent/50",[6,1.187]],["name/51",[50,53.997]],["parent/51",[6,1.187]],["name/52",[51,53.997]],["parent/52",[6,1.187]],["name/53",[52,53.997]],["parent/53",[6,1.187]],["name/54",[53,53.997]],["parent/54",[6,1.187]],["name/55",[54,53.997]],["parent/55",[6,1.187]],["name/56",[55,53.997]],["parent/56",[6,1.187]],["name/57",[56,53.997]],["parent/57",[6,1.187]],["name/58",[57,53.997]],["parent/58",[6,1.187]],["name/59",[58,53.997]],["parent/59",[6,1.187]],["name/60",[59,53.997]],["parent/60",[6,1.187]],["name/61",[60,53.997]],["parent/61",[6,1.187]],["name/62",[61,53.997]],["parent/62",[6,1.187]],["name/63",[62,53.997]],["parent/63",[6,1.187]],["name/64",[63,53.997]],["parent/64",[6,1.187]],["name/65",[64,53.997]],["parent/65",[6,1.187]],["name/66",[65,53.997]],["parent/66",[6,1.187]],["name/67",[66,53.997]],["parent/67",[6,1.187]],["name/68",[67,53.997]],["parent/68",[6,1.187]],["name/69",[68,53.997]],["parent/69",[6,1.187]],["name/70",[69,53.997]],["parent/70",[6,1.187]],["name/71",[70,53.997]],["parent/71",[6,1.187]],["name/72",[71,53.997]],["parent/72",[6,1.187]],["name/73",[72,53.997]],["parent/73",[6,1.187]],["name/74",[73,53.997]],["parent/74",[6,1.187]],["name/75",[74,53.997]],["parent/75",[6,1.187]],["name/76",[75,48.888]],["parent/76",[6,1.187]],["name/77",[76,53.997]],["parent/77",[6,1.187]],["name/78",[77,53.997]],["parent/78",[6,1.187]],["name/79",[78,53.997]],["parent/79",[6,1.187]],["name/80",[79,53.997]],["parent/80",[6,1.187]],["name/81",[80,53.997]],["parent/81",[6,1.187]],["name/82",[81,53.997]],["parent/82",[6,1.187]],["name/83",[82,53.997]],["parent/83",[6,1.187]],["name/84",[83,53.997]],["parent/84",[6,1.187]],["name/85",[84,53.997]],["parent/85",[6,1.187]],["name/86",[85,53.997]],["parent/86",[6,1.187]],["name/87",[86,53.997]],["parent/87",[6,1.187]],["name/88",[87,53.997]],["parent/88",[6,1.187]],["name/89",[88,53.997]],["parent/89",[6,1.187]],["name/90",[89,53.997]],["parent/90",[6,1.187]],["name/91",[90,53.997]],["parent/91",[6,1.187]],["name/92",[91,53.997]],["parent/92",[6,1.187]],["name/93",[92,53.997]],["parent/93",[6,1.187]],["name/94",[93,53.997]],["parent/94",[6,1.187]],["name/95",[94,53.997]],["parent/95",[6,1.187]],["name/96",[95,53.997]],["parent/96",[6,1.187]],["name/97",[96,53.997]],["parent/97",[6,1.187]],["name/98",[97,53.997]],["parent/98",[6,1.187]],["name/99",[98,53.997]],["parent/99",[6,1.187]],["name/100",[99,53.997]],["parent/100",[6,1.187]],["name/101",[100,53.997]],["parent/101",[6,1.187]],["name/102",[101,53.997]],["parent/102",[6,1.187]],["name/103",[102,53.997]],["parent/103",[6,1.187]],["name/104",[103,41.004]],["parent/104",[]],["name/105",[104,53.997]],["parent/105",[103,4.006]],["name/106",[105,53.997]],["parent/106",[103,4.006]],["name/107",[106,37.902]],["parent/107",[103,4.006]],["name/108",[107,39.333]],["parent/108",[]],["name/109",[108,53.997]],["parent/109",[107,3.843]],["name/110",[109,53.997]],["parent/110",[107,3.843]],["name/111",[110,53.997]],["parent/111",[107,3.843]],["name/112",[111,53.997]],["parent/112",[107,3.843]],["name/113",[112,36.651]],["parent/113",[]],["name/114",[112,36.651]],["parent/114",[112,3.581]],["name/115",[113,53.997]],["parent/115",[112,3.581]],["name/116",[114,36.651]],["parent/116",[112,3.581]],["name/117",[115,36.651]],["parent/117",[112,3.581]],["name/118",[116,48.888]],["parent/118",[112,3.581]],["name/119",[106,37.902]],["parent/119",[112,3.581]],["name/120",[115,36.651]],["parent/120",[]],["name/121",[117,48.888]],["parent/121",[115,3.581]],["name/122",[118,53.997]],["parent/122",[115,3.581]],["name/123",[119,48.888]],["parent/123",[115,3.581]],["name/124",[120,41.004]],["parent/124",[]],["name/125",[114,36.651]],["parent/125",[120,4.006]],["name/126",[103,41.004]],["parent/126",[120,4.006]],["name/127",[121,53.997]],["parent/127",[120,4.006]],["name/128",[106,37.902]],["parent/128",[120,4.006]],["name/129",[122,53.997]],["parent/129",[]],["name/130",[114,36.651]],["parent/130",[]],["name/131",[117,48.888]],["parent/131",[114,3.581]],["name/132",[119,48.888]],["parent/132",[114,3.581]],["name/133",[123,14.81]],["parent/133",[]],["name/134",[124,48.888]],["parent/134",[123,1.447]],["name/135",[125,53.997]],["parent/135",[123,1.447]],["name/136",[126,53.997]],["parent/136",[123,1.447]],["name/137",[127,48.888]],["parent/137",[123,1.447]],["name/138",[128,48.888]],["parent/138",[123,1.447]],["name/139",[129,48.888]],["parent/139",[123,1.447]],["name/140",[130,48.888]],["parent/140",[123,1.447]],["name/141",[131,48.888]],["parent/141",[123,1.447]],["name/142",[132,48.888]],["parent/142",[123,1.447]],["name/143",[133,48.888]],["parent/143",[123,1.447]],["name/144",[134,48.888]],["parent/144",[123,1.447]],["name/145",[135,48.888]],["parent/145",[123,1.447]],["name/146",[136,48.888]],["parent/146",[123,1.447]],["name/147",[137,48.888]],["parent/147",[123,1.447]],["name/148",[138,48.888]],["parent/148",[123,1.447]],["name/149",[139,48.888]],["parent/149",[123,1.447]],["name/150",[140,48.888]],["parent/150",[123,1.447]],["name/151",[141,48.888]],["parent/151",[123,1.447]],["name/152",[142,48.888]],["parent/152",[123,1.447]],["name/153",[143,48.888]],["parent/153",[123,1.447]],["name/154",[144,48.888]],["parent/154",[123,1.447]],["name/155",[145,48.888]],["parent/155",[123,1.447]],["name/156",[146,48.888]],["parent/156",[123,1.447]],["name/157",[147,48.888]],["parent/157",[123,1.447]],["name/158",[148,48.888]],["parent/158",[123,1.447]],["name/159",[149,48.888]],["parent/159",[123,1.447]],["name/160",[150,48.888]],["parent/160",[123,1.447]],["name/161",[151,48.888]],["parent/161",[123,1.447]],["name/162",[152,48.888]],["parent/162",[123,1.447]],["name/163",[153,48.888]],["parent/163",[123,1.447]],["name/164",[154,48.888]],["parent/164",[123,1.447]],["name/165",[155,48.888]],["parent/165",[123,1.447]],["name/166",[156,48.888]],["parent/166",[123,1.447]],["name/167",[157,48.888]],["parent/167",[123,1.447]],["name/168",[158,48.888]],["parent/168",[123,1.447]],["name/169",[159,14.81]],["parent/169",[123,1.447]],["name/170",[160,48.888]],["parent/170",[123,1.447]],["name/171",[161,48.888]],["parent/171",[123,1.447]],["name/172",[162,48.888]],["parent/172",[123,1.447]],["name/173",[163,48.888]],["parent/173",[123,1.447]],["name/174",[164,48.888]],["parent/174",[123,1.447]],["name/175",[165,48.888]],["parent/175",[123,1.447]],["name/176",[166,48.888]],["parent/176",[123,1.447]],["name/177",[167,48.888]],["parent/177",[123,1.447]],["name/178",[168,48.888]],["parent/178",[123,1.447]],["name/179",[169,48.888]],["parent/179",[123,1.447]],["name/180",[170,48.888]],["parent/180",[123,1.447]],["name/181",[171,48.888]],["parent/181",[123,1.447]],["name/182",[172,43.011]],["parent/182",[123,1.447]],["name/183",[173,48.888]],["parent/183",[123,1.447]],["name/184",[174,48.888]],["parent/184",[123,1.447]],["name/185",[175,48.888]],["parent/185",[123,1.447]],["name/186",[176,48.888]],["parent/186",[123,1.447]],["name/187",[177,48.888]],["parent/187",[123,1.447]],["name/188",[178,48.888]],["parent/188",[123,1.447]],["name/189",[179,48.888]],["parent/189",[123,1.447]],["name/190",[180,48.888]],["parent/190",[123,1.447]],["name/191",[181,48.888]],["parent/191",[123,1.447]],["name/192",[182,48.888]],["parent/192",[123,1.447]],["name/193",[183,48.888]],["parent/193",[123,1.447]],["name/194",[184,48.888]],["parent/194",[123,1.447]],["name/195",[185,48.888]],["parent/195",[123,1.447]],["name/196",[186,48.888]],["parent/196",[123,1.447]],["name/197",[187,48.888]],["parent/197",[123,1.447]],["name/198",[188,48.888]],["parent/198",[123,1.447]],["name/199",[189,48.888]],["parent/199",[123,1.447]],["name/200",[190,48.888]],["parent/200",[123,1.447]],["name/201",[191,48.888]],["parent/201",[123,1.447]],["name/202",[192,48.888]],["parent/202",[123,1.447]],["name/203",[193,48.888]],["parent/203",[123,1.447]],["name/204",[194,48.888]],["parent/204",[123,1.447]],["name/205",[195,48.888]],["parent/205",[123,1.447]],["name/206",[196,48.888]],["parent/206",[123,1.447]],["name/207",[197,48.888]],["parent/207",[123,1.447]],["name/208",[198,45.524]],["parent/208",[]],["name/209",[199,53.997]],["parent/209",[198,4.448]],["name/210",[200,45.524]],["parent/210",[198,4.448]],["name/211",[201,36.651]],["parent/211",[]],["name/212",[202,48.888]],["parent/212",[201,3.581]],["name/213",[203,53.997]],["parent/213",[201,3.581]],["name/214",[200,45.524]],["parent/214",[201,3.581]],["name/215",[204,48.888]],["parent/215",[201,3.581]],["name/216",[205,48.888]],["parent/216",[201,3.581]],["name/217",[172,43.011]],["parent/217",[201,3.581]],["name/218",[206,48.888]],["parent/218",[201,3.581]],["name/219",[207,34.538]],["parent/219",[]],["name/220",[208,53.997]],["parent/220",[207,3.374]],["name/221",[209,53.997]],["parent/221",[207,3.374]],["name/222",[210,53.997]],["parent/222",[207,3.374]],["name/223",[211,48.888]],["parent/223",[207,3.374]],["name/224",[212,53.997]],["parent/224",[207,3.374]],["name/225",[213,53.997]],["parent/225",[207,3.374]],["name/226",[214,53.997]],["parent/226",[207,3.374]],["name/227",[215,53.997]],["parent/227",[207,3.374]],["name/228",[106,37.902]],["parent/228",[207,3.374]],["name/229",[216,43.011]],["parent/229",[]],["name/230",[114,36.651]],["parent/230",[216,4.202]],["name/231",[115,36.651]],["parent/231",[216,4.202]],["name/232",[106,37.902]],["parent/232",[216,4.202]],["name/233",[217,34.538]],["parent/233",[]],["name/234",[218,48.888]],["parent/234",[217,3.374]],["name/235",[211,48.888]],["parent/235",[217,3.374]],["name/236",[219,53.997]],["parent/236",[217,3.374]],["name/237",[116,48.888]],["parent/237",[217,3.374]],["name/238",[75,48.888]],["parent/238",[217,3.374]],["name/239",[106,37.902]],["parent/239",[217,3.374]],["name/240",[107,39.333]],["parent/240",[217,3.374]],["name/241",[114,36.651]],["parent/241",[217,3.374]],["name/242",[115,36.651]],["parent/242",[217,3.374]],["name/243",[220,37.902]],["parent/243",[]],["name/244",[204,48.888]],["parent/244",[220,3.703]],["name/245",[205,48.888]],["parent/245",[220,3.703]],["name/246",[172,43.011]],["parent/246",[220,3.703]],["name/247",[206,48.888]],["parent/247",[220,3.703]],["name/248",[202,48.888]],["parent/248",[220,3.703]],["name/249",[200,45.524]],["parent/249",[220,3.703]],["name/250",[221,36.651]],["parent/250",[]],["name/251",[218,48.888]],["parent/251",[221,3.581]],["name/252",[222,53.997]],["parent/252",[221,3.581]],["name/253",[223,53.997]],["parent/253",[221,3.581]],["name/254",[224,53.997]],["parent/254",[221,3.581]],["name/255",[106,37.902]],["parent/255",[221,3.581]],["name/256",[114,36.651]],["parent/256",[221,3.581]],["name/257",[115,36.651]],["parent/257",[221,3.581]],["name/258",[159,14.81]],["parent/258",[]],["name/259",[124,48.888]],["parent/259",[159,1.447]],["name/260",[159,14.81]],["parent/260",[159,1.447]],["name/261",[160,48.888]],["parent/261",[159,1.447]],["name/262",[161,48.888]],["parent/262",[159,1.447]],["name/263",[127,48.888]],["parent/263",[159,1.447]],["name/264",[128,48.888]],["parent/264",[159,1.447]],["name/265",[129,48.888]],["parent/265",[159,1.447]],["name/266",[130,48.888]],["parent/266",[159,1.447]],["name/267",[131,48.888]],["parent/267",[159,1.447]],["name/268",[132,48.888]],["parent/268",[159,1.447]],["name/269",[133,48.888]],["parent/269",[159,1.447]],["name/270",[134,48.888]],["parent/270",[159,1.447]],["name/271",[135,48.888]],["parent/271",[159,1.447]],["name/272",[162,48.888]],["parent/272",[159,1.447]],["name/273",[163,48.888]],["parent/273",[159,1.447]],["name/274",[164,48.888]],["parent/274",[159,1.447]],["name/275",[165,48.888]],["parent/275",[159,1.447]],["name/276",[166,48.888]],["parent/276",[159,1.447]],["name/277",[167,48.888]],["parent/277",[159,1.447]],["name/278",[168,48.888]],["parent/278",[159,1.447]],["name/279",[169,48.888]],["parent/279",[159,1.447]],["name/280",[170,48.888]],["parent/280",[159,1.447]],["name/281",[171,48.888]],["parent/281",[159,1.447]],["name/282",[172,43.011]],["parent/282",[159,1.447]],["name/283",[173,48.888]],["parent/283",[159,1.447]],["name/284",[174,48.888]],["parent/284",[159,1.447]],["name/285",[136,48.888]],["parent/285",[159,1.447]],["name/286",[137,48.888]],["parent/286",[159,1.447]],["name/287",[138,48.888]],["parent/287",[159,1.447]],["name/288",[139,48.888]],["parent/288",[159,1.447]],["name/289",[140,48.888]],["parent/289",[159,1.447]],["name/290",[141,48.888]],["parent/290",[159,1.447]],["name/291",[142,48.888]],["parent/291",[159,1.447]],["name/292",[143,48.888]],["parent/292",[159,1.447]],["name/293",[144,48.888]],["parent/293",[159,1.447]],["name/294",[145,48.888]],["parent/294",[159,1.447]],["name/295",[146,48.888]],["parent/295",[159,1.447]],["name/296",[147,48.888]],["parent/296",[159,1.447]],["name/297",[148,48.888]],["parent/297",[159,1.447]],["name/298",[149,48.888]],["parent/298",[159,1.447]],["name/299",[150,48.888]],["parent/299",[159,1.447]],["name/300",[151,48.888]],["parent/300",[159,1.447]],["name/301",[152,48.888]],["parent/301",[159,1.447]],["name/302",[153,48.888]],["parent/302",[159,1.447]],["name/303",[154,48.888]],["parent/303",[159,1.447]],["name/304",[155,48.888]],["parent/304",[159,1.447]],["name/305",[156,48.888]],["parent/305",[159,1.447]],["name/306",[157,48.888]],["parent/306",[159,1.447]],["name/307",[158,48.888]],["parent/307",[159,1.447]],["name/308",[175,48.888]],["parent/308",[159,1.447]],["name/309",[176,48.888]],["parent/309",[159,1.447]],["name/310",[177,48.888]],["parent/310",[159,1.447]],["name/311",[178,48.888]],["parent/311",[159,1.447]],["name/312",[179,48.888]],["parent/312",[159,1.447]],["name/313",[180,48.888]],["parent/313",[159,1.447]],["name/314",[181,48.888]],["parent/314",[159,1.447]],["name/315",[182,48.888]],["parent/315",[159,1.447]],["name/316",[183,48.888]],["parent/316",[159,1.447]],["name/317",[184,48.888]],["parent/317",[159,1.447]],["name/318",[185,48.888]],["parent/318",[159,1.447]],["name/319",[186,48.888]],["parent/319",[159,1.447]],["name/320",[187,48.888]],["parent/320",[159,1.447]],["name/321",[188,48.888]],["parent/321",[159,1.447]],["name/322",[189,48.888]],["parent/322",[159,1.447]],["name/323",[190,48.888]],["parent/323",[159,1.447]],["name/324",[191,48.888]],["parent/324",[159,1.447]],["name/325",[192,48.888]],["parent/325",[159,1.447]],["name/326",[193,48.888]],["parent/326",[159,1.447]],["name/327",[194,48.888]],["parent/327",[159,1.447]],["name/328",[195,48.888]],["parent/328",[159,1.447]],["name/329",[196,48.888]],["parent/329",[159,1.447]],["name/330",[197,48.888]],["parent/330",[159,1.447]]],"invertedIndex":[["aborthandler",{"_index":224,"name":{"254":{}},"parent":{}}],["addbigdecimal",{"_index":182,"name":{"192":{},"315":{}},"parent":{}}],["addbigdecimalarray",{"_index":197,"name":{"207":{},"330":{}},"parent":{}}],["addboolean",{"_index":163,"name":{"173":{},"273":{}},"parent":{}}],["addbooleanarray",{"_index":183,"name":{"193":{},"316":{}},"parent":{}}],["addbuffer",{"_index":170,"name":{"180":{},"280":{}},"parent":{}}],["addcrlpath",{"_index":12,"name":{"13":{}},"parent":{}}],["addcrlvalue",{"_index":14,"name":{"15":{}},"parent":{}}],["adddouble",{"_index":168,"name":{"178":{},"278":{}},"parent":{}}],["adddoublearray",{"_index":188,"name":{"198":{},"321":{}},"parent":{}}],["addenabledciphersuite",{"_index":18,"name":{"19":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":21,"name":{"22":{}},"parent":{}}],["addfloat",{"_index":167,"name":{"177":{},"277":{}},"parent":{}}],["addfloatarray",{"_index":187,"name":{"197":{},"320":{}},"parent":{}}],["addinteger",{"_index":165,"name":{"175":{},"275":{}},"parent":{}}],["addintegerarray",{"_index":185,"name":{"195":{},"318":{}},"parent":{}}],["addlocaldate",{"_index":176,"name":{"186":{},"309":{}},"parent":{}}],["addlocaldatearray",{"_index":191,"name":{"201":{},"324":{}},"parent":{}}],["addlocaldatetime",{"_index":178,"name":{"188":{},"311":{}},"parent":{}}],["addlocaldatetimearray",{"_index":193,"name":{"203":{},"326":{}},"parent":{}}],["addlocaltime",{"_index":177,"name":{"187":{},"310":{}},"parent":{}}],["addlocaltimearray",{"_index":192,"name":{"202":{},"325":{}},"parent":{}}],["addlong",{"_index":166,"name":{"176":{},"276":{}},"parent":{}}],["addlongarray",{"_index":186,"name":{"196":{},"319":{}},"parent":{}}],["addoffsetdatetime",{"_index":180,"name":{"190":{},"313":{}},"parent":{}}],["addoffsetdatetimearray",{"_index":195,"name":{"205":{},"328":{}},"parent":{}}],["addoffsettime",{"_index":179,"name":{"189":{},"312":{}},"parent":{}}],["addoffsettimearray",{"_index":194,"name":{"204":{},"327":{}},"parent":{}}],["addshort",{"_index":164,"name":{"174":{},"274":{}},"parent":{}}],["addshortarray",{"_index":184,"name":{"194":{},"317":{}},"parent":{}}],["addstring",{"_index":169,"name":{"179":{},"279":{}},"parent":{}}],["addstringarray",{"_index":189,"name":{"199":{},"322":{}},"parent":{}}],["addtemporal",{"_index":175,"name":{"185":{},"308":{}},"parent":{}}],["addtemporalarray",{"_index":190,"name":{"200":{},"323":{}},"parent":{}}],["adduuid",{"_index":181,"name":{"191":{},"314":{}},"parent":{}}],["adduuidarray",{"_index":196,"name":{"206":{},"329":{}},"parent":{}}],["addvalue",{"_index":162,"name":{"172":{},"272":{}},"parent":{}}],["begin",{"_index":116,"name":{"118":{},"237":{}},"parent":{}}],["clear",{"_index":173,"name":{"183":{},"283":{}},"parent":{}}],["close",{"_index":106,"name":{"107":{},"119":{},"128":{},"228":{},"232":{},"239":{},"255":{}},"parent":{}}],["closehandler",{"_index":219,"name":{"236":{}},"parent":{}}],["columnsnames",{"_index":205,"name":{"216":{},"245":{}},"parent":{}}],["commit",{"_index":222,"name":{"252":{}},"parent":{}}],["constructor",{"_index":1,"name":{"1":{},"7":{}},"parent":{}}],["createstream",{"_index":121,"name":{"127":{}},"parent":{}}],["cursor",{"_index":103,"name":{"104":{},"126":{}},"parent":{"105":{},"106":{},"107":{}}}],["databasemetadata",{"_index":107,"name":{"108":{},"240":{}},"parent":{"109":{},"110":{},"111":{},"112":{}}}],["deeptostring",{"_index":174,"name":{"184":{},"284":{}},"parent":{}}],["endhandler",{"_index":215,"name":{"227":{}},"parent":{}}],["exceptionhandler",{"_index":211,"name":{"223":{},"235":{}},"parent":{}}],["execute",{"_index":117,"name":{"121":{},"131":{}},"parent":{}}],["executebatch",{"_index":118,"name":{"122":{}},"parent":{}}],["fetch",{"_index":208,"name":{"220":{}},"parent":{}}],["fullversion",{"_index":109,"name":{"110":{}},"parent":{}}],["get",{"_index":171,"name":{"181":{},"281":{}},"parent":{}}],["getbigdecimal",{"_index":143,"name":{"153":{},"292":{}},"parent":{}}],["getbigdecimalarray",{"_index":158,"name":{"168":{},"307":{}},"parent":{}}],["getboolean",{"_index":128,"name":{"138":{},"264":{}},"parent":{}}],["getbooleanarray",{"_index":144,"name":{"154":{},"293":{}},"parent":{}}],["getbuffer",{"_index":135,"name":{"145":{},"271":{}},"parent":{}}],["getcachepreparedstatements",{"_index":7,"name":{"8":{}},"parent":{}}],["getcolumnindex",{"_index":126,"name":{"136":{}},"parent":{}}],["getcolumnname",{"_index":125,"name":{"135":{}},"parent":{}}],["getconnection",{"_index":113,"name":{"115":{}},"parent":{}}],["getconnecttimeout",{"_index":9,"name":{"10":{}},"parent":{}}],["getcrlpaths",{"_index":11,"name":{"12":{}},"parent":{}}],["getcrlvalues",{"_index":13,"name":{"14":{}},"parent":{}}],["getdatabase",{"_index":15,"name":{"16":{}},"parent":{}}],["getdouble",{"_index":133,"name":{"143":{},"269":{}},"parent":{}}],["getdoublearray",{"_index":149,"name":{"159":{},"298":{}},"parent":{}}],["getenabledciphersuites",{"_index":17,"name":{"18":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":19,"name":{"20":{}},"parent":{}}],["getfloat",{"_index":132,"name":{"142":{},"268":{}},"parent":{}}],["getfloatarray",{"_index":148,"name":{"158":{},"297":{}},"parent":{}}],["gethost",{"_index":22,"name":{"23":{}},"parent":{}}],["gethostnameverificationalgorithm",{"_index":24,"name":{"25":{}},"parent":{}}],["getidletimeout",{"_index":26,"name":{"27":{}},"parent":{}}],["getidletimeoutunit",{"_index":28,"name":{"29":{}},"parent":{}}],["getinteger",{"_index":130,"name":{"140":{},"266":{}},"parent":{}}],["getintegerarray",{"_index":146,"name":{"156":{},"295":{}},"parent":{}}],["getjdksslengineoptions",{"_index":30,"name":{"31":{}},"parent":{}}],["getkeystoreoptions",{"_index":32,"name":{"33":{}},"parent":{}}],["getlocaladdress",{"_index":34,"name":{"35":{}},"parent":{}}],["getlocaldate",{"_index":137,"name":{"147":{},"286":{}},"parent":{}}],["getlocaldatearray",{"_index":152,"name":{"162":{},"301":{}},"parent":{}}],["getlocaldatetime",{"_index":139,"name":{"149":{},"288":{}},"parent":{}}],["getlocaldatetimearray",{"_index":154,"name":{"164":{},"303":{}},"parent":{}}],["getlocaltime",{"_index":138,"name":{"148":{},"287":{}},"parent":{}}],["getlocaltimearray",{"_index":153,"name":{"163":{},"302":{}},"parent":{}}],["getlogactivity",{"_index":36,"name":{"37":{}},"parent":{}}],["getlong",{"_index":131,"name":{"141":{},"267":{}},"parent":{}}],["getlongarray",{"_index":147,"name":{"157":{},"296":{}},"parent":{}}],["getmaxsize",{"_index":2,"name":{"2":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":4,"name":{"4":{}},"parent":{}}],["getmetricsname",{"_index":38,"name":{"39":{}},"parent":{}}],["getoffsetdatetime",{"_index":141,"name":{"151":{},"290":{}},"parent":{}}],["getoffsetdatetimearray",{"_index":156,"name":{"166":{},"305":{}},"parent":{}}],["getoffsettime",{"_index":140,"name":{"150":{},"289":{}},"parent":{}}],["getoffsettimearray",{"_index":155,"name":{"165":{},"304":{}},"parent":{}}],["getopensslengineoptions",{"_index":40,"name":{"41":{}},"parent":{}}],["getpassword",{"_index":42,"name":{"43":{}},"parent":{}}],["getpemkeycertoptions",{"_index":44,"name":{"45":{}},"parent":{}}],["getpemtrustoptions",{"_index":46,"name":{"47":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":48,"name":{"49":{}},"parent":{}}],["getpfxtrustoptions",{"_index":50,"name":{"51":{}},"parent":{}}],["getport",{"_index":52,"name":{"53":{}},"parent":{}}],["getpreparedstatementcachemaxsize",{"_index":54,"name":{"55":{}},"parent":{}}],["getproperties",{"_index":57,"name":{"58":{}},"parent":{}}],["getproxyoptions",{"_index":59,"name":{"60":{}},"parent":{}}],["getreceivebuffersize",{"_index":61,"name":{"62":{}},"parent":{}}],["getreconnectattempts",{"_index":63,"name":{"64":{}},"parent":{}}],["getreconnectinterval",{"_index":65,"name":{"66":{}},"parent":{}}],["getsendbuffersize",{"_index":71,"name":{"72":{}},"parent":{}}],["getshort",{"_index":129,"name":{"139":{},"265":{}},"parent":{}}],["getshortarray",{"_index":145,"name":{"155":{},"294":{}},"parent":{}}],["getsolinger",{"_index":73,"name":{"74":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":77,"name":{"78":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":79,"name":{"80":{}},"parent":{}}],["getstring",{"_index":134,"name":{"144":{},"270":{}},"parent":{}}],["getstringarray",{"_index":150,"name":{"160":{},"299":{}},"parent":{}}],["gettemporal",{"_index":136,"name":{"146":{},"285":{}},"parent":{}}],["gettemporalarray",{"_index":151,"name":{"161":{},"300":{}},"parent":{}}],["gettrafficclass",{"_index":91,"name":{"92":{}},"parent":{}}],["gettruststoreoptions",{"_index":95,"name":{"96":{}},"parent":{}}],["getuser",{"_index":101,"name":{"102":{}},"parent":{}}],["getuuid",{"_index":142,"name":{"152":{},"291":{}},"parent":{}}],["getuuidarray",{"_index":157,"name":{"167":{},"306":{}},"parent":{}}],["getvalue",{"_index":127,"name":{"137":{},"263":{}},"parent":{}}],["handler",{"_index":212,"name":{"224":{}},"parent":{}}],["hasmore",{"_index":105,"name":{"106":{}},"parent":{}}],["hasnext",{"_index":199,"name":{"209":{}},"parent":{}}],["isreuseaddress",{"_index":67,"name":{"68":{}},"parent":{}}],["isreuseport",{"_index":69,"name":{"70":{}},"parent":{}}],["isssl",{"_index":75,"name":{"76":{},"238":{}},"parent":{}}],["istcpcork",{"_index":81,"name":{"82":{}},"parent":{}}],["istcpfastopen",{"_index":83,"name":{"84":{}},"parent":{}}],["istcpkeepalive",{"_index":85,"name":{"86":{}},"parent":{}}],["istcpnodelay",{"_index":87,"name":{"88":{}},"parent":{}}],["istcpquickack",{"_index":89,"name":{"90":{}},"parent":{}}],["istrustall",{"_index":93,"name":{"94":{}},"parent":{}}],["isusealpn",{"_index":97,"name":{"98":{}},"parent":{}}],["isusepooledbuffers",{"_index":99,"name":{"100":{}},"parent":{}}],["iterator",{"_index":203,"name":{"213":{}},"parent":{}}],["json_null",{"_index":124,"name":{"134":{},"259":{}},"parent":{}}],["majorversion",{"_index":110,"name":{"111":{}},"parent":{}}],["mapping",{"_index":119,"name":{"123":{},"132":{}},"parent":{}}],["minorversion",{"_index":111,"name":{"112":{}},"parent":{}}],["next",{"_index":200,"name":{"210":{},"214":{},"249":{}},"parent":{}}],["of",{"_index":161,"name":{"171":{},"262":{}},"parent":{}}],["pause",{"_index":213,"name":{"225":{}},"parent":{}}],["pipe",{"_index":209,"name":{"221":{}},"parent":{}}],["pipeto",{"_index":210,"name":{"222":{}},"parent":{}}],["pool",{"_index":112,"name":{"113":{},"114":{}},"parent":{"114":{},"115":{},"116":{},"117":{},"118":{},"119":{}}}],["pooloptions",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{}}}],["prepare",{"_index":218,"name":{"234":{},"251":{}},"parent":{}}],["preparedquery",{"_index":115,"name":{"117":{},"120":{},"231":{},"242":{},"257":{}},"parent":{"121":{},"122":{},"123":{}}}],["preparedstatement",{"_index":120,"name":{"124":{}},"parent":{"125":{},"126":{},"127":{},"128":{}}}],["productname",{"_index":108,"name":{"109":{}},"parent":{}}],["property",{"_index":206,"name":{"218":{},"247":{}},"parent":{}}],["propertykind",{"_index":122,"name":{"129":{}},"parent":{}}],["query",{"_index":114,"name":{"116":{},"125":{},"130":{},"230":{},"241":{},"256":{}},"parent":{"131":{},"132":{}}}],["read",{"_index":104,"name":{"105":{}},"parent":{}}],["resume",{"_index":214,"name":{"226":{}},"parent":{}}],["rollback",{"_index":223,"name":{"253":{}},"parent":{}}],["row",{"_index":123,"name":{"133":{}},"parent":{"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{}}}],["rowcount",{"_index":204,"name":{"215":{},"244":{}},"parent":{}}],["rowiterator",{"_index":198,"name":{"208":{}},"parent":{"209":{},"210":{}}}],["rowset",{"_index":201,"name":{"211":{}},"parent":{"212":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{}}}],["rowstream",{"_index":207,"name":{"219":{}},"parent":{"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{}}}],["setcachepreparedstatements",{"_index":8,"name":{"9":{}},"parent":{}}],["setconnecttimeout",{"_index":10,"name":{"11":{}},"parent":{}}],["setdatabase",{"_index":16,"name":{"17":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":20,"name":{"21":{}},"parent":{}}],["sethost",{"_index":23,"name":{"24":{}},"parent":{}}],["sethostnameverificationalgorithm",{"_index":25,"name":{"26":{}},"parent":{}}],["setidletimeout",{"_index":27,"name":{"28":{}},"parent":{}}],["setidletimeoutunit",{"_index":29,"name":{"30":{}},"parent":{}}],["setjdksslengineoptions",{"_index":31,"name":{"32":{}},"parent":{}}],["setkeystoreoptions",{"_index":33,"name":{"34":{}},"parent":{}}],["setlocaladdress",{"_index":35,"name":{"36":{}},"parent":{}}],["setlogactivity",{"_index":37,"name":{"38":{}},"parent":{}}],["setmaxsize",{"_index":3,"name":{"3":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":5,"name":{"5":{}},"parent":{}}],["setmetricsname",{"_index":39,"name":{"40":{}},"parent":{}}],["setopensslengineoptions",{"_index":41,"name":{"42":{}},"parent":{}}],["setpassword",{"_index":43,"name":{"44":{}},"parent":{}}],["setpemkeycertoptions",{"_index":45,"name":{"46":{}},"parent":{}}],["setpemtrustoptions",{"_index":47,"name":{"48":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":49,"name":{"50":{}},"parent":{}}],["setpfxtrustoptions",{"_index":51,"name":{"52":{}},"parent":{}}],["setport",{"_index":53,"name":{"54":{}},"parent":{}}],["setpreparedstatementcachemaxsize",{"_index":55,"name":{"56":{}},"parent":{}}],["setpreparedstatementcachesqllimit",{"_index":56,"name":{"57":{}},"parent":{}}],["setproperties",{"_index":58,"name":{"59":{}},"parent":{}}],["setproxyoptions",{"_index":60,"name":{"61":{}},"parent":{}}],["setreceivebuffersize",{"_index":62,"name":{"63":{}},"parent":{}}],["setreconnectattempts",{"_index":64,"name":{"65":{}},"parent":{}}],["setreconnectinterval",{"_index":66,"name":{"67":{}},"parent":{}}],["setreuseaddress",{"_index":68,"name":{"69":{}},"parent":{}}],["setreuseport",{"_index":70,"name":{"71":{}},"parent":{}}],["setsendbuffersize",{"_index":72,"name":{"73":{}},"parent":{}}],["setsolinger",{"_index":74,"name":{"75":{}},"parent":{}}],["setssl",{"_index":76,"name":{"77":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":78,"name":{"79":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":80,"name":{"81":{}},"parent":{}}],["settcpcork",{"_index":82,"name":{"83":{}},"parent":{}}],["settcpfastopen",{"_index":84,"name":{"85":{}},"parent":{}}],["settcpkeepalive",{"_index":86,"name":{"87":{}},"parent":{}}],["settcpnodelay",{"_index":88,"name":{"89":{}},"parent":{}}],["settcpquickack",{"_index":90,"name":{"91":{}},"parent":{}}],["settrafficclass",{"_index":92,"name":{"93":{}},"parent":{}}],["settrustall",{"_index":94,"name":{"95":{}},"parent":{}}],["settruststoreoptions",{"_index":96,"name":{"97":{}},"parent":{}}],["setusealpn",{"_index":98,"name":{"99":{}},"parent":{}}],["setusepooledbuffers",{"_index":100,"name":{"101":{}},"parent":{}}],["setuser",{"_index":102,"name":{"103":{}},"parent":{}}],["size",{"_index":172,"name":{"182":{},"217":{},"246":{},"282":{}},"parent":{}}],["sqlclient",{"_index":216,"name":{"229":{}},"parent":{"230":{},"231":{},"232":{}}}],["sqlconnection",{"_index":217,"name":{"233":{}},"parent":{"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{}}}],["sqlconnectoptions",{"_index":6,"name":{"6":{}},"parent":{"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{}}}],["sqlresult",{"_index":220,"name":{"243":{}},"parent":{"244":{},"245":{},"246":{},"247":{},"248":{},"249":{}}}],["transaction",{"_index":221,"name":{"250":{}},"parent":{"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{}}}],["tuple",{"_index":159,"name":{"169":{},"258":{},"260":{}},"parent":{"259":{},"260":{},"261":{},"262":{},"263":{},"264":{},"265":{},"266":{},"267":{},"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{},"285":{},"286":{},"287":{},"288":{},"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{},"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"322":{},"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{}}}],["value",{"_index":202,"name":{"212":{},"248":{}},"parent":{}}],["wrap",{"_index":160,"name":{"170":{},"261":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"128":"Class","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"PoolOptions","url":"classes/pooloptions.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/pooloptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PoolOptions"},{"id":2,"kind":2048,"name":"getMaxSize","url":"classes/pooloptions.html#getmaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":3,"kind":2048,"name":"setMaxSize","url":"classes/pooloptions.html#setmaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":4,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/pooloptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":5,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/pooloptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PoolOptions"},{"id":6,"kind":128,"name":"SqlConnectOptions","url":"classes/sqlconnectoptions.html","classes":"tsd-kind-class"},{"id":7,"kind":512,"name":"constructor","url":"classes/sqlconnectoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":8,"kind":2048,"name":"getCachePreparedStatements","url":"classes/sqlconnectoptions.html#getcachepreparedstatements","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":9,"kind":2048,"name":"setCachePreparedStatements","url":"classes/sqlconnectoptions.html#setcachepreparedstatements","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":10,"kind":2048,"name":"getConnectTimeout","url":"classes/sqlconnectoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":11,"kind":2048,"name":"setConnectTimeout","url":"classes/sqlconnectoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":12,"kind":2048,"name":"getCrlPaths","url":"classes/sqlconnectoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":13,"kind":2048,"name":"addCrlPath","url":"classes/sqlconnectoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":14,"kind":2048,"name":"getCrlValues","url":"classes/sqlconnectoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":15,"kind":2048,"name":"addCrlValue","url":"classes/sqlconnectoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":16,"kind":2048,"name":"getDatabase","url":"classes/sqlconnectoptions.html#getdatabase","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":17,"kind":2048,"name":"setDatabase","url":"classes/sqlconnectoptions.html#setdatabase","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":18,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/sqlconnectoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":19,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/sqlconnectoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":20,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/sqlconnectoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":21,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/sqlconnectoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":22,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/sqlconnectoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":23,"kind":2048,"name":"getHost","url":"classes/sqlconnectoptions.html#gethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":24,"kind":2048,"name":"setHost","url":"classes/sqlconnectoptions.html#sethost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":25,"kind":2048,"name":"getHostnameVerificationAlgorithm","url":"classes/sqlconnectoptions.html#gethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":26,"kind":2048,"name":"setHostnameVerificationAlgorithm","url":"classes/sqlconnectoptions.html#sethostnameverificationalgorithm","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":27,"kind":2048,"name":"getIdleTimeout","url":"classes/sqlconnectoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":28,"kind":2048,"name":"setIdleTimeout","url":"classes/sqlconnectoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":29,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/sqlconnectoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":30,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/sqlconnectoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":31,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/sqlconnectoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":32,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/sqlconnectoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":33,"kind":2048,"name":"getKeyStoreOptions","url":"classes/sqlconnectoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":34,"kind":2048,"name":"setKeyStoreOptions","url":"classes/sqlconnectoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":35,"kind":2048,"name":"getLocalAddress","url":"classes/sqlconnectoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":36,"kind":2048,"name":"setLocalAddress","url":"classes/sqlconnectoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":37,"kind":2048,"name":"getLogActivity","url":"classes/sqlconnectoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":38,"kind":2048,"name":"setLogActivity","url":"classes/sqlconnectoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":39,"kind":2048,"name":"getMetricsName","url":"classes/sqlconnectoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":40,"kind":2048,"name":"setMetricsName","url":"classes/sqlconnectoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":41,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/sqlconnectoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":42,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/sqlconnectoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":43,"kind":2048,"name":"getPassword","url":"classes/sqlconnectoptions.html#getpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":44,"kind":2048,"name":"setPassword","url":"classes/sqlconnectoptions.html#setpassword","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":45,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/sqlconnectoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":46,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/sqlconnectoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":47,"kind":2048,"name":"getPemTrustOptions","url":"classes/sqlconnectoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":48,"kind":2048,"name":"setPemTrustOptions","url":"classes/sqlconnectoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":49,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/sqlconnectoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":50,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/sqlconnectoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":51,"kind":2048,"name":"getPfxTrustOptions","url":"classes/sqlconnectoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":52,"kind":2048,"name":"setPfxTrustOptions","url":"classes/sqlconnectoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":53,"kind":2048,"name":"getPort","url":"classes/sqlconnectoptions.html#getport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":54,"kind":2048,"name":"setPort","url":"classes/sqlconnectoptions.html#setport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":55,"kind":2048,"name":"getPreparedStatementCacheMaxSize","url":"classes/sqlconnectoptions.html#getpreparedstatementcachemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":56,"kind":2048,"name":"setPreparedStatementCacheMaxSize","url":"classes/sqlconnectoptions.html#setpreparedstatementcachemaxsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":57,"kind":2048,"name":"setPreparedStatementCacheSqlLimit","url":"classes/sqlconnectoptions.html#setpreparedstatementcachesqllimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":58,"kind":2048,"name":"getProperties","url":"classes/sqlconnectoptions.html#getproperties","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":59,"kind":2048,"name":"setProperties","url":"classes/sqlconnectoptions.html#setproperties","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":60,"kind":2048,"name":"getProxyOptions","url":"classes/sqlconnectoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":61,"kind":2048,"name":"setProxyOptions","url":"classes/sqlconnectoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":62,"kind":2048,"name":"getReceiveBufferSize","url":"classes/sqlconnectoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":63,"kind":2048,"name":"setReceiveBufferSize","url":"classes/sqlconnectoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":64,"kind":2048,"name":"getReconnectAttempts","url":"classes/sqlconnectoptions.html#getreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":65,"kind":2048,"name":"setReconnectAttempts","url":"classes/sqlconnectoptions.html#setreconnectattempts","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":66,"kind":2048,"name":"getReconnectInterval","url":"classes/sqlconnectoptions.html#getreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":67,"kind":2048,"name":"setReconnectInterval","url":"classes/sqlconnectoptions.html#setreconnectinterval","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":68,"kind":2048,"name":"isReuseAddress","url":"classes/sqlconnectoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":69,"kind":2048,"name":"setReuseAddress","url":"classes/sqlconnectoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":70,"kind":2048,"name":"isReusePort","url":"classes/sqlconnectoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":71,"kind":2048,"name":"setReusePort","url":"classes/sqlconnectoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":72,"kind":2048,"name":"getSendBufferSize","url":"classes/sqlconnectoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":73,"kind":2048,"name":"setSendBufferSize","url":"classes/sqlconnectoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":74,"kind":2048,"name":"getSoLinger","url":"classes/sqlconnectoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":75,"kind":2048,"name":"setSoLinger","url":"classes/sqlconnectoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":76,"kind":2048,"name":"isSsl","url":"classes/sqlconnectoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":77,"kind":2048,"name":"setSsl","url":"classes/sqlconnectoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":78,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/sqlconnectoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":79,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/sqlconnectoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":80,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/sqlconnectoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":81,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/sqlconnectoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":82,"kind":2048,"name":"isTcpCork","url":"classes/sqlconnectoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":83,"kind":2048,"name":"setTcpCork","url":"classes/sqlconnectoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":84,"kind":2048,"name":"isTcpFastOpen","url":"classes/sqlconnectoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":85,"kind":2048,"name":"setTcpFastOpen","url":"classes/sqlconnectoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":86,"kind":2048,"name":"isTcpKeepAlive","url":"classes/sqlconnectoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":87,"kind":2048,"name":"setTcpKeepAlive","url":"classes/sqlconnectoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":88,"kind":2048,"name":"isTcpNoDelay","url":"classes/sqlconnectoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":89,"kind":2048,"name":"setTcpNoDelay","url":"classes/sqlconnectoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":90,"kind":2048,"name":"isTcpQuickAck","url":"classes/sqlconnectoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":91,"kind":2048,"name":"setTcpQuickAck","url":"classes/sqlconnectoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":92,"kind":2048,"name":"getTrafficClass","url":"classes/sqlconnectoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":93,"kind":2048,"name":"setTrafficClass","url":"classes/sqlconnectoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":94,"kind":2048,"name":"isTrustAll","url":"classes/sqlconnectoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":95,"kind":2048,"name":"setTrustAll","url":"classes/sqlconnectoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":96,"kind":2048,"name":"getTrustStoreOptions","url":"classes/sqlconnectoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":97,"kind":2048,"name":"setTrustStoreOptions","url":"classes/sqlconnectoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":98,"kind":2048,"name":"isUseAlpn","url":"classes/sqlconnectoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":99,"kind":2048,"name":"setUseAlpn","url":"classes/sqlconnectoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":100,"kind":2048,"name":"isUsePooledBuffers","url":"classes/sqlconnectoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":101,"kind":2048,"name":"setUsePooledBuffers","url":"classes/sqlconnectoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":102,"kind":2048,"name":"getUser","url":"classes/sqlconnectoptions.html#getuser","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":103,"kind":2048,"name":"setUser","url":"classes/sqlconnectoptions.html#setuser","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnectOptions"},{"id":104,"kind":128,"name":"ColumnDescriptor","url":"classes/columndescriptor.html","classes":"tsd-kind-class"},{"id":105,"kind":2048,"name":"name","url":"classes/columndescriptor.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ColumnDescriptor"},{"id":106,"kind":2048,"name":"isArray","url":"classes/columndescriptor.html#isarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ColumnDescriptor"},{"id":107,"kind":2048,"name":"jdbcType","url":"classes/columndescriptor.html#jdbctype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ColumnDescriptor"},{"id":108,"kind":128,"name":"Cursor","url":"classes/cursor.html","classes":"tsd-kind-class"},{"id":109,"kind":2048,"name":"read","url":"classes/cursor.html#read","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cursor"},{"id":110,"kind":2048,"name":"hasMore","url":"classes/cursor.html#hasmore","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cursor"},{"id":111,"kind":2048,"name":"close","url":"classes/cursor.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cursor"},{"id":112,"kind":2048,"name":"isClosed","url":"classes/cursor.html#isclosed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Cursor"},{"id":113,"kind":128,"name":"DatabaseMetadata","url":"classes/databasemetadata.html","classes":"tsd-kind-class"},{"id":114,"kind":2048,"name":"productName","url":"classes/databasemetadata.html#productname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":115,"kind":2048,"name":"fullVersion","url":"classes/databasemetadata.html#fullversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":116,"kind":2048,"name":"majorVersion","url":"classes/databasemetadata.html#majorversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":117,"kind":2048,"name":"minorVersion","url":"classes/databasemetadata.html#minorversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DatabaseMetadata"},{"id":118,"kind":128,"name":"Pool","url":"classes/pool.html","classes":"tsd-kind-class"},{"id":119,"kind":2048,"name":"pool","url":"classes/pool.html#pool-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Pool"},{"id":120,"kind":2048,"name":"getConnection","url":"classes/pool.html#getconnection","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pool"},{"id":121,"kind":2048,"name":"query","url":"classes/pool.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Pool"},{"id":122,"kind":2048,"name":"preparedQuery","url":"classes/pool.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Pool"},{"id":123,"kind":2048,"name":"begin","url":"classes/pool.html#begin","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Pool"},{"id":124,"kind":2048,"name":"close","url":"classes/pool.html#close","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Pool"},{"id":125,"kind":128,"name":"PreparedQuery","url":"classes/preparedquery.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":126,"kind":2048,"name":"execute","url":"classes/preparedquery.html#execute","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"PreparedQuery"},{"id":127,"kind":2048,"name":"executeBatch","url":"classes/preparedquery.html#executebatch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedQuery"},{"id":128,"kind":2048,"name":"mapping","url":"classes/preparedquery.html#mapping","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-overwrite","parent":"PreparedQuery"},{"id":129,"kind":128,"name":"PreparedStatement","url":"classes/preparedstatement.html","classes":"tsd-kind-class"},{"id":130,"kind":2048,"name":"query","url":"classes/preparedstatement.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":131,"kind":2048,"name":"cursor","url":"classes/preparedstatement.html#cursor","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":132,"kind":2048,"name":"createStream","url":"classes/preparedstatement.html#createstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":133,"kind":2048,"name":"close","url":"classes/preparedstatement.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PreparedStatement"},{"id":134,"kind":128,"name":"PropertyKind","url":"classes/propertykind.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":135,"kind":2048,"name":"create","url":"classes/propertykind.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"PropertyKind"},{"id":136,"kind":2048,"name":"name","url":"classes/propertykind.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"PropertyKind"},{"id":137,"kind":128,"name":"Query","url":"classes/query.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":138,"kind":2048,"name":"execute","url":"classes/query.html#execute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Query"},{"id":139,"kind":2048,"name":"mapping","url":"classes/query.html#mapping","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Query"},{"id":140,"kind":128,"name":"Row","url":"classes/row.html","classes":"tsd-kind-class"},{"id":141,"kind":1024,"name":"JSON_NULL","url":"classes/row.html#json_null","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"Row"},{"id":142,"kind":2048,"name":"getColumnName","url":"classes/row.html#getcolumnname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Row"},{"id":143,"kind":2048,"name":"getColumnIndex","url":"classes/row.html#getcolumnindex","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Row"},{"id":144,"kind":2048,"name":"getValue","url":"classes/row.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":145,"kind":2048,"name":"getBoolean","url":"classes/row.html#getboolean","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":146,"kind":2048,"name":"getShort","url":"classes/row.html#getshort","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":147,"kind":2048,"name":"getInteger","url":"classes/row.html#getinteger","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":148,"kind":2048,"name":"getLong","url":"classes/row.html#getlong","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":149,"kind":2048,"name":"getFloat","url":"classes/row.html#getfloat","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":150,"kind":2048,"name":"getDouble","url":"classes/row.html#getdouble","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":151,"kind":2048,"name":"getString","url":"classes/row.html#getstring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":152,"kind":2048,"name":"getBuffer","url":"classes/row.html#getbuffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":153,"kind":2048,"name":"getTemporal","url":"classes/row.html#gettemporal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":154,"kind":2048,"name":"getLocalDate","url":"classes/row.html#getlocaldate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":155,"kind":2048,"name":"getLocalTime","url":"classes/row.html#getlocaltime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":156,"kind":2048,"name":"getLocalDateTime","url":"classes/row.html#getlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":157,"kind":2048,"name":"getOffsetTime","url":"classes/row.html#getoffsettime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":158,"kind":2048,"name":"getOffsetDateTime","url":"classes/row.html#getoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":159,"kind":2048,"name":"getUUID","url":"classes/row.html#getuuid","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":160,"kind":2048,"name":"getBigDecimal","url":"classes/row.html#getbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":161,"kind":2048,"name":"getBooleanArray","url":"classes/row.html#getbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":162,"kind":2048,"name":"getShortArray","url":"classes/row.html#getshortarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":163,"kind":2048,"name":"getIntegerArray","url":"classes/row.html#getintegerarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":164,"kind":2048,"name":"getLongArray","url":"classes/row.html#getlongarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":165,"kind":2048,"name":"getFloatArray","url":"classes/row.html#getfloatarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":166,"kind":2048,"name":"getDoubleArray","url":"classes/row.html#getdoublearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":167,"kind":2048,"name":"getStringArray","url":"classes/row.html#getstringarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":168,"kind":2048,"name":"getTemporalArray","url":"classes/row.html#gettemporalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":169,"kind":2048,"name":"getLocalDateArray","url":"classes/row.html#getlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":170,"kind":2048,"name":"getLocalTimeArray","url":"classes/row.html#getlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":171,"kind":2048,"name":"getLocalDateTimeArray","url":"classes/row.html#getlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":172,"kind":2048,"name":"getOffsetTimeArray","url":"classes/row.html#getoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":173,"kind":2048,"name":"getOffsetDateTimeArray","url":"classes/row.html#getoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":174,"kind":2048,"name":"getUUIDArray","url":"classes/row.html#getuuidarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":175,"kind":2048,"name":"getBigDecimalArray","url":"classes/row.html#getbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Row"},{"id":176,"kind":2048,"name":"tuple","url":"classes/row.html#tuple","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Row"},{"id":177,"kind":2048,"name":"wrap","url":"classes/row.html#wrap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Row"},{"id":178,"kind":2048,"name":"of","url":"classes/row.html#of","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited tsd-is-static","parent":"Row"},{"id":179,"kind":2048,"name":"addValue","url":"classes/row.html#addvalue","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":180,"kind":2048,"name":"addBoolean","url":"classes/row.html#addboolean","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":181,"kind":2048,"name":"addShort","url":"classes/row.html#addshort","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":182,"kind":2048,"name":"addInteger","url":"classes/row.html#addinteger","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":183,"kind":2048,"name":"addLong","url":"classes/row.html#addlong","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":184,"kind":2048,"name":"addFloat","url":"classes/row.html#addfloat","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":185,"kind":2048,"name":"addDouble","url":"classes/row.html#adddouble","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":186,"kind":2048,"name":"addString","url":"classes/row.html#addstring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":187,"kind":2048,"name":"addBuffer","url":"classes/row.html#addbuffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":188,"kind":2048,"name":"get","url":"classes/row.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"Row"},{"id":189,"kind":2048,"name":"size","url":"classes/row.html#size","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":190,"kind":2048,"name":"clear","url":"classes/row.html#clear","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":191,"kind":2048,"name":"deepToString","url":"classes/row.html#deeptostring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":192,"kind":2048,"name":"addTemporal","url":"classes/row.html#addtemporal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":193,"kind":2048,"name":"addLocalDate","url":"classes/row.html#addlocaldate","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":194,"kind":2048,"name":"addLocalTime","url":"classes/row.html#addlocaltime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":195,"kind":2048,"name":"addLocalDateTime","url":"classes/row.html#addlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":196,"kind":2048,"name":"addOffsetTime","url":"classes/row.html#addoffsettime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":197,"kind":2048,"name":"addOffsetDateTime","url":"classes/row.html#addoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":198,"kind":2048,"name":"addUUID","url":"classes/row.html#adduuid","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":199,"kind":2048,"name":"addBigDecimal","url":"classes/row.html#addbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":200,"kind":2048,"name":"addBooleanArray","url":"classes/row.html#addbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":201,"kind":2048,"name":"addShortArray","url":"classes/row.html#addshortarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":202,"kind":2048,"name":"addIntegerArray","url":"classes/row.html#addintegerarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":203,"kind":2048,"name":"addLongArray","url":"classes/row.html#addlongarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":204,"kind":2048,"name":"addFloatArray","url":"classes/row.html#addfloatarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":205,"kind":2048,"name":"addDoubleArray","url":"classes/row.html#adddoublearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":206,"kind":2048,"name":"addStringArray","url":"classes/row.html#addstringarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":207,"kind":2048,"name":"addTemporalArray","url":"classes/row.html#addtemporalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":208,"kind":2048,"name":"addLocalDateArray","url":"classes/row.html#addlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":209,"kind":2048,"name":"addLocalTimeArray","url":"classes/row.html#addlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":210,"kind":2048,"name":"addLocalDateTimeArray","url":"classes/row.html#addlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":211,"kind":2048,"name":"addOffsetTimeArray","url":"classes/row.html#addoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":212,"kind":2048,"name":"addOffsetDateTimeArray","url":"classes/row.html#addoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":213,"kind":2048,"name":"addUUIDArray","url":"classes/row.html#adduuidarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":214,"kind":2048,"name":"addBigDecimalArray","url":"classes/row.html#addbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Row"},{"id":215,"kind":128,"name":"RowIterator","url":"classes/rowiterator.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":216,"kind":2048,"name":"hasNext","url":"classes/rowiterator.html#hasnext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowIterator"},{"id":217,"kind":2048,"name":"next","url":"classes/rowiterator.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowIterator"},{"id":218,"kind":128,"name":"RowSet","url":"classes/rowset.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":219,"kind":2048,"name":"value","url":"classes/rowset.html#value","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"RowSet"},{"id":220,"kind":2048,"name":"iterator","url":"classes/rowset.html#iterator","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowSet"},{"id":221,"kind":2048,"name":"next","url":"classes/rowset.html#next","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"RowSet"},{"id":222,"kind":2048,"name":"rowCount","url":"classes/rowset.html#rowcount","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"RowSet"},{"id":223,"kind":2048,"name":"columnsNames","url":"classes/rowset.html#columnsnames","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"RowSet"},{"id":224,"kind":2048,"name":"columnDescriptors","url":"classes/rowset.html#columndescriptors","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"RowSet"},{"id":225,"kind":2048,"name":"size","url":"classes/rowset.html#size","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"RowSet"},{"id":226,"kind":2048,"name":"property","url":"classes/rowset.html#property","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited","parent":"RowSet"},{"id":227,"kind":128,"name":"RowStream","url":"classes/rowstream.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":228,"kind":2048,"name":"fetch","url":"classes/rowstream.html#fetch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":229,"kind":2048,"name":"pipe","url":"classes/rowstream.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":230,"kind":2048,"name":"pipeTo","url":"classes/rowstream.html#pipeto","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":231,"kind":2048,"name":"exceptionHandler","url":"classes/rowstream.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":232,"kind":2048,"name":"handler","url":"classes/rowstream.html#handler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":233,"kind":2048,"name":"pause","url":"classes/rowstream.html#pause","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":234,"kind":2048,"name":"resume","url":"classes/rowstream.html#resume","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":235,"kind":2048,"name":"endHandler","url":"classes/rowstream.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":236,"kind":2048,"name":"close","url":"classes/rowstream.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RowStream"},{"id":237,"kind":128,"name":"SqlClient","url":"classes/sqlclient.html","classes":"tsd-kind-class"},{"id":238,"kind":2048,"name":"query","url":"classes/sqlclient.html#query","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlClient"},{"id":239,"kind":2048,"name":"preparedQuery","url":"classes/sqlclient.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlClient"},{"id":240,"kind":2048,"name":"close","url":"classes/sqlclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlClient"},{"id":241,"kind":128,"name":"SqlConnection","url":"classes/sqlconnection.html","classes":"tsd-kind-class"},{"id":242,"kind":2048,"name":"prepare","url":"classes/sqlconnection.html#prepare","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":243,"kind":2048,"name":"exceptionHandler","url":"classes/sqlconnection.html#exceptionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":244,"kind":2048,"name":"closeHandler","url":"classes/sqlconnection.html#closehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":245,"kind":2048,"name":"begin","url":"classes/sqlconnection.html#begin","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":246,"kind":2048,"name":"isSSL","url":"classes/sqlconnection.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":247,"kind":2048,"name":"close","url":"classes/sqlconnection.html#close","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"SqlConnection"},{"id":248,"kind":2048,"name":"databaseMetadata","url":"classes/sqlconnection.html#databasemetadata","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlConnection"},{"id":249,"kind":2048,"name":"query","url":"classes/sqlconnection.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SqlConnection"},{"id":250,"kind":2048,"name":"preparedQuery","url":"classes/sqlconnection.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"SqlConnection"},{"id":251,"kind":128,"name":"SqlResult","url":"classes/sqlresult.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":252,"kind":2048,"name":"rowCount","url":"classes/sqlresult.html#rowcount","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":253,"kind":2048,"name":"columnsNames","url":"classes/sqlresult.html#columnsnames","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":254,"kind":2048,"name":"columnDescriptors","url":"classes/sqlresult.html#columndescriptors","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":255,"kind":2048,"name":"size","url":"classes/sqlresult.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":256,"kind":2048,"name":"property","url":"classes/sqlresult.html#property","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"SqlResult"},{"id":257,"kind":2048,"name":"value","url":"classes/sqlresult.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":258,"kind":2048,"name":"next","url":"classes/sqlresult.html#next","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SqlResult"},{"id":259,"kind":128,"name":"Transaction","url":"classes/transaction.html","classes":"tsd-kind-class"},{"id":260,"kind":2048,"name":"prepare","url":"classes/transaction.html#prepare","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":261,"kind":2048,"name":"commit","url":"classes/transaction.html#commit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":262,"kind":2048,"name":"rollback","url":"classes/transaction.html#rollback","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":263,"kind":2048,"name":"abortHandler","url":"classes/transaction.html#aborthandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Transaction"},{"id":264,"kind":2048,"name":"close","url":"classes/transaction.html#close","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"Transaction"},{"id":265,"kind":2048,"name":"query","url":"classes/transaction.html#query","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Transaction"},{"id":266,"kind":2048,"name":"preparedQuery","url":"classes/transaction.html#preparedquery","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Transaction"},{"id":267,"kind":128,"name":"Tuple","url":"classes/tuple.html","classes":"tsd-kind-class"},{"id":268,"kind":1024,"name":"JSON_NULL","url":"classes/tuple.html#json_null","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":269,"kind":2048,"name":"tuple","url":"classes/tuple.html#tuple-1","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":270,"kind":2048,"name":"wrap","url":"classes/tuple.html#wrap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":271,"kind":2048,"name":"of","url":"classes/tuple.html#of","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"Tuple"},{"id":272,"kind":2048,"name":"getValue","url":"classes/tuple.html#getvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":273,"kind":2048,"name":"getBoolean","url":"classes/tuple.html#getboolean","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":274,"kind":2048,"name":"getShort","url":"classes/tuple.html#getshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":275,"kind":2048,"name":"getInteger","url":"classes/tuple.html#getinteger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":276,"kind":2048,"name":"getLong","url":"classes/tuple.html#getlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":277,"kind":2048,"name":"getFloat","url":"classes/tuple.html#getfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":278,"kind":2048,"name":"getDouble","url":"classes/tuple.html#getdouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":279,"kind":2048,"name":"getString","url":"classes/tuple.html#getstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":280,"kind":2048,"name":"getBuffer","url":"classes/tuple.html#getbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":281,"kind":2048,"name":"addValue","url":"classes/tuple.html#addvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":282,"kind":2048,"name":"addBoolean","url":"classes/tuple.html#addboolean","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":283,"kind":2048,"name":"addShort","url":"classes/tuple.html#addshort","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":284,"kind":2048,"name":"addInteger","url":"classes/tuple.html#addinteger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":285,"kind":2048,"name":"addLong","url":"classes/tuple.html#addlong","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":286,"kind":2048,"name":"addFloat","url":"classes/tuple.html#addfloat","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":287,"kind":2048,"name":"addDouble","url":"classes/tuple.html#adddouble","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":288,"kind":2048,"name":"addString","url":"classes/tuple.html#addstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":289,"kind":2048,"name":"addBuffer","url":"classes/tuple.html#addbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":290,"kind":2048,"name":"get","url":"classes/tuple.html#get","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"Tuple"},{"id":291,"kind":2048,"name":"size","url":"classes/tuple.html#size","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":292,"kind":2048,"name":"clear","url":"classes/tuple.html#clear","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":293,"kind":2048,"name":"deepToString","url":"classes/tuple.html#deeptostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":294,"kind":2048,"name":"getTemporal","url":"classes/tuple.html#gettemporal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":295,"kind":2048,"name":"getLocalDate","url":"classes/tuple.html#getlocaldate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":296,"kind":2048,"name":"getLocalTime","url":"classes/tuple.html#getlocaltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":297,"kind":2048,"name":"getLocalDateTime","url":"classes/tuple.html#getlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":298,"kind":2048,"name":"getOffsetTime","url":"classes/tuple.html#getoffsettime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":299,"kind":2048,"name":"getOffsetDateTime","url":"classes/tuple.html#getoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":300,"kind":2048,"name":"getUUID","url":"classes/tuple.html#getuuid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":301,"kind":2048,"name":"getBigDecimal","url":"classes/tuple.html#getbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":302,"kind":2048,"name":"getBooleanArray","url":"classes/tuple.html#getbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":303,"kind":2048,"name":"getShortArray","url":"classes/tuple.html#getshortarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":304,"kind":2048,"name":"getIntegerArray","url":"classes/tuple.html#getintegerarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":305,"kind":2048,"name":"getLongArray","url":"classes/tuple.html#getlongarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":306,"kind":2048,"name":"getFloatArray","url":"classes/tuple.html#getfloatarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":307,"kind":2048,"name":"getDoubleArray","url":"classes/tuple.html#getdoublearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":308,"kind":2048,"name":"getStringArray","url":"classes/tuple.html#getstringarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":309,"kind":2048,"name":"getTemporalArray","url":"classes/tuple.html#gettemporalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":310,"kind":2048,"name":"getLocalDateArray","url":"classes/tuple.html#getlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":311,"kind":2048,"name":"getLocalTimeArray","url":"classes/tuple.html#getlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":312,"kind":2048,"name":"getLocalDateTimeArray","url":"classes/tuple.html#getlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":313,"kind":2048,"name":"getOffsetTimeArray","url":"classes/tuple.html#getoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":314,"kind":2048,"name":"getOffsetDateTimeArray","url":"classes/tuple.html#getoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":315,"kind":2048,"name":"getUUIDArray","url":"classes/tuple.html#getuuidarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":316,"kind":2048,"name":"getBigDecimalArray","url":"classes/tuple.html#getbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":317,"kind":2048,"name":"addTemporal","url":"classes/tuple.html#addtemporal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":318,"kind":2048,"name":"addLocalDate","url":"classes/tuple.html#addlocaldate","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":319,"kind":2048,"name":"addLocalTime","url":"classes/tuple.html#addlocaltime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":320,"kind":2048,"name":"addLocalDateTime","url":"classes/tuple.html#addlocaldatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":321,"kind":2048,"name":"addOffsetTime","url":"classes/tuple.html#addoffsettime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":322,"kind":2048,"name":"addOffsetDateTime","url":"classes/tuple.html#addoffsetdatetime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":323,"kind":2048,"name":"addUUID","url":"classes/tuple.html#adduuid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":324,"kind":2048,"name":"addBigDecimal","url":"classes/tuple.html#addbigdecimal","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":325,"kind":2048,"name":"addBooleanArray","url":"classes/tuple.html#addbooleanarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":326,"kind":2048,"name":"addShortArray","url":"classes/tuple.html#addshortarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":327,"kind":2048,"name":"addIntegerArray","url":"classes/tuple.html#addintegerarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":328,"kind":2048,"name":"addLongArray","url":"classes/tuple.html#addlongarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":329,"kind":2048,"name":"addFloatArray","url":"classes/tuple.html#addfloatarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":330,"kind":2048,"name":"addDoubleArray","url":"classes/tuple.html#adddoublearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":331,"kind":2048,"name":"addStringArray","url":"classes/tuple.html#addstringarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":332,"kind":2048,"name":"addTemporalArray","url":"classes/tuple.html#addtemporalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":333,"kind":2048,"name":"addLocalDateArray","url":"classes/tuple.html#addlocaldatearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":334,"kind":2048,"name":"addLocalTimeArray","url":"classes/tuple.html#addlocaltimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":335,"kind":2048,"name":"addLocalDateTimeArray","url":"classes/tuple.html#addlocaldatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":336,"kind":2048,"name":"addOffsetTimeArray","url":"classes/tuple.html#addoffsettimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":337,"kind":2048,"name":"addOffsetDateTimeArray","url":"classes/tuple.html#addoffsetdatetimearray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":338,"kind":2048,"name":"addUUIDArray","url":"classes/tuple.html#adduuidarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"},{"id":339,"kind":2048,"name":"addBigDecimalArray","url":"classes/tuple.html#addbigdecimalarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Tuple"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,39.601]],["parent/0",[]],["name/1",[1,49.156]],["parent/1",[0,3.866]],["name/2",[2,54.264]],["parent/2",[0,3.866]],["name/3",[3,54.264]],["parent/3",[0,3.866]],["name/4",[4,54.264]],["parent/4",[0,3.866]],["name/5",[5,54.264]],["parent/5",[0,3.866]],["name/6",[6,12.418]],["parent/6",[]],["name/7",[1,49.156]],["parent/7",[6,1.212]],["name/8",[7,54.264]],["parent/8",[6,1.212]],["name/9",[8,54.264]],["parent/9",[6,1.212]],["name/10",[9,54.264]],["parent/10",[6,1.212]],["name/11",[10,54.264]],["parent/11",[6,1.212]],["name/12",[11,54.264]],["parent/12",[6,1.212]],["name/13",[12,54.264]],["parent/13",[6,1.212]],["name/14",[13,54.264]],["parent/14",[6,1.212]],["name/15",[14,54.264]],["parent/15",[6,1.212]],["name/16",[15,54.264]],["parent/16",[6,1.212]],["name/17",[16,54.264]],["parent/17",[6,1.212]],["name/18",[17,54.264]],["parent/18",[6,1.212]],["name/19",[18,54.264]],["parent/19",[6,1.212]],["name/20",[19,54.264]],["parent/20",[6,1.212]],["name/21",[20,54.264]],["parent/21",[6,1.212]],["name/22",[21,54.264]],["parent/22",[6,1.212]],["name/23",[22,54.264]],["parent/23",[6,1.212]],["name/24",[23,54.264]],["parent/24",[6,1.212]],["name/25",[24,54.264]],["parent/25",[6,1.212]],["name/26",[25,54.264]],["parent/26",[6,1.212]],["name/27",[26,54.264]],["parent/27",[6,1.212]],["name/28",[27,54.264]],["parent/28",[6,1.212]],["name/29",[28,54.264]],["parent/29",[6,1.212]],["name/30",[29,54.264]],["parent/30",[6,1.212]],["name/31",[30,54.264]],["parent/31",[6,1.212]],["name/32",[31,54.264]],["parent/32",[6,1.212]],["name/33",[32,54.264]],["parent/33",[6,1.212]],["name/34",[33,54.264]],["parent/34",[6,1.212]],["name/35",[34,54.264]],["parent/35",[6,1.212]],["name/36",[35,54.264]],["parent/36",[6,1.212]],["name/37",[36,54.264]],["parent/37",[6,1.212]],["name/38",[37,54.264]],["parent/38",[6,1.212]],["name/39",[38,54.264]],["parent/39",[6,1.212]],["name/40",[39,54.264]],["parent/40",[6,1.212]],["name/41",[40,54.264]],["parent/41",[6,1.212]],["name/42",[41,54.264]],["parent/42",[6,1.212]],["name/43",[42,54.264]],["parent/43",[6,1.212]],["name/44",[43,54.264]],["parent/44",[6,1.212]],["name/45",[44,54.264]],["parent/45",[6,1.212]],["name/46",[45,54.264]],["parent/46",[6,1.212]],["name/47",[46,54.264]],["parent/47",[6,1.212]],["name/48",[47,54.264]],["parent/48",[6,1.212]],["name/49",[48,54.264]],["parent/49",[6,1.212]],["name/50",[49,54.264]],["parent/50",[6,1.212]],["name/51",[50,54.264]],["parent/51",[6,1.212]],["name/52",[51,54.264]],["parent/52",[6,1.212]],["name/53",[52,54.264]],["parent/53",[6,1.212]],["name/54",[53,54.264]],["parent/54",[6,1.212]],["name/55",[54,54.264]],["parent/55",[6,1.212]],["name/56",[55,54.264]],["parent/56",[6,1.212]],["name/57",[56,54.264]],["parent/57",[6,1.212]],["name/58",[57,54.264]],["parent/58",[6,1.212]],["name/59",[58,54.264]],["parent/59",[6,1.212]],["name/60",[59,54.264]],["parent/60",[6,1.212]],["name/61",[60,54.264]],["parent/61",[6,1.212]],["name/62",[61,54.264]],["parent/62",[6,1.212]],["name/63",[62,54.264]],["parent/63",[6,1.212]],["name/64",[63,54.264]],["parent/64",[6,1.212]],["name/65",[64,54.264]],["parent/65",[6,1.212]],["name/66",[65,54.264]],["parent/66",[6,1.212]],["name/67",[66,54.264]],["parent/67",[6,1.212]],["name/68",[67,54.264]],["parent/68",[6,1.212]],["name/69",[68,54.264]],["parent/69",[6,1.212]],["name/70",[69,54.264]],["parent/70",[6,1.212]],["name/71",[70,54.264]],["parent/71",[6,1.212]],["name/72",[71,54.264]],["parent/72",[6,1.212]],["name/73",[72,54.264]],["parent/73",[6,1.212]],["name/74",[73,54.264]],["parent/74",[6,1.212]],["name/75",[74,54.264]],["parent/75",[6,1.212]],["name/76",[75,49.156]],["parent/76",[6,1.212]],["name/77",[76,54.264]],["parent/77",[6,1.212]],["name/78",[77,54.264]],["parent/78",[6,1.212]],["name/79",[78,54.264]],["parent/79",[6,1.212]],["name/80",[79,54.264]],["parent/80",[6,1.212]],["name/81",[80,54.264]],["parent/81",[6,1.212]],["name/82",[81,54.264]],["parent/82",[6,1.212]],["name/83",[82,54.264]],["parent/83",[6,1.212]],["name/84",[83,54.264]],["parent/84",[6,1.212]],["name/85",[84,54.264]],["parent/85",[6,1.212]],["name/86",[85,54.264]],["parent/86",[6,1.212]],["name/87",[86,54.264]],["parent/87",[6,1.212]],["name/88",[87,54.264]],["parent/88",[6,1.212]],["name/89",[88,54.264]],["parent/89",[6,1.212]],["name/90",[89,54.264]],["parent/90",[6,1.212]],["name/91",[90,54.264]],["parent/91",[6,1.212]],["name/92",[91,54.264]],["parent/92",[6,1.212]],["name/93",[92,54.264]],["parent/93",[6,1.212]],["name/94",[93,54.264]],["parent/94",[6,1.212]],["name/95",[94,54.264]],["parent/95",[6,1.212]],["name/96",[95,54.264]],["parent/96",[6,1.212]],["name/97",[96,54.264]],["parent/97",[6,1.212]],["name/98",[97,54.264]],["parent/98",[6,1.212]],["name/99",[98,54.264]],["parent/99",[6,1.212]],["name/100",[99,54.264]],["parent/100",[6,1.212]],["name/101",[100,54.264]],["parent/101",[6,1.212]],["name/102",[101,54.264]],["parent/102",[6,1.212]],["name/103",[102,54.264]],["parent/103",[6,1.212]],["name/104",[103,43.278]],["parent/104",[]],["name/105",[104,49.156]],["parent/105",[103,4.225]],["name/106",[105,54.264]],["parent/106",[103,4.225]],["name/107",[106,54.264]],["parent/107",[103,4.225]],["name/108",[107,39.601]],["parent/108",[]],["name/109",[108,54.264]],["parent/109",[107,3.866]],["name/110",[109,54.264]],["parent/110",[107,3.866]],["name/111",[110,38.17]],["parent/111",[107,3.866]],["name/112",[111,54.264]],["parent/112",[107,3.866]],["name/113",[112,39.601]],["parent/113",[]],["name/114",[113,54.264]],["parent/114",[112,3.866]],["name/115",[114,54.264]],["parent/115",[112,3.866]],["name/116",[115,54.264]],["parent/116",[112,3.866]],["name/117",[116,54.264]],["parent/117",[112,3.866]],["name/118",[117,36.918]],["parent/118",[]],["name/119",[117,36.918]],["parent/119",[117,3.605]],["name/120",[118,54.264]],["parent/120",[117,3.605]],["name/121",[119,36.918]],["parent/121",[117,3.605]],["name/122",[120,36.918]],["parent/122",[117,3.605]],["name/123",[121,49.156]],["parent/123",[117,3.605]],["name/124",[110,38.17]],["parent/124",[117,3.605]],["name/125",[120,36.918]],["parent/125",[]],["name/126",[122,49.156]],["parent/126",[120,3.605]],["name/127",[123,54.264]],["parent/127",[120,3.605]],["name/128",[124,49.156]],["parent/128",[120,3.605]],["name/129",[125,41.271]],["parent/129",[]],["name/130",[119,36.918]],["parent/130",[125,4.03]],["name/131",[107,39.601]],["parent/131",[125,4.03]],["name/132",[126,54.264]],["parent/132",[125,4.03]],["name/133",[110,38.17]],["parent/133",[125,4.03]],["name/134",[127,45.791]],["parent/134",[]],["name/135",[128,54.264]],["parent/135",[127,4.471]],["name/136",[104,49.156]],["parent/136",[127,4.471]],["name/137",[119,36.918]],["parent/137",[]],["name/138",[122,49.156]],["parent/138",[119,3.605]],["name/139",[124,49.156]],["parent/139",[119,3.605]],["name/140",[129,15.077]],["parent/140",[]],["name/141",[130,49.156]],["parent/141",[129,1.472]],["name/142",[131,54.264]],["parent/142",[129,1.472]],["name/143",[132,54.264]],["parent/143",[129,1.472]],["name/144",[133,49.156]],["parent/144",[129,1.472]],["name/145",[134,49.156]],["parent/145",[129,1.472]],["name/146",[135,49.156]],["parent/146",[129,1.472]],["name/147",[136,49.156]],["parent/147",[129,1.472]],["name/148",[137,49.156]],["parent/148",[129,1.472]],["name/149",[138,49.156]],["parent/149",[129,1.472]],["name/150",[139,49.156]],["parent/150",[129,1.472]],["name/151",[140,49.156]],["parent/151",[129,1.472]],["name/152",[141,49.156]],["parent/152",[129,1.472]],["name/153",[142,49.156]],["parent/153",[129,1.472]],["name/154",[143,49.156]],["parent/154",[129,1.472]],["name/155",[144,49.156]],["parent/155",[129,1.472]],["name/156",[145,49.156]],["parent/156",[129,1.472]],["name/157",[146,49.156]],["parent/157",[129,1.472]],["name/158",[147,49.156]],["parent/158",[129,1.472]],["name/159",[148,49.156]],["parent/159",[129,1.472]],["name/160",[149,49.156]],["parent/160",[129,1.472]],["name/161",[150,49.156]],["parent/161",[129,1.472]],["name/162",[151,49.156]],["parent/162",[129,1.472]],["name/163",[152,49.156]],["parent/163",[129,1.472]],["name/164",[153,49.156]],["parent/164",[129,1.472]],["name/165",[154,49.156]],["parent/165",[129,1.472]],["name/166",[155,49.156]],["parent/166",[129,1.472]],["name/167",[156,49.156]],["parent/167",[129,1.472]],["name/168",[157,49.156]],["parent/168",[129,1.472]],["name/169",[158,49.156]],["parent/169",[129,1.472]],["name/170",[159,49.156]],["parent/170",[129,1.472]],["name/171",[160,49.156]],["parent/171",[129,1.472]],["name/172",[161,49.156]],["parent/172",[129,1.472]],["name/173",[162,49.156]],["parent/173",[129,1.472]],["name/174",[163,49.156]],["parent/174",[129,1.472]],["name/175",[164,49.156]],["parent/175",[129,1.472]],["name/176",[165,15.077]],["parent/176",[129,1.472]],["name/177",[166,49.156]],["parent/177",[129,1.472]],["name/178",[167,49.156]],["parent/178",[129,1.472]],["name/179",[168,49.156]],["parent/179",[129,1.472]],["name/180",[169,49.156]],["parent/180",[129,1.472]],["name/181",[170,49.156]],["parent/181",[129,1.472]],["name/182",[171,49.156]],["parent/182",[129,1.472]],["name/183",[172,49.156]],["parent/183",[129,1.472]],["name/184",[173,49.156]],["parent/184",[129,1.472]],["name/185",[174,49.156]],["parent/185",[129,1.472]],["name/186",[175,49.156]],["parent/186",[129,1.472]],["name/187",[176,49.156]],["parent/187",[129,1.472]],["name/188",[177,49.156]],["parent/188",[129,1.472]],["name/189",[178,43.278]],["parent/189",[129,1.472]],["name/190",[179,49.156]],["parent/190",[129,1.472]],["name/191",[180,49.156]],["parent/191",[129,1.472]],["name/192",[181,49.156]],["parent/192",[129,1.472]],["name/193",[182,49.156]],["parent/193",[129,1.472]],["name/194",[183,49.156]],["parent/194",[129,1.472]],["name/195",[184,49.156]],["parent/195",[129,1.472]],["name/196",[185,49.156]],["parent/196",[129,1.472]],["name/197",[186,49.156]],["parent/197",[129,1.472]],["name/198",[187,49.156]],["parent/198",[129,1.472]],["name/199",[188,49.156]],["parent/199",[129,1.472]],["name/200",[189,49.156]],["parent/200",[129,1.472]],["name/201",[190,49.156]],["parent/201",[129,1.472]],["name/202",[191,49.156]],["parent/202",[129,1.472]],["name/203",[192,49.156]],["parent/203",[129,1.472]],["name/204",[193,49.156]],["parent/204",[129,1.472]],["name/205",[194,49.156]],["parent/205",[129,1.472]],["name/206",[195,49.156]],["parent/206",[129,1.472]],["name/207",[196,49.156]],["parent/207",[129,1.472]],["name/208",[197,49.156]],["parent/208",[129,1.472]],["name/209",[198,49.156]],["parent/209",[129,1.472]],["name/210",[199,49.156]],["parent/210",[129,1.472]],["name/211",[200,49.156]],["parent/211",[129,1.472]],["name/212",[201,49.156]],["parent/212",[129,1.472]],["name/213",[202,49.156]],["parent/213",[129,1.472]],["name/214",[203,49.156]],["parent/214",[129,1.472]],["name/215",[204,45.791]],["parent/215",[]],["name/216",[205,54.264]],["parent/216",[204,4.471]],["name/217",[206,45.791]],["parent/217",[204,4.471]],["name/218",[207,35.806]],["parent/218",[]],["name/219",[208,49.156]],["parent/219",[207,3.496]],["name/220",[209,54.264]],["parent/220",[207,3.496]],["name/221",[206,45.791]],["parent/221",[207,3.496]],["name/222",[210,49.156]],["parent/222",[207,3.496]],["name/223",[211,49.156]],["parent/223",[207,3.496]],["name/224",[212,49.156]],["parent/224",[207,3.496]],["name/225",[178,43.278]],["parent/225",[207,3.496]],["name/226",[213,49.156]],["parent/226",[207,3.496]],["name/227",[214,34.805]],["parent/227",[]],["name/228",[215,54.264]],["parent/228",[214,3.398]],["name/229",[216,54.264]],["parent/229",[214,3.398]],["name/230",[217,54.264]],["parent/230",[214,3.398]],["name/231",[218,49.156]],["parent/231",[214,3.398]],["name/232",[219,54.264]],["parent/232",[214,3.398]],["name/233",[220,54.264]],["parent/233",[214,3.398]],["name/234",[221,54.264]],["parent/234",[214,3.398]],["name/235",[222,54.264]],["parent/235",[214,3.398]],["name/236",[110,38.17]],["parent/236",[214,3.398]],["name/237",[223,43.278]],["parent/237",[]],["name/238",[119,36.918]],["parent/238",[223,4.225]],["name/239",[120,36.918]],["parent/239",[223,4.225]],["name/240",[110,38.17]],["parent/240",[223,4.225]],["name/241",[224,34.805]],["parent/241",[]],["name/242",[225,49.156]],["parent/242",[224,3.398]],["name/243",[218,49.156]],["parent/243",[224,3.398]],["name/244",[226,54.264]],["parent/244",[224,3.398]],["name/245",[121,49.156]],["parent/245",[224,3.398]],["name/246",[75,49.156]],["parent/246",[224,3.398]],["name/247",[110,38.17]],["parent/247",[224,3.398]],["name/248",[112,39.601]],["parent/248",[224,3.398]],["name/249",[119,36.918]],["parent/249",[224,3.398]],["name/250",[120,36.918]],["parent/250",[224,3.398]],["name/251",[227,36.918]],["parent/251",[]],["name/252",[210,49.156]],["parent/252",[227,3.605]],["name/253",[211,49.156]],["parent/253",[227,3.605]],["name/254",[212,49.156]],["parent/254",[227,3.605]],["name/255",[178,43.278]],["parent/255",[227,3.605]],["name/256",[213,49.156]],["parent/256",[227,3.605]],["name/257",[208,49.156]],["parent/257",[227,3.605]],["name/258",[206,45.791]],["parent/258",[227,3.605]],["name/259",[228,36.918]],["parent/259",[]],["name/260",[225,49.156]],["parent/260",[228,3.605]],["name/261",[229,54.264]],["parent/261",[228,3.605]],["name/262",[230,54.264]],["parent/262",[228,3.605]],["name/263",[231,54.264]],["parent/263",[228,3.605]],["name/264",[110,38.17]],["parent/264",[228,3.605]],["name/265",[119,36.918]],["parent/265",[228,3.605]],["name/266",[120,36.918]],["parent/266",[228,3.605]],["name/267",[165,15.077]],["parent/267",[]],["name/268",[130,49.156]],["parent/268",[165,1.472]],["name/269",[165,15.077]],["parent/269",[165,1.472]],["name/270",[166,49.156]],["parent/270",[165,1.472]],["name/271",[167,49.156]],["parent/271",[165,1.472]],["name/272",[133,49.156]],["parent/272",[165,1.472]],["name/273",[134,49.156]],["parent/273",[165,1.472]],["name/274",[135,49.156]],["parent/274",[165,1.472]],["name/275",[136,49.156]],["parent/275",[165,1.472]],["name/276",[137,49.156]],["parent/276",[165,1.472]],["name/277",[138,49.156]],["parent/277",[165,1.472]],["name/278",[139,49.156]],["parent/278",[165,1.472]],["name/279",[140,49.156]],["parent/279",[165,1.472]],["name/280",[141,49.156]],["parent/280",[165,1.472]],["name/281",[168,49.156]],["parent/281",[165,1.472]],["name/282",[169,49.156]],["parent/282",[165,1.472]],["name/283",[170,49.156]],["parent/283",[165,1.472]],["name/284",[171,49.156]],["parent/284",[165,1.472]],["name/285",[172,49.156]],["parent/285",[165,1.472]],["name/286",[173,49.156]],["parent/286",[165,1.472]],["name/287",[174,49.156]],["parent/287",[165,1.472]],["name/288",[175,49.156]],["parent/288",[165,1.472]],["name/289",[176,49.156]],["parent/289",[165,1.472]],["name/290",[177,49.156]],["parent/290",[165,1.472]],["name/291",[178,43.278]],["parent/291",[165,1.472]],["name/292",[179,49.156]],["parent/292",[165,1.472]],["name/293",[180,49.156]],["parent/293",[165,1.472]],["name/294",[142,49.156]],["parent/294",[165,1.472]],["name/295",[143,49.156]],["parent/295",[165,1.472]],["name/296",[144,49.156]],["parent/296",[165,1.472]],["name/297",[145,49.156]],["parent/297",[165,1.472]],["name/298",[146,49.156]],["parent/298",[165,1.472]],["name/299",[147,49.156]],["parent/299",[165,1.472]],["name/300",[148,49.156]],["parent/300",[165,1.472]],["name/301",[149,49.156]],["parent/301",[165,1.472]],["name/302",[150,49.156]],["parent/302",[165,1.472]],["name/303",[151,49.156]],["parent/303",[165,1.472]],["name/304",[152,49.156]],["parent/304",[165,1.472]],["name/305",[153,49.156]],["parent/305",[165,1.472]],["name/306",[154,49.156]],["parent/306",[165,1.472]],["name/307",[155,49.156]],["parent/307",[165,1.472]],["name/308",[156,49.156]],["parent/308",[165,1.472]],["name/309",[157,49.156]],["parent/309",[165,1.472]],["name/310",[158,49.156]],["parent/310",[165,1.472]],["name/311",[159,49.156]],["parent/311",[165,1.472]],["name/312",[160,49.156]],["parent/312",[165,1.472]],["name/313",[161,49.156]],["parent/313",[165,1.472]],["name/314",[162,49.156]],["parent/314",[165,1.472]],["name/315",[163,49.156]],["parent/315",[165,1.472]],["name/316",[164,49.156]],["parent/316",[165,1.472]],["name/317",[181,49.156]],["parent/317",[165,1.472]],["name/318",[182,49.156]],["parent/318",[165,1.472]],["name/319",[183,49.156]],["parent/319",[165,1.472]],["name/320",[184,49.156]],["parent/320",[165,1.472]],["name/321",[185,49.156]],["parent/321",[165,1.472]],["name/322",[186,49.156]],["parent/322",[165,1.472]],["name/323",[187,49.156]],["parent/323",[165,1.472]],["name/324",[188,49.156]],["parent/324",[165,1.472]],["name/325",[189,49.156]],["parent/325",[165,1.472]],["name/326",[190,49.156]],["parent/326",[165,1.472]],["name/327",[191,49.156]],["parent/327",[165,1.472]],["name/328",[192,49.156]],["parent/328",[165,1.472]],["name/329",[193,49.156]],["parent/329",[165,1.472]],["name/330",[194,49.156]],["parent/330",[165,1.472]],["name/331",[195,49.156]],["parent/331",[165,1.472]],["name/332",[196,49.156]],["parent/332",[165,1.472]],["name/333",[197,49.156]],["parent/333",[165,1.472]],["name/334",[198,49.156]],["parent/334",[165,1.472]],["name/335",[199,49.156]],["parent/335",[165,1.472]],["name/336",[200,49.156]],["parent/336",[165,1.472]],["name/337",[201,49.156]],["parent/337",[165,1.472]],["name/338",[202,49.156]],["parent/338",[165,1.472]],["name/339",[203,49.156]],["parent/339",[165,1.472]]],"invertedIndex":[["aborthandler",{"_index":231,"name":{"263":{}},"parent":{}}],["addbigdecimal",{"_index":188,"name":{"199":{},"324":{}},"parent":{}}],["addbigdecimalarray",{"_index":203,"name":{"214":{},"339":{}},"parent":{}}],["addboolean",{"_index":169,"name":{"180":{},"282":{}},"parent":{}}],["addbooleanarray",{"_index":189,"name":{"200":{},"325":{}},"parent":{}}],["addbuffer",{"_index":176,"name":{"187":{},"289":{}},"parent":{}}],["addcrlpath",{"_index":12,"name":{"13":{}},"parent":{}}],["addcrlvalue",{"_index":14,"name":{"15":{}},"parent":{}}],["adddouble",{"_index":174,"name":{"185":{},"287":{}},"parent":{}}],["adddoublearray",{"_index":194,"name":{"205":{},"330":{}},"parent":{}}],["addenabledciphersuite",{"_index":18,"name":{"19":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":21,"name":{"22":{}},"parent":{}}],["addfloat",{"_index":173,"name":{"184":{},"286":{}},"parent":{}}],["addfloatarray",{"_index":193,"name":{"204":{},"329":{}},"parent":{}}],["addinteger",{"_index":171,"name":{"182":{},"284":{}},"parent":{}}],["addintegerarray",{"_index":191,"name":{"202":{},"327":{}},"parent":{}}],["addlocaldate",{"_index":182,"name":{"193":{},"318":{}},"parent":{}}],["addlocaldatearray",{"_index":197,"name":{"208":{},"333":{}},"parent":{}}],["addlocaldatetime",{"_index":184,"name":{"195":{},"320":{}},"parent":{}}],["addlocaldatetimearray",{"_index":199,"name":{"210":{},"335":{}},"parent":{}}],["addlocaltime",{"_index":183,"name":{"194":{},"319":{}},"parent":{}}],["addlocaltimearray",{"_index":198,"name":{"209":{},"334":{}},"parent":{}}],["addlong",{"_index":172,"name":{"183":{},"285":{}},"parent":{}}],["addlongarray",{"_index":192,"name":{"203":{},"328":{}},"parent":{}}],["addoffsetdatetime",{"_index":186,"name":{"197":{},"322":{}},"parent":{}}],["addoffsetdatetimearray",{"_index":201,"name":{"212":{},"337":{}},"parent":{}}],["addoffsettime",{"_index":185,"name":{"196":{},"321":{}},"parent":{}}],["addoffsettimearray",{"_index":200,"name":{"211":{},"336":{}},"parent":{}}],["addshort",{"_index":170,"name":{"181":{},"283":{}},"parent":{}}],["addshortarray",{"_index":190,"name":{"201":{},"326":{}},"parent":{}}],["addstring",{"_index":175,"name":{"186":{},"288":{}},"parent":{}}],["addstringarray",{"_index":195,"name":{"206":{},"331":{}},"parent":{}}],["addtemporal",{"_index":181,"name":{"192":{},"317":{}},"parent":{}}],["addtemporalarray",{"_index":196,"name":{"207":{},"332":{}},"parent":{}}],["adduuid",{"_index":187,"name":{"198":{},"323":{}},"parent":{}}],["adduuidarray",{"_index":202,"name":{"213":{},"338":{}},"parent":{}}],["addvalue",{"_index":168,"name":{"179":{},"281":{}},"parent":{}}],["begin",{"_index":121,"name":{"123":{},"245":{}},"parent":{}}],["clear",{"_index":179,"name":{"190":{},"292":{}},"parent":{}}],["close",{"_index":110,"name":{"111":{},"124":{},"133":{},"236":{},"240":{},"247":{},"264":{}},"parent":{}}],["closehandler",{"_index":226,"name":{"244":{}},"parent":{}}],["columndescriptor",{"_index":103,"name":{"104":{}},"parent":{"105":{},"106":{},"107":{}}}],["columndescriptors",{"_index":212,"name":{"224":{},"254":{}},"parent":{}}],["columnsnames",{"_index":211,"name":{"223":{},"253":{}},"parent":{}}],["commit",{"_index":229,"name":{"261":{}},"parent":{}}],["constructor",{"_index":1,"name":{"1":{},"7":{}},"parent":{}}],["create",{"_index":128,"name":{"135":{}},"parent":{}}],["createstream",{"_index":126,"name":{"132":{}},"parent":{}}],["cursor",{"_index":107,"name":{"108":{},"131":{}},"parent":{"109":{},"110":{},"111":{},"112":{}}}],["databasemetadata",{"_index":112,"name":{"113":{},"248":{}},"parent":{"114":{},"115":{},"116":{},"117":{}}}],["deeptostring",{"_index":180,"name":{"191":{},"293":{}},"parent":{}}],["endhandler",{"_index":222,"name":{"235":{}},"parent":{}}],["exceptionhandler",{"_index":218,"name":{"231":{},"243":{}},"parent":{}}],["execute",{"_index":122,"name":{"126":{},"138":{}},"parent":{}}],["executebatch",{"_index":123,"name":{"127":{}},"parent":{}}],["fetch",{"_index":215,"name":{"228":{}},"parent":{}}],["fullversion",{"_index":114,"name":{"115":{}},"parent":{}}],["get",{"_index":177,"name":{"188":{},"290":{}},"parent":{}}],["getbigdecimal",{"_index":149,"name":{"160":{},"301":{}},"parent":{}}],["getbigdecimalarray",{"_index":164,"name":{"175":{},"316":{}},"parent":{}}],["getboolean",{"_index":134,"name":{"145":{},"273":{}},"parent":{}}],["getbooleanarray",{"_index":150,"name":{"161":{},"302":{}},"parent":{}}],["getbuffer",{"_index":141,"name":{"152":{},"280":{}},"parent":{}}],["getcachepreparedstatements",{"_index":7,"name":{"8":{}},"parent":{}}],["getcolumnindex",{"_index":132,"name":{"143":{}},"parent":{}}],["getcolumnname",{"_index":131,"name":{"142":{}},"parent":{}}],["getconnection",{"_index":118,"name":{"120":{}},"parent":{}}],["getconnecttimeout",{"_index":9,"name":{"10":{}},"parent":{}}],["getcrlpaths",{"_index":11,"name":{"12":{}},"parent":{}}],["getcrlvalues",{"_index":13,"name":{"14":{}},"parent":{}}],["getdatabase",{"_index":15,"name":{"16":{}},"parent":{}}],["getdouble",{"_index":139,"name":{"150":{},"278":{}},"parent":{}}],["getdoublearray",{"_index":155,"name":{"166":{},"307":{}},"parent":{}}],["getenabledciphersuites",{"_index":17,"name":{"18":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":19,"name":{"20":{}},"parent":{}}],["getfloat",{"_index":138,"name":{"149":{},"277":{}},"parent":{}}],["getfloatarray",{"_index":154,"name":{"165":{},"306":{}},"parent":{}}],["gethost",{"_index":22,"name":{"23":{}},"parent":{}}],["gethostnameverificationalgorithm",{"_index":24,"name":{"25":{}},"parent":{}}],["getidletimeout",{"_index":26,"name":{"27":{}},"parent":{}}],["getidletimeoutunit",{"_index":28,"name":{"29":{}},"parent":{}}],["getinteger",{"_index":136,"name":{"147":{},"275":{}},"parent":{}}],["getintegerarray",{"_index":152,"name":{"163":{},"304":{}},"parent":{}}],["getjdksslengineoptions",{"_index":30,"name":{"31":{}},"parent":{}}],["getkeystoreoptions",{"_index":32,"name":{"33":{}},"parent":{}}],["getlocaladdress",{"_index":34,"name":{"35":{}},"parent":{}}],["getlocaldate",{"_index":143,"name":{"154":{},"295":{}},"parent":{}}],["getlocaldatearray",{"_index":158,"name":{"169":{},"310":{}},"parent":{}}],["getlocaldatetime",{"_index":145,"name":{"156":{},"297":{}},"parent":{}}],["getlocaldatetimearray",{"_index":160,"name":{"171":{},"312":{}},"parent":{}}],["getlocaltime",{"_index":144,"name":{"155":{},"296":{}},"parent":{}}],["getlocaltimearray",{"_index":159,"name":{"170":{},"311":{}},"parent":{}}],["getlogactivity",{"_index":36,"name":{"37":{}},"parent":{}}],["getlong",{"_index":137,"name":{"148":{},"276":{}},"parent":{}}],["getlongarray",{"_index":153,"name":{"164":{},"305":{}},"parent":{}}],["getmaxsize",{"_index":2,"name":{"2":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":4,"name":{"4":{}},"parent":{}}],["getmetricsname",{"_index":38,"name":{"39":{}},"parent":{}}],["getoffsetdatetime",{"_index":147,"name":{"158":{},"299":{}},"parent":{}}],["getoffsetdatetimearray",{"_index":162,"name":{"173":{},"314":{}},"parent":{}}],["getoffsettime",{"_index":146,"name":{"157":{},"298":{}},"parent":{}}],["getoffsettimearray",{"_index":161,"name":{"172":{},"313":{}},"parent":{}}],["getopensslengineoptions",{"_index":40,"name":{"41":{}},"parent":{}}],["getpassword",{"_index":42,"name":{"43":{}},"parent":{}}],["getpemkeycertoptions",{"_index":44,"name":{"45":{}},"parent":{}}],["getpemtrustoptions",{"_index":46,"name":{"47":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":48,"name":{"49":{}},"parent":{}}],["getpfxtrustoptions",{"_index":50,"name":{"51":{}},"parent":{}}],["getport",{"_index":52,"name":{"53":{}},"parent":{}}],["getpreparedstatementcachemaxsize",{"_index":54,"name":{"55":{}},"parent":{}}],["getproperties",{"_index":57,"name":{"58":{}},"parent":{}}],["getproxyoptions",{"_index":59,"name":{"60":{}},"parent":{}}],["getreceivebuffersize",{"_index":61,"name":{"62":{}},"parent":{}}],["getreconnectattempts",{"_index":63,"name":{"64":{}},"parent":{}}],["getreconnectinterval",{"_index":65,"name":{"66":{}},"parent":{}}],["getsendbuffersize",{"_index":71,"name":{"72":{}},"parent":{}}],["getshort",{"_index":135,"name":{"146":{},"274":{}},"parent":{}}],["getshortarray",{"_index":151,"name":{"162":{},"303":{}},"parent":{}}],["getsolinger",{"_index":73,"name":{"74":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":77,"name":{"78":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":79,"name":{"80":{}},"parent":{}}],["getstring",{"_index":140,"name":{"151":{},"279":{}},"parent":{}}],["getstringarray",{"_index":156,"name":{"167":{},"308":{}},"parent":{}}],["gettemporal",{"_index":142,"name":{"153":{},"294":{}},"parent":{}}],["gettemporalarray",{"_index":157,"name":{"168":{},"309":{}},"parent":{}}],["gettrafficclass",{"_index":91,"name":{"92":{}},"parent":{}}],["gettruststoreoptions",{"_index":95,"name":{"96":{}},"parent":{}}],["getuser",{"_index":101,"name":{"102":{}},"parent":{}}],["getuuid",{"_index":148,"name":{"159":{},"300":{}},"parent":{}}],["getuuidarray",{"_index":163,"name":{"174":{},"315":{}},"parent":{}}],["getvalue",{"_index":133,"name":{"144":{},"272":{}},"parent":{}}],["handler",{"_index":219,"name":{"232":{}},"parent":{}}],["hasmore",{"_index":109,"name":{"110":{}},"parent":{}}],["hasnext",{"_index":205,"name":{"216":{}},"parent":{}}],["isarray",{"_index":105,"name":{"106":{}},"parent":{}}],["isclosed",{"_index":111,"name":{"112":{}},"parent":{}}],["isreuseaddress",{"_index":67,"name":{"68":{}},"parent":{}}],["isreuseport",{"_index":69,"name":{"70":{}},"parent":{}}],["isssl",{"_index":75,"name":{"76":{},"246":{}},"parent":{}}],["istcpcork",{"_index":81,"name":{"82":{}},"parent":{}}],["istcpfastopen",{"_index":83,"name":{"84":{}},"parent":{}}],["istcpkeepalive",{"_index":85,"name":{"86":{}},"parent":{}}],["istcpnodelay",{"_index":87,"name":{"88":{}},"parent":{}}],["istcpquickack",{"_index":89,"name":{"90":{}},"parent":{}}],["istrustall",{"_index":93,"name":{"94":{}},"parent":{}}],["isusealpn",{"_index":97,"name":{"98":{}},"parent":{}}],["isusepooledbuffers",{"_index":99,"name":{"100":{}},"parent":{}}],["iterator",{"_index":209,"name":{"220":{}},"parent":{}}],["jdbctype",{"_index":106,"name":{"107":{}},"parent":{}}],["json_null",{"_index":130,"name":{"141":{},"268":{}},"parent":{}}],["majorversion",{"_index":115,"name":{"116":{}},"parent":{}}],["mapping",{"_index":124,"name":{"128":{},"139":{}},"parent":{}}],["minorversion",{"_index":116,"name":{"117":{}},"parent":{}}],["name",{"_index":104,"name":{"105":{},"136":{}},"parent":{}}],["next",{"_index":206,"name":{"217":{},"221":{},"258":{}},"parent":{}}],["of",{"_index":167,"name":{"178":{},"271":{}},"parent":{}}],["pause",{"_index":220,"name":{"233":{}},"parent":{}}],["pipe",{"_index":216,"name":{"229":{}},"parent":{}}],["pipeto",{"_index":217,"name":{"230":{}},"parent":{}}],["pool",{"_index":117,"name":{"118":{},"119":{}},"parent":{"119":{},"120":{},"121":{},"122":{},"123":{},"124":{}}}],["pooloptions",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{}}}],["prepare",{"_index":225,"name":{"242":{},"260":{}},"parent":{}}],["preparedquery",{"_index":120,"name":{"122":{},"125":{},"239":{},"250":{},"266":{}},"parent":{"126":{},"127":{},"128":{}}}],["preparedstatement",{"_index":125,"name":{"129":{}},"parent":{"130":{},"131":{},"132":{},"133":{}}}],["productname",{"_index":113,"name":{"114":{}},"parent":{}}],["property",{"_index":213,"name":{"226":{},"256":{}},"parent":{}}],["propertykind",{"_index":127,"name":{"134":{}},"parent":{"135":{},"136":{}}}],["query",{"_index":119,"name":{"121":{},"130":{},"137":{},"238":{},"249":{},"265":{}},"parent":{"138":{},"139":{}}}],["read",{"_index":108,"name":{"109":{}},"parent":{}}],["resume",{"_index":221,"name":{"234":{}},"parent":{}}],["rollback",{"_index":230,"name":{"262":{}},"parent":{}}],["row",{"_index":129,"name":{"140":{}},"parent":{"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{}}}],["rowcount",{"_index":210,"name":{"222":{},"252":{}},"parent":{}}],["rowiterator",{"_index":204,"name":{"215":{}},"parent":{"216":{},"217":{}}}],["rowset",{"_index":207,"name":{"218":{}},"parent":{"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{}}}],["rowstream",{"_index":214,"name":{"227":{}},"parent":{"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{}}}],["setcachepreparedstatements",{"_index":8,"name":{"9":{}},"parent":{}}],["setconnecttimeout",{"_index":10,"name":{"11":{}},"parent":{}}],["setdatabase",{"_index":16,"name":{"17":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":20,"name":{"21":{}},"parent":{}}],["sethost",{"_index":23,"name":{"24":{}},"parent":{}}],["sethostnameverificationalgorithm",{"_index":25,"name":{"26":{}},"parent":{}}],["setidletimeout",{"_index":27,"name":{"28":{}},"parent":{}}],["setidletimeoutunit",{"_index":29,"name":{"30":{}},"parent":{}}],["setjdksslengineoptions",{"_index":31,"name":{"32":{}},"parent":{}}],["setkeystoreoptions",{"_index":33,"name":{"34":{}},"parent":{}}],["setlocaladdress",{"_index":35,"name":{"36":{}},"parent":{}}],["setlogactivity",{"_index":37,"name":{"38":{}},"parent":{}}],["setmaxsize",{"_index":3,"name":{"3":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":5,"name":{"5":{}},"parent":{}}],["setmetricsname",{"_index":39,"name":{"40":{}},"parent":{}}],["setopensslengineoptions",{"_index":41,"name":{"42":{}},"parent":{}}],["setpassword",{"_index":43,"name":{"44":{}},"parent":{}}],["setpemkeycertoptions",{"_index":45,"name":{"46":{}},"parent":{}}],["setpemtrustoptions",{"_index":47,"name":{"48":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":49,"name":{"50":{}},"parent":{}}],["setpfxtrustoptions",{"_index":51,"name":{"52":{}},"parent":{}}],["setport",{"_index":53,"name":{"54":{}},"parent":{}}],["setpreparedstatementcachemaxsize",{"_index":55,"name":{"56":{}},"parent":{}}],["setpreparedstatementcachesqllimit",{"_index":56,"name":{"57":{}},"parent":{}}],["setproperties",{"_index":58,"name":{"59":{}},"parent":{}}],["setproxyoptions",{"_index":60,"name":{"61":{}},"parent":{}}],["setreceivebuffersize",{"_index":62,"name":{"63":{}},"parent":{}}],["setreconnectattempts",{"_index":64,"name":{"65":{}},"parent":{}}],["setreconnectinterval",{"_index":66,"name":{"67":{}},"parent":{}}],["setreuseaddress",{"_index":68,"name":{"69":{}},"parent":{}}],["setreuseport",{"_index":70,"name":{"71":{}},"parent":{}}],["setsendbuffersize",{"_index":72,"name":{"73":{}},"parent":{}}],["setsolinger",{"_index":74,"name":{"75":{}},"parent":{}}],["setssl",{"_index":76,"name":{"77":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":78,"name":{"79":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":80,"name":{"81":{}},"parent":{}}],["settcpcork",{"_index":82,"name":{"83":{}},"parent":{}}],["settcpfastopen",{"_index":84,"name":{"85":{}},"parent":{}}],["settcpkeepalive",{"_index":86,"name":{"87":{}},"parent":{}}],["settcpnodelay",{"_index":88,"name":{"89":{}},"parent":{}}],["settcpquickack",{"_index":90,"name":{"91":{}},"parent":{}}],["settrafficclass",{"_index":92,"name":{"93":{}},"parent":{}}],["settrustall",{"_index":94,"name":{"95":{}},"parent":{}}],["settruststoreoptions",{"_index":96,"name":{"97":{}},"parent":{}}],["setusealpn",{"_index":98,"name":{"99":{}},"parent":{}}],["setusepooledbuffers",{"_index":100,"name":{"101":{}},"parent":{}}],["setuser",{"_index":102,"name":{"103":{}},"parent":{}}],["size",{"_index":178,"name":{"189":{},"225":{},"255":{},"291":{}},"parent":{}}],["sqlclient",{"_index":223,"name":{"237":{}},"parent":{"238":{},"239":{},"240":{}}}],["sqlconnection",{"_index":224,"name":{"241":{}},"parent":{"242":{},"243":{},"244":{},"245":{},"246":{},"247":{},"248":{},"249":{},"250":{}}}],["sqlconnectoptions",{"_index":6,"name":{"6":{}},"parent":{"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{}}}],["sqlresult",{"_index":227,"name":{"251":{}},"parent":{"252":{},"253":{},"254":{},"255":{},"256":{},"257":{},"258":{}}}],["transaction",{"_index":228,"name":{"259":{}},"parent":{"260":{},"261":{},"262":{},"263":{},"264":{},"265":{},"266":{}}}],["tuple",{"_index":165,"name":{"176":{},"267":{},"269":{}},"parent":{"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{},"282":{},"283":{},"284":{},"285":{},"286":{},"287":{},"288":{},"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{},"308":{},"309":{},"310":{},"311":{},"312":{},"313":{},"314":{},"315":{},"316":{},"317":{},"318":{},"319":{},"320":{},"321":{},"322":{},"323":{},"324":{},"325":{},"326":{},"327":{},"328":{},"329":{},"330":{},"331":{},"332":{},"333":{},"334":{},"335":{},"336":{},"337":{},"338":{},"339":{}}}],["value",{"_index":208,"name":{"219":{},"257":{}},"parent":{}}],["wrap",{"_index":166,"name":{"177":{},"270":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/sql-client/classes/columndescriptor.html b/docs/.vuepress/public/@vertx/sql-client/classes/columndescriptor.html new file mode 100644 index 000000000..75b91dee7 --- /dev/null +++ b/docs/.vuepress/public/@vertx/sql-client/classes/columndescriptor.html @@ -0,0 +1,257 @@ + + + + + + ColumnDescriptor | @vertx/sql-client + + + + + +
    +
    +
    +
    + +
    +
    + Options +
    +
    + All +
      +
    • Public
    • +
    • Public/Protected
    • +
    • All
    • +
    +
    + + + + +
    +
    + Menu +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Legend

    +
    +
      +
    • Constructor
    • +
    • Method
    • +
    +
      +
    • Static property
    • +
    • Static method
    • +
    +
      +
    • Inherited method
    • +
    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    +
    + + + + \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/sql-client/classes/cursor.html b/docs/.vuepress/public/@vertx/sql-client/classes/cursor.html index 18c28a0fa..1ffa09934 100644 --- a/docs/.vuepress/public/@vertx/sql-client/classes/cursor.html +++ b/docs/.vuepress/public/@vertx/sql-client/classes/cursor.html @@ -88,6 +88,7 @@

    Methods

    @@ -107,7 +108,7 @@

    close

  • @@ -122,7 +123,7 @@

    Returns void
    @@ -150,7 +151,7 @@

    hasMore

  • @@ -163,6 +164,23 @@

    Returns boolean +
    + +

    isClosed

    +
      +
    • isClosed(): boolean
    • +
    +
      +
    • + +

      Returns boolean

      +
    • +
    +

    read

    @@ -173,7 +191,7 @@

    read

  • @@ -206,6 +224,9 @@

    Returns void

  • +
    +

    Index

    +
    +
    +
    +

    Methods

    + +
    +
    +
    +
    +
    +

    Methods

    +
    + +

    name

    +
      +
    • name(): string
    • +
    +
      +
    • + +

      Returns string

      +
    • +
    +
    +
    + +

    Static create

    + +
      +
    • + +

      Type parameters

      +
        +
      • +

        T

        +
      • +
      +

      Parameters

      +
        +
      • +
        name: string
        +
      • +
      • +
        type: any
        +
      • +
      +

      Returns PropertyKind<T>

      +
    • +
    +
    +

  • +
  • + setAckTimeout +
  • setAutoGeneratedClientId
  • diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttconnackmessage.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttconnackmessage.html index 602f4bde5..6451a3c5b 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttconnackmessage.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttconnackmessage.html @@ -106,7 +106,7 @@

    code

  • Returns any

    @@ -123,7 +123,7 @@

    isSessionPresent

  • Returns boolean

    @@ -140,7 +140,7 @@

    Static create

  • diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttendpoint.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttendpoint.html index 5c031b793..f7050c28c 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttendpoint.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttendpoint.html @@ -145,7 +145,7 @@

    accept

  • @@ -158,7 +158,7 @@

    Returns
    @@ -187,7 +187,7 @@

    auth

  • Returns MqttAuth

    @@ -204,7 +204,7 @@

    autoKeepAlive

  • @@ -232,7 +232,7 @@

    clientIdentifier

  • Returns string

    @@ -249,7 +249,7 @@

    close

  • @@ -271,7 +271,7 @@

    closeHandler

  • @@ -299,7 +299,7 @@

    disconnectHandler

  • @@ -328,7 +328,7 @@

    exceptionHandler

  • @@ -356,7 +356,7 @@

    isAutoKeepAlive

  • Returns boolean

    @@ -373,7 +373,7 @@

    isCleanSession

  • Returns boolean

    @@ -390,7 +390,7 @@

    isConnected

  • Returns boolean

    @@ -407,7 +407,7 @@

    isPublishAutoAck

  • Returns boolean

    @@ -424,7 +424,7 @@

    isSsl

  • Returns boolean

    @@ -441,7 +441,7 @@

    isSubscriptionAutoAck

  • Returns boolean

    @@ -458,7 +458,7 @@

    keepAliveTimeSeconds

  • Returns number

    @@ -475,7 +475,7 @@

    lastMessageId

  • Returns number

    @@ -492,7 +492,7 @@

    localAddress

  • Returns SocketAddress

    @@ -509,7 +509,7 @@

    pingHandler

  • @@ -539,7 +539,7 @@

    pong

  • @@ -561,7 +561,7 @@

    protocolName

  • Returns string

    @@ -578,7 +578,7 @@

    protocolVersion

  • Returns number

    @@ -597,7 +597,7 @@

    publish

  • @@ -628,7 +628,7 @@

    Returns
    @@ -662,7 +662,7 @@

    Returns
    @@ -708,7 +708,7 @@

    publishAcknowledge

  • @@ -736,7 +736,7 @@

    publishAcknowledgeHandler

  • @@ -765,7 +765,7 @@

    publishAutoAck

  • @@ -793,7 +793,7 @@

    publishComplete

  • @@ -821,7 +821,7 @@

    publishCompletionHandler

  • @@ -850,7 +850,7 @@

    publishHandler

  • @@ -879,7 +879,7 @@

    publishReceived

  • @@ -907,7 +907,7 @@

    publishReceivedHandler

  • @@ -936,7 +936,7 @@

    publishRelease

  • @@ -964,7 +964,7 @@

    publishReleaseHandler

  • @@ -993,7 +993,7 @@

    reject

  • @@ -1022,7 +1022,7 @@

    remoteAddress

  • Returns SocketAddress

    @@ -1039,7 +1039,7 @@

    setClientIdentifier

  • @@ -1067,7 +1067,7 @@

    subscribeAcknowledge

  • @@ -1098,7 +1098,7 @@

    subscribeHandler

  • @@ -1127,7 +1127,7 @@

    subscriptionAutoAck

  • @@ -1155,7 +1155,7 @@

    unsubscribeAcknowledge

  • @@ -1183,7 +1183,7 @@

    unsubscribeHandler

  • @@ -1212,7 +1212,7 @@

    will

  • Returns MqttWill

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttpublishmessage.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttpublishmessage.html index 0870954d9..54cd7c8e9 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttpublishmessage.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttpublishmessage.html @@ -115,7 +115,7 @@

    isDup

  • Returns boolean

    @@ -132,7 +132,7 @@

    isRetain

  • Returns boolean

    @@ -150,7 +150,7 @@

    messageId

    Returns number

    @@ -167,7 +167,7 @@

    payload

  • Returns Buffer

    @@ -184,7 +184,7 @@

    qosLevel

  • Returns any

    @@ -201,7 +201,7 @@

    topicName

  • Returns string

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserver.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserver.html index 2bf3689a2..3f9309da7 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserver.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserver.html @@ -114,7 +114,7 @@

    actualPort

  • @@ -138,7 +138,7 @@

    close

  • @@ -153,7 +153,7 @@

    Returns void
    @@ -181,7 +181,7 @@

    endpointHandler

  • @@ -210,7 +210,7 @@

    exceptionHandler

  • @@ -244,7 +244,7 @@

    listen

  • @@ -258,7 +258,7 @@

    Returns
    @@ -280,7 +280,7 @@

    Returns
    @@ -306,7 +306,7 @@

    Returns
    @@ -326,7 +326,7 @@

    Returns
    @@ -349,7 +349,7 @@

    Returns
    @@ -379,7 +379,7 @@

    Static create

  • @@ -401,7 +401,7 @@

    Returns
    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserveroptions.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserveroptions.html index 5cf3ce28a..51b8996dd 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserveroptions.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttserveroptions.html @@ -190,7 +190,7 @@

    constructor

  • Returns MqttServerOptions

    @@ -198,7 +198,7 @@

    Returns

    Parameters

    @@ -224,7 +224,7 @@

    addCrlPath

  • Parameters

    @@ -247,7 +247,7 @@

    addCrlValue

  • Parameters

    @@ -270,7 +270,7 @@

    addEnabledCipherSuite

  • Parameters

    @@ -293,7 +293,7 @@

    addEnabledSecureTransportProtocol

  • Parameters

    @@ -316,7 +316,7 @@

    getAcceptBacklog

  • Returns number

    @@ -333,7 +333,7 @@

    getClientAuth

  • Returns ClientAuth

    @@ -350,7 +350,7 @@

    getCrlPaths

  • Returns string

    @@ -367,7 +367,7 @@

    getCrlValues

  • Returns Buffer

    @@ -384,7 +384,7 @@

    getEnabledCipherSuites

  • Returns string

    @@ -401,7 +401,7 @@

    getEnabledSecureTransportProtocols

  • Returns string

    @@ -418,7 +418,7 @@

    getHost

  • Returns string

    @@ -435,7 +435,7 @@

    getIdleTimeout

  • Returns number

    @@ -452,7 +452,7 @@

    getIdleTimeoutUnit

  • Returns any

    @@ -469,7 +469,7 @@

    getJdkSslEngineOptions

  • Returns JdkSSLEngineOptions

    @@ -486,7 +486,7 @@

    getKeyStoreOptions

  • Returns JksOptions

    @@ -503,7 +503,7 @@

    getLogActivity

  • Returns boolean

    @@ -520,7 +520,7 @@

    getMaxMessageSize

  • @@ -542,7 +542,7 @@

    getOpenSslEngineOptions

  • Returns OpenSSLEngineOptions

    @@ -559,7 +559,7 @@

    getPemKeyCertOptions

  • Returns PemKeyCertOptions

    @@ -576,7 +576,7 @@

    getPemTrustOptions

  • Returns PemTrustOptions

    @@ -593,7 +593,7 @@

    getPfxKeyCertOptions

  • Returns PfxOptions

    @@ -610,7 +610,7 @@

    getPfxTrustOptions

  • Returns PfxOptions

    @@ -627,7 +627,7 @@

    getPort

  • Returns number

    @@ -644,7 +644,7 @@

    getReceiveBufferSize

  • Returns number

    @@ -661,7 +661,7 @@

    getSendBufferSize

  • Returns number

    @@ -678,7 +678,7 @@

    getSoLinger

  • Returns number

    @@ -695,7 +695,7 @@

    getSslHandshakeTimeout

  • Returns number

    @@ -712,7 +712,7 @@

    getSslHandshakeTimeoutUnit

  • Returns any

    @@ -729,7 +729,7 @@

    getTrafficClass

  • Returns number

    @@ -746,7 +746,7 @@

    getTrustStoreOptions

  • Returns JksOptions

    @@ -763,7 +763,7 @@

    isAutoClientId

  • @@ -785,7 +785,7 @@

    isClientAuthRequired

  • Returns boolean

    @@ -802,7 +802,7 @@

    isReuseAddress

  • Returns boolean

    @@ -819,7 +819,7 @@

    isReusePort

  • Returns boolean

    @@ -836,7 +836,7 @@

    isSni

  • Returns boolean

    @@ -853,7 +853,7 @@

    isSsl

  • Returns boolean

    @@ -870,7 +870,7 @@

    isTcpCork

  • Returns boolean

    @@ -887,7 +887,7 @@

    isTcpFastOpen

  • Returns boolean

    @@ -904,7 +904,7 @@

    isTcpKeepAlive

  • Returns boolean

    @@ -921,7 +921,7 @@

    isTcpNoDelay

  • Returns boolean

    @@ -938,7 +938,7 @@

    isTcpQuickAck

  • Returns boolean

    @@ -955,7 +955,7 @@

    isUseAlpn

  • Returns boolean

    @@ -972,7 +972,7 @@

    isUsePooledBuffers

  • Returns boolean

    @@ -989,7 +989,7 @@

    setAcceptBacklog

  • Parameters

    @@ -1012,7 +1012,7 @@

    setAutoClientId

  • @@ -1040,7 +1040,7 @@

    setClientAuth

  • Parameters

    @@ -1063,7 +1063,7 @@

    setClientAuthRequired

  • Parameters

    @@ -1086,7 +1086,7 @@

    setEnabledSecureTransportProtocols

  • Parameters

    @@ -1109,7 +1109,7 @@

    setHost

  • Parameters

    @@ -1132,7 +1132,7 @@

    setIdleTimeout

  • Parameters

    @@ -1155,7 +1155,7 @@

    setIdleTimeoutUnit

  • Parameters

    @@ -1178,7 +1178,7 @@

    setJdkSslEngineOptions

  • Parameters

    @@ -1201,7 +1201,7 @@

    setKeyStoreOptions

  • Parameters

    @@ -1224,7 +1224,7 @@

    setLogActivity

  • Parameters

    @@ -1247,7 +1247,7 @@

    setMaxMessageSize

  • @@ -1275,7 +1275,7 @@

    setOpenSslEngineOptions

  • Parameters

    @@ -1298,7 +1298,7 @@

    setPemKeyCertOptions

  • Parameters

    @@ -1321,7 +1321,7 @@

    setPemTrustOptions

  • Parameters

    @@ -1344,7 +1344,7 @@

    setPfxKeyCertOptions

  • Parameters

    @@ -1367,7 +1367,7 @@

    setPfxTrustOptions

  • Parameters

    @@ -1390,7 +1390,7 @@

    setPort

  • Parameters

    @@ -1413,7 +1413,7 @@

    setReceiveBufferSize

  • Parameters

    @@ -1436,7 +1436,7 @@

    setReuseAddress

  • Parameters

    @@ -1459,7 +1459,7 @@

    setReusePort

  • Parameters

    @@ -1482,7 +1482,7 @@

    setSendBufferSize

  • Parameters

    @@ -1505,7 +1505,7 @@

    setSni

  • Parameters

    @@ -1528,7 +1528,7 @@

    setSoLinger

  • Parameters

    @@ -1551,7 +1551,7 @@

    setSsl

  • Parameters

    @@ -1574,7 +1574,7 @@

    setSslHandshakeTimeout

  • Parameters

    @@ -1597,7 +1597,7 @@

    setSslHandshakeTimeoutUnit

  • Parameters

    @@ -1620,7 +1620,7 @@

    setTcpCork

  • Parameters

    @@ -1643,7 +1643,7 @@

    setTcpFastOpen

  • Parameters

    @@ -1666,7 +1666,7 @@

    setTcpKeepAlive

  • Parameters

    @@ -1689,7 +1689,7 @@

    setTcpNoDelay

  • Parameters

    @@ -1712,7 +1712,7 @@

    setTcpQuickAck

  • Parameters

    @@ -1735,7 +1735,7 @@

    setTimeoutOnConnect

  • @@ -1763,7 +1763,7 @@

    setTrafficClass

  • Parameters

    @@ -1786,7 +1786,7 @@

    setTrustStoreOptions

  • Parameters

    @@ -1809,7 +1809,7 @@

    setUseAlpn

  • Parameters

    @@ -1832,7 +1832,7 @@

    setUsePooledBuffers

  • Parameters

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubackmessage.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubackmessage.html index 4159965c9..7928d13ea 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubackmessage.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubackmessage.html @@ -111,7 +111,7 @@

    grantedQoSLevels

  • Returns number[]

    @@ -129,7 +129,7 @@

    messageId

    Returns number

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubscribemessage.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubscribemessage.html index e19ca07b3..66ed46e4c 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubscribemessage.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttsubscribemessage.html @@ -112,7 +112,7 @@

    messageId

    Returns number

    @@ -129,7 +129,7 @@

    topicSubscriptions

  • Returns MqttTopicSubscription[]

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqtttopicsubscription.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqtttopicsubscription.html index d49987332..7007696ae 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqtttopicsubscription.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqtttopicsubscription.html @@ -105,7 +105,7 @@

    qualityOfService

  • Returns any

    @@ -122,7 +122,7 @@

    topicName

  • Returns string

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttunsubscribemessage.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttunsubscribemessage.html index cee09c8e5..3ba6adbcc 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttunsubscribemessage.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttunsubscribemessage.html @@ -112,7 +112,7 @@

    messageId

    Returns number

    @@ -129,7 +129,7 @@

    topics

  • Returns string[]

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttwill.html b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttwill.html index 275eda534..d8ab1e173 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttwill.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/classes/mqttwill.html @@ -114,7 +114,7 @@

    constructor

  • Parameters

    @@ -140,7 +140,7 @@

    getWillMessage

  • Returns string

    @@ -157,7 +157,7 @@

    getWillQos

  • Returns number

    @@ -174,7 +174,7 @@

    getWillTopic

  • Returns string

    @@ -191,7 +191,7 @@

    isWillFlag

  • Returns boolean

    @@ -208,7 +208,7 @@

    isWillRetain

  • Returns boolean

    diff --git a/docs/.vuepress/public/@vertx/vertx-mqtt/index.html b/docs/.vuepress/public/@vertx/vertx-mqtt/index.html index 6a685d583..2389caf1e 100644 --- a/docs/.vuepress/public/@vertx/vertx-mqtt/index.html +++ b/docs/.vuepress/public/@vertx/vertx-mqtt/index.html @@ -63,7 +63,8 @@

    @vertx/vertx-mqtt

  • Returns number

    diff --git a/docs/.vuepress/public/@vertx/web-api-contract/index.html b/docs/.vuepress/public/@vertx/web-api-contract/index.html index f8a389c18..7ef05ab71 100644 --- a/docs/.vuepress/public/@vertx/web-api-contract/index.html +++ b/docs/.vuepress/public/@vertx/web-api-contract/index.html @@ -63,7 +63,8 @@

    @vertx/web-api-contract

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/web-client/assets/js/search.json b/docs/.vuepress/public/@vertx/web-client/assets/js/search.json index 68c2b6f61..7cacb615a 100644 --- a/docs/.vuepress/public/@vertx/web-client/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/web-client/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"128":"Class","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"WebClientOptions","url":"classes/webclientoptions.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/webclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"WebClientOptions"},{"id":2,"kind":2048,"name":"getAlpnVersions","url":"classes/webclientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":3,"kind":2048,"name":"setAlpnVersions","url":"classes/webclientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":4,"kind":2048,"name":"getConnectTimeout","url":"classes/webclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":5,"kind":2048,"name":"setConnectTimeout","url":"classes/webclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":6,"kind":2048,"name":"getCrlPaths","url":"classes/webclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":7,"kind":2048,"name":"addCrlPath","url":"classes/webclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":8,"kind":2048,"name":"getCrlValues","url":"classes/webclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":9,"kind":2048,"name":"addCrlValue","url":"classes/webclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":10,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/webclientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":11,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/webclientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":12,"kind":2048,"name":"getDefaultHost","url":"classes/webclientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":13,"kind":2048,"name":"setDefaultHost","url":"classes/webclientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":14,"kind":2048,"name":"getDefaultPort","url":"classes/webclientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":15,"kind":2048,"name":"setDefaultPort","url":"classes/webclientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":16,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/webclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":17,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/webclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":18,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/webclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":19,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/webclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":20,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/webclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":21,"kind":2048,"name":"isFollowRedirects","url":"classes/webclientoptions.html#isfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":22,"kind":2048,"name":"setFollowRedirects","url":"classes/webclientoptions.html#setfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":23,"kind":2048,"name":"isForceSni","url":"classes/webclientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":24,"kind":2048,"name":"setForceSni","url":"classes/webclientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":25,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/webclientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":26,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/webclientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":27,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/webclientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":28,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/webclientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":29,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/webclientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":30,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/webclientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":31,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/webclientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":32,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/webclientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":33,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/webclientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":34,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/webclientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":35,"kind":2048,"name":"getIdleTimeout","url":"classes/webclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":36,"kind":2048,"name":"setIdleTimeout","url":"classes/webclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":37,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/webclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":38,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/webclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":39,"kind":2048,"name":"getInitialSettings","url":"classes/webclientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":40,"kind":2048,"name":"setInitialSettings","url":"classes/webclientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":41,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/webclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":42,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/webclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":43,"kind":2048,"name":"isKeepAlive","url":"classes/webclientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":44,"kind":2048,"name":"setKeepAlive","url":"classes/webclientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":45,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/webclientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":46,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/webclientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":47,"kind":2048,"name":"getKeyStoreOptions","url":"classes/webclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":48,"kind":2048,"name":"setKeyStoreOptions","url":"classes/webclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":49,"kind":2048,"name":"getLocalAddress","url":"classes/webclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":50,"kind":2048,"name":"setLocalAddress","url":"classes/webclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":51,"kind":2048,"name":"getLogActivity","url":"classes/webclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":52,"kind":2048,"name":"setLogActivity","url":"classes/webclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":53,"kind":2048,"name":"getMaxChunkSize","url":"classes/webclientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":54,"kind":2048,"name":"setMaxChunkSize","url":"classes/webclientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":55,"kind":2048,"name":"getMaxHeaderSize","url":"classes/webclientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":56,"kind":2048,"name":"setMaxHeaderSize","url":"classes/webclientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":57,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/webclientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":58,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/webclientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":59,"kind":2048,"name":"getMaxPoolSize","url":"classes/webclientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":60,"kind":2048,"name":"setMaxPoolSize","url":"classes/webclientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":61,"kind":2048,"name":"getMaxRedirects","url":"classes/webclientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":62,"kind":2048,"name":"setMaxRedirects","url":"classes/webclientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":63,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/webclientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":64,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/webclientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":65,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/webclientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":66,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/webclientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":67,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/webclientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":68,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/webclientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":69,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/webclientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":70,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/webclientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":71,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/webclientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":72,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/webclientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":73,"kind":2048,"name":"getMetricsName","url":"classes/webclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":74,"kind":2048,"name":"setMetricsName","url":"classes/webclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":75,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/webclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":76,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/webclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":77,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/webclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":78,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/webclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":79,"kind":2048,"name":"getPemTrustOptions","url":"classes/webclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":80,"kind":2048,"name":"setPemTrustOptions","url":"classes/webclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":81,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/webclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":82,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/webclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":83,"kind":2048,"name":"getPfxTrustOptions","url":"classes/webclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":84,"kind":2048,"name":"setPfxTrustOptions","url":"classes/webclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":85,"kind":2048,"name":"isPipelining","url":"classes/webclientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":86,"kind":2048,"name":"setPipelining","url":"classes/webclientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":87,"kind":2048,"name":"getPipeliningLimit","url":"classes/webclientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":88,"kind":2048,"name":"setPipeliningLimit","url":"classes/webclientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":89,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/webclientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":90,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/webclientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":91,"kind":2048,"name":"getProtocolVersion","url":"classes/webclientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":92,"kind":2048,"name":"setProtocolVersion","url":"classes/webclientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":93,"kind":2048,"name":"getProxyOptions","url":"classes/webclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":94,"kind":2048,"name":"setProxyOptions","url":"classes/webclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":95,"kind":2048,"name":"getReceiveBufferSize","url":"classes/webclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":96,"kind":2048,"name":"setReceiveBufferSize","url":"classes/webclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":97,"kind":2048,"name":"isReuseAddress","url":"classes/webclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":98,"kind":2048,"name":"setReuseAddress","url":"classes/webclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":99,"kind":2048,"name":"isReusePort","url":"classes/webclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":100,"kind":2048,"name":"setReusePort","url":"classes/webclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":101,"kind":2048,"name":"getSendBufferSize","url":"classes/webclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":102,"kind":2048,"name":"setSendBufferSize","url":"classes/webclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":103,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/webclientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":104,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/webclientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":105,"kind":2048,"name":"getSoLinger","url":"classes/webclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":106,"kind":2048,"name":"setSoLinger","url":"classes/webclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":107,"kind":2048,"name":"isSsl","url":"classes/webclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":108,"kind":2048,"name":"setSsl","url":"classes/webclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":109,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/webclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":110,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/webclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":111,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/webclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":112,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/webclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":113,"kind":2048,"name":"isTcpCork","url":"classes/webclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":114,"kind":2048,"name":"setTcpCork","url":"classes/webclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":115,"kind":2048,"name":"isTcpFastOpen","url":"classes/webclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":116,"kind":2048,"name":"setTcpFastOpen","url":"classes/webclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":117,"kind":2048,"name":"isTcpKeepAlive","url":"classes/webclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":118,"kind":2048,"name":"setTcpKeepAlive","url":"classes/webclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":119,"kind":2048,"name":"isTcpNoDelay","url":"classes/webclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":120,"kind":2048,"name":"setTcpNoDelay","url":"classes/webclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":121,"kind":2048,"name":"isTcpQuickAck","url":"classes/webclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":122,"kind":2048,"name":"setTcpQuickAck","url":"classes/webclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":123,"kind":2048,"name":"getTrafficClass","url":"classes/webclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":124,"kind":2048,"name":"setTrafficClass","url":"classes/webclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":125,"kind":2048,"name":"isTrustAll","url":"classes/webclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":126,"kind":2048,"name":"setTrustAll","url":"classes/webclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":127,"kind":2048,"name":"getTrustStoreOptions","url":"classes/webclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":128,"kind":2048,"name":"setTrustStoreOptions","url":"classes/webclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":129,"kind":2048,"name":"isTryUseCompression","url":"classes/webclientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":130,"kind":2048,"name":"setTryUseCompression","url":"classes/webclientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":131,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/webclientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":132,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/webclientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":133,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/webclientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":134,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/webclientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":135,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/webclientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":136,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/webclientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":137,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/webclientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":138,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/webclientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":139,"kind":2048,"name":"isUseAlpn","url":"classes/webclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":140,"kind":2048,"name":"setUseAlpn","url":"classes/webclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":141,"kind":2048,"name":"isUsePooledBuffers","url":"classes/webclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":142,"kind":2048,"name":"setUsePooledBuffers","url":"classes/webclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":143,"kind":2048,"name":"getUserAgent","url":"classes/webclientoptions.html#getuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":144,"kind":2048,"name":"setUserAgent","url":"classes/webclientoptions.html#setuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":145,"kind":2048,"name":"isUserAgentEnabled","url":"classes/webclientoptions.html#isuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":146,"kind":2048,"name":"setUserAgentEnabled","url":"classes/webclientoptions.html#setuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":147,"kind":2048,"name":"isVerifyHost","url":"classes/webclientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":148,"kind":2048,"name":"setVerifyHost","url":"classes/webclientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":149,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":150,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":151,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/webclientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":152,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/webclientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":153,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":154,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":155,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":156,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":157,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/webclientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":158,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/webclientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":159,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":160,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":161,"kind":128,"name":"ErrorConverter","url":"classes/errorconverter.html","classes":"tsd-kind-class"},{"id":162,"kind":1024,"name":"DEFAULT_CONVERTER","url":"classes/errorconverter.html#default_converter","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ErrorConverter"},{"id":163,"kind":2048,"name":"create","url":"classes/errorconverter.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ErrorConverter"},{"id":164,"kind":2048,"name":"createFullBody","url":"classes/errorconverter.html#createfullbody","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ErrorConverter"},{"id":165,"kind":2048,"name":"apply","url":"classes/errorconverter.html#apply","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ErrorConverter"},{"id":166,"kind":2048,"name":"requiresBody","url":"classes/errorconverter.html#requiresbody","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ErrorConverter"},{"id":167,"kind":128,"name":"HttpRequest","url":"classes/httprequest.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":168,"kind":2048,"name":"method","url":"classes/httprequest.html#method","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":169,"kind":2048,"name":"rawMethod","url":"classes/httprequest.html#rawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":170,"kind":2048,"name":"port","url":"classes/httprequest.html#port","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":171,"kind":2048,"name":"as","url":"classes/httprequest.html#as","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"HttpRequest"},{"id":172,"kind":2048,"name":"host","url":"classes/httprequest.html#host","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":173,"kind":2048,"name":"virtualHost","url":"classes/httprequest.html#virtualhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":174,"kind":2048,"name":"uri","url":"classes/httprequest.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":175,"kind":2048,"name":"putHeaders","url":"classes/httprequest.html#putheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":176,"kind":2048,"name":"putHeader","url":"classes/httprequest.html#putheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":177,"kind":2048,"name":"headers","url":"classes/httprequest.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":178,"kind":2048,"name":"basicAuthentication","url":"classes/httprequest.html#basicauthentication","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":179,"kind":2048,"name":"bearerTokenAuthentication","url":"classes/httprequest.html#bearertokenauthentication","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":180,"kind":2048,"name":"ssl","url":"classes/httprequest.html#ssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":181,"kind":2048,"name":"timeout","url":"classes/httprequest.html#timeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":182,"kind":2048,"name":"addQueryParam","url":"classes/httprequest.html#addqueryparam","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":183,"kind":2048,"name":"setQueryParam","url":"classes/httprequest.html#setqueryparam","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":184,"kind":2048,"name":"followRedirects","url":"classes/httprequest.html#followredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":185,"kind":2048,"name":"expect","url":"classes/httprequest.html#expect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":186,"kind":2048,"name":"queryParams","url":"classes/httprequest.html#queryparams","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":187,"kind":2048,"name":"copy","url":"classes/httprequest.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":188,"kind":2048,"name":"multipartMixed","url":"classes/httprequest.html#multipartmixed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":189,"kind":2048,"name":"sendStream","url":"classes/httprequest.html#sendstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":190,"kind":2048,"name":"sendBuffer","url":"classes/httprequest.html#sendbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":191,"kind":2048,"name":"sendJsonObject","url":"classes/httprequest.html#sendjsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":192,"kind":2048,"name":"sendJson","url":"classes/httprequest.html#sendjson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":193,"kind":2048,"name":"sendForm","url":"classes/httprequest.html#sendform","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":194,"kind":2048,"name":"sendMultipartForm","url":"classes/httprequest.html#sendmultipartform","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":195,"kind":2048,"name":"send","url":"classes/httprequest.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":196,"kind":128,"name":"HttpResponse","url":"classes/httpresponse.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":197,"kind":2048,"name":"version","url":"classes/httpresponse.html#version","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":198,"kind":2048,"name":"statusCode","url":"classes/httpresponse.html#statuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":199,"kind":2048,"name":"statusMessage","url":"classes/httpresponse.html#statusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":200,"kind":2048,"name":"headers","url":"classes/httpresponse.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":201,"kind":2048,"name":"getHeader","url":"classes/httpresponse.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":202,"kind":2048,"name":"trailers","url":"classes/httpresponse.html#trailers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":203,"kind":2048,"name":"getTrailer","url":"classes/httpresponse.html#gettrailer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":204,"kind":2048,"name":"cookies","url":"classes/httpresponse.html#cookies","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":205,"kind":2048,"name":"body","url":"classes/httpresponse.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":206,"kind":2048,"name":"bodyAsBuffer","url":"classes/httpresponse.html#bodyasbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":207,"kind":2048,"name":"followedRedirects","url":"classes/httpresponse.html#followedredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":208,"kind":2048,"name":"bodyAsString","url":"classes/httpresponse.html#bodyasstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":209,"kind":2048,"name":"bodyAsJsonObject","url":"classes/httpresponse.html#bodyasjsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":210,"kind":2048,"name":"bodyAsJsonArray","url":"classes/httpresponse.html#bodyasjsonarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":211,"kind":2048,"name":"bodyAsJson","url":"classes/httpresponse.html#bodyasjson","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"HttpResponse"},{"id":212,"kind":128,"name":"ResponsePredicate","url":"classes/responsepredicate.html","classes":"tsd-kind-class"},{"id":213,"kind":1024,"name":"SC_INFORMATIONAL_RESPONSE","url":"classes/responsepredicate.html#sc_informational_response","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":214,"kind":1024,"name":"SC_CONTINUE","url":"classes/responsepredicate.html#sc_continue","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":215,"kind":1024,"name":"SC_SWITCHING_PROTOCOLS","url":"classes/responsepredicate.html#sc_switching_protocols","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":216,"kind":1024,"name":"SC_PROCESSING","url":"classes/responsepredicate.html#sc_processing","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":217,"kind":1024,"name":"SC_EARLY_HINTS","url":"classes/responsepredicate.html#sc_early_hints","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":218,"kind":1024,"name":"SC_SUCCESS","url":"classes/responsepredicate.html#sc_success","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":219,"kind":1024,"name":"SC_OK","url":"classes/responsepredicate.html#sc_ok","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":220,"kind":1024,"name":"SC_CREATED","url":"classes/responsepredicate.html#sc_created","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":221,"kind":1024,"name":"SC_ACCEPTED","url":"classes/responsepredicate.html#sc_accepted","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":222,"kind":1024,"name":"SC_NON_AUTHORITATIVE_INFORMATION","url":"classes/responsepredicate.html#sc_non_authoritative_information","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":223,"kind":1024,"name":"SC_NO_CONTENT","url":"classes/responsepredicate.html#sc_no_content","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":224,"kind":1024,"name":"SC_RESET_CONTENT","url":"classes/responsepredicate.html#sc_reset_content","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":225,"kind":1024,"name":"SC_PARTIAL_CONTENT","url":"classes/responsepredicate.html#sc_partial_content","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":226,"kind":1024,"name":"SC_MULTI_STATUS","url":"classes/responsepredicate.html#sc_multi_status","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":227,"kind":1024,"name":"SC_REDIRECTION","url":"classes/responsepredicate.html#sc_redirection","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":228,"kind":1024,"name":"SC_MULTIPLE_CHOICES","url":"classes/responsepredicate.html#sc_multiple_choices","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":229,"kind":1024,"name":"SC_MOVED_PERMANENTLY","url":"classes/responsepredicate.html#sc_moved_permanently","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":230,"kind":1024,"name":"SC_FOUND","url":"classes/responsepredicate.html#sc_found","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":231,"kind":1024,"name":"SC_SEE_OTHER","url":"classes/responsepredicate.html#sc_see_other","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":232,"kind":1024,"name":"SC_NOT_MODIFIED","url":"classes/responsepredicate.html#sc_not_modified","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":233,"kind":1024,"name":"SC_USE_PROXY","url":"classes/responsepredicate.html#sc_use_proxy","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":234,"kind":1024,"name":"SC_TEMPORARY_REDIRECT","url":"classes/responsepredicate.html#sc_temporary_redirect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":235,"kind":1024,"name":"SC_PERMANENT_REDIRECT","url":"classes/responsepredicate.html#sc_permanent_redirect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":236,"kind":1024,"name":"SC_CLIENT_ERRORS","url":"classes/responsepredicate.html#sc_client_errors","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":237,"kind":1024,"name":"SC_BAD_REQUEST","url":"classes/responsepredicate.html#sc_bad_request","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":238,"kind":1024,"name":"SC_UNAUTHORIZED","url":"classes/responsepredicate.html#sc_unauthorized","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":239,"kind":1024,"name":"SC_PAYMENT_REQUIRED","url":"classes/responsepredicate.html#sc_payment_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":240,"kind":1024,"name":"SC_FORBIDDEN","url":"classes/responsepredicate.html#sc_forbidden","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":241,"kind":1024,"name":"SC_NOT_FOUND","url":"classes/responsepredicate.html#sc_not_found","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":242,"kind":1024,"name":"SC_METHOD_NOT_ALLOWED","url":"classes/responsepredicate.html#sc_method_not_allowed","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":243,"kind":1024,"name":"SC_NOT_ACCEPTABLE","url":"classes/responsepredicate.html#sc_not_acceptable","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":244,"kind":1024,"name":"SC_PROXY_AUTHENTICATION_REQUIRED","url":"classes/responsepredicate.html#sc_proxy_authentication_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":245,"kind":1024,"name":"SC_REQUEST_TIMEOUT","url":"classes/responsepredicate.html#sc_request_timeout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":246,"kind":1024,"name":"SC_CONFLICT","url":"classes/responsepredicate.html#sc_conflict","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":247,"kind":1024,"name":"SC_GONE","url":"classes/responsepredicate.html#sc_gone","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":248,"kind":1024,"name":"SC_LENGTH_REQUIRED","url":"classes/responsepredicate.html#sc_length_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":249,"kind":1024,"name":"SC_PRECONDITION_FAILED","url":"classes/responsepredicate.html#sc_precondition_failed","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":250,"kind":1024,"name":"SC_REQUEST_ENTITY_TOO_LARGE","url":"classes/responsepredicate.html#sc_request_entity_too_large","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":251,"kind":1024,"name":"SC_REQUEST_URI_TOO_LONG","url":"classes/responsepredicate.html#sc_request_uri_too_long","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":252,"kind":1024,"name":"SC_UNSUPPORTED_MEDIA_TYPE","url":"classes/responsepredicate.html#sc_unsupported_media_type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":253,"kind":1024,"name":"SC_REQUESTED_RANGE_NOT_SATISFIABLE","url":"classes/responsepredicate.html#sc_requested_range_not_satisfiable","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":254,"kind":1024,"name":"SC_EXPECTATION_FAILED","url":"classes/responsepredicate.html#sc_expectation_failed","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":255,"kind":1024,"name":"SC_MISDIRECTED_REQUEST","url":"classes/responsepredicate.html#sc_misdirected_request","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":256,"kind":1024,"name":"SC_UNPROCESSABLE_ENTITY","url":"classes/responsepredicate.html#sc_unprocessable_entity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":257,"kind":1024,"name":"SC_LOCKED","url":"classes/responsepredicate.html#sc_locked","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":258,"kind":1024,"name":"SC_FAILED_DEPENDENCY","url":"classes/responsepredicate.html#sc_failed_dependency","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":259,"kind":1024,"name":"SC_UNORDERED_COLLECTION","url":"classes/responsepredicate.html#sc_unordered_collection","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":260,"kind":1024,"name":"SC_UPGRADE_REQUIRED","url":"classes/responsepredicate.html#sc_upgrade_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":261,"kind":1024,"name":"SC_PRECONDITION_REQUIRED","url":"classes/responsepredicate.html#sc_precondition_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":262,"kind":1024,"name":"SC_TOO_MANY_REQUESTS","url":"classes/responsepredicate.html#sc_too_many_requests","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":263,"kind":1024,"name":"SC_REQUEST_HEADER_FIELDS_TOO_LARGE","url":"classes/responsepredicate.html#sc_request_header_fields_too_large","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":264,"kind":1024,"name":"SC_SERVER_ERRORS","url":"classes/responsepredicate.html#sc_server_errors","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":265,"kind":1024,"name":"SC_INTERNAL_SERVER_ERROR","url":"classes/responsepredicate.html#sc_internal_server_error","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":266,"kind":1024,"name":"SC_NOT_IMPLEMENTED","url":"classes/responsepredicate.html#sc_not_implemented","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":267,"kind":1024,"name":"SC_BAD_GATEWAY","url":"classes/responsepredicate.html#sc_bad_gateway","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":268,"kind":1024,"name":"SC_SERVICE_UNAVAILABLE","url":"classes/responsepredicate.html#sc_service_unavailable","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":269,"kind":1024,"name":"SC_GATEWAY_TIMEOUT","url":"classes/responsepredicate.html#sc_gateway_timeout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":270,"kind":1024,"name":"SC_HTTP_VERSION_NOT_SUPPORTED","url":"classes/responsepredicate.html#sc_http_version_not_supported","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":271,"kind":1024,"name":"SC_VARIANT_ALSO_NEGOTIATES","url":"classes/responsepredicate.html#sc_variant_also_negotiates","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":272,"kind":1024,"name":"SC_INSUFFICIENT_STORAGE","url":"classes/responsepredicate.html#sc_insufficient_storage","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":273,"kind":1024,"name":"SC_NOT_EXTENDED","url":"classes/responsepredicate.html#sc_not_extended","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":274,"kind":1024,"name":"SC_NETWORK_AUTHENTICATION_REQUIRED","url":"classes/responsepredicate.html#sc_network_authentication_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":275,"kind":1024,"name":"JSON","url":"classes/responsepredicate.html#json","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":276,"kind":2048,"name":"status","url":"classes/responsepredicate.html#status","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":277,"kind":2048,"name":"contentType","url":"classes/responsepredicate.html#contenttype","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":278,"kind":2048,"name":"create","url":"classes/responsepredicate.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":279,"kind":2048,"name":"errorConverter","url":"classes/responsepredicate.html#errorconverter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicate"},{"id":280,"kind":128,"name":"ResponsePredicateResult","url":"classes/responsepredicateresult.html","classes":"tsd-kind-class"},{"id":281,"kind":2048,"name":"success","url":"classes/responsepredicateresult.html#success","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicateResult"},{"id":282,"kind":2048,"name":"failure","url":"classes/responsepredicateresult.html#failure","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicateResult"},{"id":283,"kind":2048,"name":"succeeded","url":"classes/responsepredicateresult.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicateResult"},{"id":284,"kind":2048,"name":"message","url":"classes/responsepredicateresult.html#message","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicateResult"},{"id":285,"kind":2048,"name":"response","url":"classes/responsepredicateresult.html#response","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicateResult"},{"id":286,"kind":128,"name":"WebClient","url":"classes/webclient.html","classes":"tsd-kind-class"},{"id":287,"kind":2048,"name":"create","url":"classes/webclient.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebClient"},{"id":288,"kind":2048,"name":"wrap","url":"classes/webclient.html#wrap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebClient"},{"id":289,"kind":2048,"name":"request","url":"classes/webclient.html#request","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":290,"kind":2048,"name":"requestAbs","url":"classes/webclient.html#requestabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":291,"kind":2048,"name":"get","url":"classes/webclient.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":292,"kind":2048,"name":"getAbs","url":"classes/webclient.html#getabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":293,"kind":2048,"name":"post","url":"classes/webclient.html#post","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":294,"kind":2048,"name":"postAbs","url":"classes/webclient.html#postabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":295,"kind":2048,"name":"put","url":"classes/webclient.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":296,"kind":2048,"name":"putAbs","url":"classes/webclient.html#putabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":297,"kind":2048,"name":"delete","url":"classes/webclient.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":298,"kind":2048,"name":"deleteAbs","url":"classes/webclient.html#deleteabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":299,"kind":2048,"name":"patch","url":"classes/webclient.html#patch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":300,"kind":2048,"name":"patchAbs","url":"classes/webclient.html#patchabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":301,"kind":2048,"name":"head","url":"classes/webclient.html#head","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":302,"kind":2048,"name":"headAbs","url":"classes/webclient.html#headabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":303,"kind":2048,"name":"raw","url":"classes/webclient.html#raw","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":304,"kind":2048,"name":"rawAbs","url":"classes/webclient.html#rawabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":305,"kind":2048,"name":"close","url":"classes/webclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,6.423]],["parent/0",[]],["name/1",[1,53.214]],["parent/1",[0,0.636]],["name/2",[2,53.214]],["parent/2",[0,0.636]],["name/3",[3,53.214]],["parent/3",[0,0.636]],["name/4",[4,53.214]],["parent/4",[0,0.636]],["name/5",[5,53.214]],["parent/5",[0,0.636]],["name/6",[6,53.214]],["parent/6",[0,0.636]],["name/7",[7,53.214]],["parent/7",[0,0.636]],["name/8",[8,53.214]],["parent/8",[0,0.636]],["name/9",[9,53.214]],["parent/9",[0,0.636]],["name/10",[10,53.214]],["parent/10",[0,0.636]],["name/11",[11,53.214]],["parent/11",[0,0.636]],["name/12",[12,53.214]],["parent/12",[0,0.636]],["name/13",[13,53.214]],["parent/13",[0,0.636]],["name/14",[14,53.214]],["parent/14",[0,0.636]],["name/15",[15,53.214]],["parent/15",[0,0.636]],["name/16",[16,53.214]],["parent/16",[0,0.636]],["name/17",[17,53.214]],["parent/17",[0,0.636]],["name/18",[18,53.214]],["parent/18",[0,0.636]],["name/19",[19,53.214]],["parent/19",[0,0.636]],["name/20",[20,53.214]],["parent/20",[0,0.636]],["name/21",[21,53.214]],["parent/21",[0,0.636]],["name/22",[22,53.214]],["parent/22",[0,0.636]],["name/23",[23,53.214]],["parent/23",[0,0.636]],["name/24",[24,53.214]],["parent/24",[0,0.636]],["name/25",[25,53.214]],["parent/25",[0,0.636]],["name/26",[26,53.214]],["parent/26",[0,0.636]],["name/27",[27,53.214]],["parent/27",[0,0.636]],["name/28",[28,53.214]],["parent/28",[0,0.636]],["name/29",[29,53.214]],["parent/29",[0,0.636]],["name/30",[30,53.214]],["parent/30",[0,0.636]],["name/31",[31,53.214]],["parent/31",[0,0.636]],["name/32",[32,53.214]],["parent/32",[0,0.636]],["name/33",[33,53.214]],["parent/33",[0,0.636]],["name/34",[34,53.214]],["parent/34",[0,0.636]],["name/35",[35,53.214]],["parent/35",[0,0.636]],["name/36",[36,53.214]],["parent/36",[0,0.636]],["name/37",[37,53.214]],["parent/37",[0,0.636]],["name/38",[38,53.214]],["parent/38",[0,0.636]],["name/39",[39,53.214]],["parent/39",[0,0.636]],["name/40",[40,53.214]],["parent/40",[0,0.636]],["name/41",[41,53.214]],["parent/41",[0,0.636]],["name/42",[42,53.214]],["parent/42",[0,0.636]],["name/43",[43,53.214]],["parent/43",[0,0.636]],["name/44",[44,53.214]],["parent/44",[0,0.636]],["name/45",[45,53.214]],["parent/45",[0,0.636]],["name/46",[46,53.214]],["parent/46",[0,0.636]],["name/47",[47,53.214]],["parent/47",[0,0.636]],["name/48",[48,53.214]],["parent/48",[0,0.636]],["name/49",[49,53.214]],["parent/49",[0,0.636]],["name/50",[50,53.214]],["parent/50",[0,0.636]],["name/51",[51,53.214]],["parent/51",[0,0.636]],["name/52",[52,53.214]],["parent/52",[0,0.636]],["name/53",[53,53.214]],["parent/53",[0,0.636]],["name/54",[54,53.214]],["parent/54",[0,0.636]],["name/55",[55,53.214]],["parent/55",[0,0.636]],["name/56",[56,53.214]],["parent/56",[0,0.636]],["name/57",[57,53.214]],["parent/57",[0,0.636]],["name/58",[58,53.214]],["parent/58",[0,0.636]],["name/59",[59,53.214]],["parent/59",[0,0.636]],["name/60",[60,53.214]],["parent/60",[0,0.636]],["name/61",[61,53.214]],["parent/61",[0,0.636]],["name/62",[62,53.214]],["parent/62",[0,0.636]],["name/63",[63,53.214]],["parent/63",[0,0.636]],["name/64",[64,53.214]],["parent/64",[0,0.636]],["name/65",[65,48.106]],["parent/65",[0,0.636]],["name/66",[66,48.106]],["parent/66",[0,0.636]],["name/67",[67,48.106]],["parent/67",[0,0.636]],["name/68",[68,48.106]],["parent/68",[0,0.636]],["name/69",[65,48.106]],["parent/69",[0,0.636]],["name/70",[66,48.106]],["parent/70",[0,0.636]],["name/71",[67,48.106]],["parent/71",[0,0.636]],["name/72",[68,48.106]],["parent/72",[0,0.636]],["name/73",[69,53.214]],["parent/73",[0,0.636]],["name/74",[70,53.214]],["parent/74",[0,0.636]],["name/75",[71,53.214]],["parent/75",[0,0.636]],["name/76",[72,53.214]],["parent/76",[0,0.636]],["name/77",[73,53.214]],["parent/77",[0,0.636]],["name/78",[74,53.214]],["parent/78",[0,0.636]],["name/79",[75,53.214]],["parent/79",[0,0.636]],["name/80",[76,53.214]],["parent/80",[0,0.636]],["name/81",[77,53.214]],["parent/81",[0,0.636]],["name/82",[78,53.214]],["parent/82",[0,0.636]],["name/83",[79,53.214]],["parent/83",[0,0.636]],["name/84",[80,53.214]],["parent/84",[0,0.636]],["name/85",[81,53.214]],["parent/85",[0,0.636]],["name/86",[82,53.214]],["parent/86",[0,0.636]],["name/87",[83,53.214]],["parent/87",[0,0.636]],["name/88",[84,53.214]],["parent/88",[0,0.636]],["name/89",[85,53.214]],["parent/89",[0,0.636]],["name/90",[86,53.214]],["parent/90",[0,0.636]],["name/91",[87,53.214]],["parent/91",[0,0.636]],["name/92",[88,53.214]],["parent/92",[0,0.636]],["name/93",[89,53.214]],["parent/93",[0,0.636]],["name/94",[90,53.214]],["parent/94",[0,0.636]],["name/95",[91,53.214]],["parent/95",[0,0.636]],["name/96",[92,53.214]],["parent/96",[0,0.636]],["name/97",[93,53.214]],["parent/97",[0,0.636]],["name/98",[94,53.214]],["parent/98",[0,0.636]],["name/99",[95,53.214]],["parent/99",[0,0.636]],["name/100",[96,53.214]],["parent/100",[0,0.636]],["name/101",[97,53.214]],["parent/101",[0,0.636]],["name/102",[98,53.214]],["parent/102",[0,0.636]],["name/103",[99,53.214]],["parent/103",[0,0.636]],["name/104",[100,53.214]],["parent/104",[0,0.636]],["name/105",[101,53.214]],["parent/105",[0,0.636]],["name/106",[102,53.214]],["parent/106",[0,0.636]],["name/107",[103,53.214]],["parent/107",[0,0.636]],["name/108",[104,53.214]],["parent/108",[0,0.636]],["name/109",[105,53.214]],["parent/109",[0,0.636]],["name/110",[106,53.214]],["parent/110",[0,0.636]],["name/111",[107,53.214]],["parent/111",[0,0.636]],["name/112",[108,53.214]],["parent/112",[0,0.636]],["name/113",[109,53.214]],["parent/113",[0,0.636]],["name/114",[110,53.214]],["parent/114",[0,0.636]],["name/115",[111,53.214]],["parent/115",[0,0.636]],["name/116",[112,53.214]],["parent/116",[0,0.636]],["name/117",[113,53.214]],["parent/117",[0,0.636]],["name/118",[114,53.214]],["parent/118",[0,0.636]],["name/119",[115,53.214]],["parent/119",[0,0.636]],["name/120",[116,53.214]],["parent/120",[0,0.636]],["name/121",[117,53.214]],["parent/121",[0,0.636]],["name/122",[118,53.214]],["parent/122",[0,0.636]],["name/123",[119,53.214]],["parent/123",[0,0.636]],["name/124",[120,53.214]],["parent/124",[0,0.636]],["name/125",[121,53.214]],["parent/125",[0,0.636]],["name/126",[122,53.214]],["parent/126",[0,0.636]],["name/127",[123,53.214]],["parent/127",[0,0.636]],["name/128",[124,53.214]],["parent/128",[0,0.636]],["name/129",[125,53.214]],["parent/129",[0,0.636]],["name/130",[126,53.214]],["parent/130",[0,0.636]],["name/131",[127,48.106]],["parent/131",[0,0.636]],["name/132",[127,48.106]],["parent/132",[0,0.636]],["name/133",[128,48.106]],["parent/133",[0,0.636]],["name/134",[129,48.106]],["parent/134",[0,0.636]],["name/135",[128,48.106]],["parent/135",[0,0.636]],["name/136",[129,48.106]],["parent/136",[0,0.636]],["name/137",[130,48.106]],["parent/137",[0,0.636]],["name/138",[130,48.106]],["parent/138",[0,0.636]],["name/139",[131,53.214]],["parent/139",[0,0.636]],["name/140",[132,53.214]],["parent/140",[0,0.636]],["name/141",[133,53.214]],["parent/141",[0,0.636]],["name/142",[134,53.214]],["parent/142",[0,0.636]],["name/143",[135,53.214]],["parent/143",[0,0.636]],["name/144",[136,53.214]],["parent/144",[0,0.636]],["name/145",[137,53.214]],["parent/145",[0,0.636]],["name/146",[138,53.214]],["parent/146",[0,0.636]],["name/147",[139,53.214]],["parent/147",[0,0.636]],["name/148",[140,53.214]],["parent/148",[0,0.636]],["name/149",[141,48.106]],["parent/149",[0,0.636]],["name/150",[142,48.106]],["parent/150",[0,0.636]],["name/151",[143,48.106]],["parent/151",[0,0.636]],["name/152",[144,48.106]],["parent/152",[0,0.636]],["name/153",[145,48.106]],["parent/153",[0,0.636]],["name/154",[146,48.106]],["parent/154",[0,0.636]],["name/155",[141,48.106]],["parent/155",[0,0.636]],["name/156",[142,48.106]],["parent/156",[0,0.636]],["name/157",[143,48.106]],["parent/157",[0,0.636]],["name/158",[144,48.106]],["parent/158",[0,0.636]],["name/159",[145,48.106]],["parent/159",[0,0.636]],["name/160",[146,48.106]],["parent/160",[0,0.636]],["name/161",[147,37.119]],["parent/161",[]],["name/162",[148,53.214]],["parent/162",[147,3.677]],["name/163",[149,44.741]],["parent/163",[147,3.677]],["name/164",[150,53.214]],["parent/164",[147,3.677]],["name/165",[151,53.214]],["parent/165",[147,3.677]],["name/166",[152,53.214]],["parent/166",[147,3.677]],["name/167",[153,23.425]],["parent/167",[]],["name/168",[154,53.214]],["parent/168",[153,2.32]],["name/169",[155,53.214]],["parent/169",[153,2.32]],["name/170",[156,53.214]],["parent/170",[153,2.32]],["name/171",[157,53.214]],["parent/171",[153,2.32]],["name/172",[158,53.214]],["parent/172",[153,2.32]],["name/173",[159,53.214]],["parent/173",[153,2.32]],["name/174",[160,53.214]],["parent/174",[153,2.32]],["name/175",[161,53.214]],["parent/175",[153,2.32]],["name/176",[162,53.214]],["parent/176",[153,2.32]],["name/177",[163,48.106]],["parent/177",[153,2.32]],["name/178",[164,53.214]],["parent/178",[153,2.32]],["name/179",[165,53.214]],["parent/179",[153,2.32]],["name/180",[166,53.214]],["parent/180",[153,2.32]],["name/181",[167,53.214]],["parent/181",[153,2.32]],["name/182",[168,53.214]],["parent/182",[153,2.32]],["name/183",[169,53.214]],["parent/183",[153,2.32]],["name/184",[170,53.214]],["parent/184",[153,2.32]],["name/185",[171,53.214]],["parent/185",[153,2.32]],["name/186",[172,53.214]],["parent/186",[153,2.32]],["name/187",[173,53.214]],["parent/187",[153,2.32]],["name/188",[174,53.214]],["parent/188",[153,2.32]],["name/189",[175,53.214]],["parent/189",[153,2.32]],["name/190",[176,53.214]],["parent/190",[153,2.32]],["name/191",[177,53.214]],["parent/191",[153,2.32]],["name/192",[178,53.214]],["parent/192",[153,2.32]],["name/193",[179,53.214]],["parent/193",[153,2.32]],["name/194",[180,53.214]],["parent/194",[153,2.32]],["name/195",[181,53.214]],["parent/195",[153,2.32]],["name/196",[182,29.235]],["parent/196",[]],["name/197",[183,53.214]],["parent/197",[182,2.896]],["name/198",[184,53.214]],["parent/198",[182,2.896]],["name/199",[185,53.214]],["parent/199",[182,2.896]],["name/200",[163,48.106]],["parent/200",[182,2.896]],["name/201",[186,53.214]],["parent/201",[182,2.896]],["name/202",[187,53.214]],["parent/202",[182,2.896]],["name/203",[188,53.214]],["parent/203",[182,2.896]],["name/204",[189,53.214]],["parent/204",[182,2.896]],["name/205",[190,53.214]],["parent/205",[182,2.896]],["name/206",[191,53.214]],["parent/206",[182,2.896]],["name/207",[192,53.214]],["parent/207",[182,2.896]],["name/208",[193,53.214]],["parent/208",[182,2.896]],["name/209",[194,53.214]],["parent/209",[182,2.896]],["name/210",[195,53.214]],["parent/210",[182,2.896]],["name/211",[196,53.214]],["parent/211",[182,2.896]],["name/212",[197,15]],["parent/212",[]],["name/213",[198,53.214]],["parent/213",[197,1.486]],["name/214",[199,53.214]],["parent/214",[197,1.486]],["name/215",[200,53.214]],["parent/215",[197,1.486]],["name/216",[201,53.214]],["parent/216",[197,1.486]],["name/217",[202,53.214]],["parent/217",[197,1.486]],["name/218",[203,53.214]],["parent/218",[197,1.486]],["name/219",[204,53.214]],["parent/219",[197,1.486]],["name/220",[205,53.214]],["parent/220",[197,1.486]],["name/221",[206,53.214]],["parent/221",[197,1.486]],["name/222",[207,53.214]],["parent/222",[197,1.486]],["name/223",[208,53.214]],["parent/223",[197,1.486]],["name/224",[209,53.214]],["parent/224",[197,1.486]],["name/225",[210,53.214]],["parent/225",[197,1.486]],["name/226",[211,53.214]],["parent/226",[197,1.486]],["name/227",[212,53.214]],["parent/227",[197,1.486]],["name/228",[213,53.214]],["parent/228",[197,1.486]],["name/229",[214,53.214]],["parent/229",[197,1.486]],["name/230",[215,53.214]],["parent/230",[197,1.486]],["name/231",[216,53.214]],["parent/231",[197,1.486]],["name/232",[217,53.214]],["parent/232",[197,1.486]],["name/233",[218,53.214]],["parent/233",[197,1.486]],["name/234",[219,53.214]],["parent/234",[197,1.486]],["name/235",[220,53.214]],["parent/235",[197,1.486]],["name/236",[221,53.214]],["parent/236",[197,1.486]],["name/237",[222,53.214]],["parent/237",[197,1.486]],["name/238",[223,53.214]],["parent/238",[197,1.486]],["name/239",[224,53.214]],["parent/239",[197,1.486]],["name/240",[225,53.214]],["parent/240",[197,1.486]],["name/241",[226,53.214]],["parent/241",[197,1.486]],["name/242",[227,53.214]],["parent/242",[197,1.486]],["name/243",[228,53.214]],["parent/243",[197,1.486]],["name/244",[229,53.214]],["parent/244",[197,1.486]],["name/245",[230,53.214]],["parent/245",[197,1.486]],["name/246",[231,53.214]],["parent/246",[197,1.486]],["name/247",[232,53.214]],["parent/247",[197,1.486]],["name/248",[233,53.214]],["parent/248",[197,1.486]],["name/249",[234,53.214]],["parent/249",[197,1.486]],["name/250",[235,53.214]],["parent/250",[197,1.486]],["name/251",[236,53.214]],["parent/251",[197,1.486]],["name/252",[237,53.214]],["parent/252",[197,1.486]],["name/253",[238,53.214]],["parent/253",[197,1.486]],["name/254",[239,53.214]],["parent/254",[197,1.486]],["name/255",[240,53.214]],["parent/255",[197,1.486]],["name/256",[241,53.214]],["parent/256",[197,1.486]],["name/257",[242,53.214]],["parent/257",[197,1.486]],["name/258",[243,53.214]],["parent/258",[197,1.486]],["name/259",[244,53.214]],["parent/259",[197,1.486]],["name/260",[245,53.214]],["parent/260",[197,1.486]],["name/261",[246,53.214]],["parent/261",[197,1.486]],["name/262",[247,53.214]],["parent/262",[197,1.486]],["name/263",[248,53.214]],["parent/263",[197,1.486]],["name/264",[249,53.214]],["parent/264",[197,1.486]],["name/265",[250,53.214]],["parent/265",[197,1.486]],["name/266",[251,53.214]],["parent/266",[197,1.486]],["name/267",[252,53.214]],["parent/267",[197,1.486]],["name/268",[253,53.214]],["parent/268",[197,1.486]],["name/269",[254,53.214]],["parent/269",[197,1.486]],["name/270",[255,53.214]],["parent/270",[197,1.486]],["name/271",[256,53.214]],["parent/271",[197,1.486]],["name/272",[257,53.214]],["parent/272",[197,1.486]],["name/273",[258,53.214]],["parent/273",[197,1.486]],["name/274",[259,53.214]],["parent/274",[197,1.486]],["name/275",[260,53.214]],["parent/275",[197,1.486]],["name/276",[261,53.214]],["parent/276",[197,1.486]],["name/277",[262,53.214]],["parent/277",[197,1.486]],["name/278",[149,44.741]],["parent/278",[197,1.486]],["name/279",[147,37.119]],["parent/279",[197,1.486]],["name/280",[263,38.55]],["parent/280",[]],["name/281",[264,53.214]],["parent/281",[263,3.818]],["name/282",[265,53.214]],["parent/282",[263,3.818]],["name/283",[266,53.214]],["parent/283",[263,3.818]],["name/284",[267,53.214]],["parent/284",[263,3.818]],["name/285",[268,53.214]],["parent/285",[263,3.818]],["name/286",[269,27.064]],["parent/286",[]],["name/287",[149,44.741]],["parent/287",[269,2.681]],["name/288",[270,53.214]],["parent/288",[269,2.681]],["name/289",[271,53.214]],["parent/289",[269,2.681]],["name/290",[272,53.214]],["parent/290",[269,2.681]],["name/291",[273,53.214]],["parent/291",[269,2.681]],["name/292",[274,53.214]],["parent/292",[269,2.681]],["name/293",[275,53.214]],["parent/293",[269,2.681]],["name/294",[276,53.214]],["parent/294",[269,2.681]],["name/295",[277,53.214]],["parent/295",[269,2.681]],["name/296",[278,53.214]],["parent/296",[269,2.681]],["name/297",[279,53.214]],["parent/297",[269,2.681]],["name/298",[280,53.214]],["parent/298",[269,2.681]],["name/299",[281,53.214]],["parent/299",[269,2.681]],["name/300",[282,53.214]],["parent/300",[269,2.681]],["name/301",[283,53.214]],["parent/301",[269,2.681]],["name/302",[284,53.214]],["parent/302",[269,2.681]],["name/303",[285,53.214]],["parent/303",[269,2.681]],["name/304",[286,53.214]],["parent/304",[269,2.681]],["name/305",[287,53.214]],["parent/305",[269,2.681]]],"invertedIndex":[["addcrlpath",{"_index":7,"name":{"7":{}},"parent":{}}],["addcrlvalue",{"_index":9,"name":{"9":{}},"parent":{}}],["addenabledciphersuite",{"_index":17,"name":{"17":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":20,"name":{"20":{}},"parent":{}}],["addqueryparam",{"_index":168,"name":{"182":{}},"parent":{}}],["apply",{"_index":151,"name":{"165":{}},"parent":{}}],["as",{"_index":157,"name":{"171":{}},"parent":{}}],["basicauthentication",{"_index":164,"name":{"178":{}},"parent":{}}],["bearertokenauthentication",{"_index":165,"name":{"179":{}},"parent":{}}],["body",{"_index":190,"name":{"205":{}},"parent":{}}],["bodyasbuffer",{"_index":191,"name":{"206":{}},"parent":{}}],["bodyasjson",{"_index":196,"name":{"211":{}},"parent":{}}],["bodyasjsonarray",{"_index":195,"name":{"210":{}},"parent":{}}],["bodyasjsonobject",{"_index":194,"name":{"209":{}},"parent":{}}],["bodyasstring",{"_index":193,"name":{"208":{}},"parent":{}}],["close",{"_index":287,"name":{"305":{}},"parent":{}}],["constructor",{"_index":1,"name":{"1":{}},"parent":{}}],["contenttype",{"_index":262,"name":{"277":{}},"parent":{}}],["cookies",{"_index":189,"name":{"204":{}},"parent":{}}],["copy",{"_index":173,"name":{"187":{}},"parent":{}}],["create",{"_index":149,"name":{"163":{},"278":{},"287":{}},"parent":{}}],["createfullbody",{"_index":150,"name":{"164":{}},"parent":{}}],["default_converter",{"_index":148,"name":{"162":{}},"parent":{}}],["delete",{"_index":279,"name":{"297":{}},"parent":{}}],["deleteabs",{"_index":280,"name":{"298":{}},"parent":{}}],["errorconverter",{"_index":147,"name":{"161":{},"279":{}},"parent":{"162":{},"163":{},"164":{},"165":{},"166":{}}}],["expect",{"_index":171,"name":{"185":{}},"parent":{}}],["failure",{"_index":265,"name":{"282":{}},"parent":{}}],["followedredirects",{"_index":192,"name":{"207":{}},"parent":{}}],["followredirects",{"_index":170,"name":{"184":{}},"parent":{}}],["get",{"_index":273,"name":{"291":{}},"parent":{}}],["getabs",{"_index":274,"name":{"292":{}},"parent":{}}],["getalpnversions",{"_index":2,"name":{"2":{}},"parent":{}}],["getconnecttimeout",{"_index":4,"name":{"4":{}},"parent":{}}],["getcrlpaths",{"_index":6,"name":{"6":{}},"parent":{}}],["getcrlvalues",{"_index":8,"name":{"8":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":10,"name":{"10":{}},"parent":{}}],["getdefaulthost",{"_index":12,"name":{"12":{}},"parent":{}}],["getdefaultport",{"_index":14,"name":{"14":{}},"parent":{}}],["getenabledciphersuites",{"_index":16,"name":{"16":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":18,"name":{"18":{}},"parent":{}}],["getheader",{"_index":186,"name":{"201":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":27,"name":{"27":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":29,"name":{"29":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":31,"name":{"31":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":33,"name":{"33":{}},"parent":{}}],["getidletimeout",{"_index":35,"name":{"35":{}},"parent":{}}],["getidletimeoutunit",{"_index":37,"name":{"37":{}},"parent":{}}],["getinitialsettings",{"_index":39,"name":{"39":{}},"parent":{}}],["getjdksslengineoptions",{"_index":41,"name":{"41":{}},"parent":{}}],["getkeepalivetimeout",{"_index":45,"name":{"45":{}},"parent":{}}],["getkeystoreoptions",{"_index":47,"name":{"47":{}},"parent":{}}],["getlocaladdress",{"_index":49,"name":{"49":{}},"parent":{}}],["getlogactivity",{"_index":51,"name":{"51":{}},"parent":{}}],["getmaxchunksize",{"_index":53,"name":{"53":{}},"parent":{}}],["getmaxheadersize",{"_index":55,"name":{"55":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":57,"name":{"57":{}},"parent":{}}],["getmaxpoolsize",{"_index":59,"name":{"59":{}},"parent":{}}],["getmaxredirects",{"_index":61,"name":{"61":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":63,"name":{"63":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":65,"name":{"65":{},"69":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":67,"name":{"67":{},"71":{}},"parent":{}}],["getmetricsname",{"_index":69,"name":{"73":{}},"parent":{}}],["getopensslengineoptions",{"_index":71,"name":{"75":{}},"parent":{}}],["getpemkeycertoptions",{"_index":73,"name":{"77":{}},"parent":{}}],["getpemtrustoptions",{"_index":75,"name":{"79":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":77,"name":{"81":{}},"parent":{}}],["getpfxtrustoptions",{"_index":79,"name":{"83":{}},"parent":{}}],["getpipelininglimit",{"_index":83,"name":{"87":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":85,"name":{"89":{}},"parent":{}}],["getprotocolversion",{"_index":87,"name":{"91":{}},"parent":{}}],["getproxyoptions",{"_index":89,"name":{"93":{}},"parent":{}}],["getreceivebuffersize",{"_index":91,"name":{"95":{}},"parent":{}}],["getsendbuffersize",{"_index":97,"name":{"101":{}},"parent":{}}],["getsolinger",{"_index":101,"name":{"105":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":105,"name":{"109":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":107,"name":{"111":{}},"parent":{}}],["gettrafficclass",{"_index":119,"name":{"123":{}},"parent":{}}],["gettrailer",{"_index":188,"name":{"203":{}},"parent":{}}],["gettruststoreoptions",{"_index":123,"name":{"127":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":128,"name":{"133":{},"135":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":130,"name":{"137":{},"138":{}},"parent":{}}],["getuseragent",{"_index":135,"name":{"143":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":141,"name":{"149":{},"155":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":143,"name":{"151":{},"157":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":145,"name":{"153":{},"159":{}},"parent":{}}],["head",{"_index":283,"name":{"301":{}},"parent":{}}],["headabs",{"_index":284,"name":{"302":{}},"parent":{}}],["headers",{"_index":163,"name":{"177":{},"200":{}},"parent":{}}],["host",{"_index":158,"name":{"172":{}},"parent":{}}],["httprequest",{"_index":153,"name":{"167":{}},"parent":{"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{}}}],["httpresponse",{"_index":182,"name":{"196":{}},"parent":{"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{}}}],["isfollowredirects",{"_index":21,"name":{"21":{}},"parent":{}}],["isforcesni",{"_index":23,"name":{"23":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":25,"name":{"25":{}},"parent":{}}],["iskeepalive",{"_index":43,"name":{"43":{}},"parent":{}}],["ispipelining",{"_index":81,"name":{"85":{}},"parent":{}}],["isreuseaddress",{"_index":93,"name":{"97":{}},"parent":{}}],["isreuseport",{"_index":95,"name":{"99":{}},"parent":{}}],["issendunmaskedframes",{"_index":99,"name":{"103":{}},"parent":{}}],["isssl",{"_index":103,"name":{"107":{}},"parent":{}}],["istcpcork",{"_index":109,"name":{"113":{}},"parent":{}}],["istcpfastopen",{"_index":111,"name":{"115":{}},"parent":{}}],["istcpkeepalive",{"_index":113,"name":{"117":{}},"parent":{}}],["istcpnodelay",{"_index":115,"name":{"119":{}},"parent":{}}],["istcpquickack",{"_index":117,"name":{"121":{}},"parent":{}}],["istrustall",{"_index":121,"name":{"125":{}},"parent":{}}],["istryusecompression",{"_index":125,"name":{"129":{}},"parent":{}}],["isusealpn",{"_index":131,"name":{"139":{}},"parent":{}}],["isusepooledbuffers",{"_index":133,"name":{"141":{}},"parent":{}}],["isuseragentenabled",{"_index":137,"name":{"145":{}},"parent":{}}],["isverifyhost",{"_index":139,"name":{"147":{}},"parent":{}}],["json",{"_index":260,"name":{"275":{}},"parent":{}}],["message",{"_index":267,"name":{"284":{}},"parent":{}}],["method",{"_index":154,"name":{"168":{}},"parent":{}}],["multipartmixed",{"_index":174,"name":{"188":{}},"parent":{}}],["patch",{"_index":281,"name":{"299":{}},"parent":{}}],["patchabs",{"_index":282,"name":{"300":{}},"parent":{}}],["port",{"_index":156,"name":{"170":{}},"parent":{}}],["post",{"_index":275,"name":{"293":{}},"parent":{}}],["postabs",{"_index":276,"name":{"294":{}},"parent":{}}],["put",{"_index":277,"name":{"295":{}},"parent":{}}],["putabs",{"_index":278,"name":{"296":{}},"parent":{}}],["putheader",{"_index":162,"name":{"176":{}},"parent":{}}],["putheaders",{"_index":161,"name":{"175":{}},"parent":{}}],["queryparams",{"_index":172,"name":{"186":{}},"parent":{}}],["raw",{"_index":285,"name":{"303":{}},"parent":{}}],["rawabs",{"_index":286,"name":{"304":{}},"parent":{}}],["rawmethod",{"_index":155,"name":{"169":{}},"parent":{}}],["request",{"_index":271,"name":{"289":{}},"parent":{}}],["requestabs",{"_index":272,"name":{"290":{}},"parent":{}}],["requiresbody",{"_index":152,"name":{"166":{}},"parent":{}}],["response",{"_index":268,"name":{"285":{}},"parent":{}}],["responsepredicate",{"_index":197,"name":{"212":{}},"parent":{"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{},"245":{},"246":{},"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{},"258":{},"259":{},"260":{},"261":{},"262":{},"263":{},"264":{},"265":{},"266":{},"267":{},"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{}}}],["responsepredicateresult",{"_index":263,"name":{"280":{}},"parent":{"281":{},"282":{},"283":{},"284":{},"285":{}}}],["sc_accepted",{"_index":206,"name":{"221":{}},"parent":{}}],["sc_bad_gateway",{"_index":252,"name":{"267":{}},"parent":{}}],["sc_bad_request",{"_index":222,"name":{"237":{}},"parent":{}}],["sc_client_errors",{"_index":221,"name":{"236":{}},"parent":{}}],["sc_conflict",{"_index":231,"name":{"246":{}},"parent":{}}],["sc_continue",{"_index":199,"name":{"214":{}},"parent":{}}],["sc_created",{"_index":205,"name":{"220":{}},"parent":{}}],["sc_early_hints",{"_index":202,"name":{"217":{}},"parent":{}}],["sc_expectation_failed",{"_index":239,"name":{"254":{}},"parent":{}}],["sc_failed_dependency",{"_index":243,"name":{"258":{}},"parent":{}}],["sc_forbidden",{"_index":225,"name":{"240":{}},"parent":{}}],["sc_found",{"_index":215,"name":{"230":{}},"parent":{}}],["sc_gateway_timeout",{"_index":254,"name":{"269":{}},"parent":{}}],["sc_gone",{"_index":232,"name":{"247":{}},"parent":{}}],["sc_http_version_not_supported",{"_index":255,"name":{"270":{}},"parent":{}}],["sc_informational_response",{"_index":198,"name":{"213":{}},"parent":{}}],["sc_insufficient_storage",{"_index":257,"name":{"272":{}},"parent":{}}],["sc_internal_server_error",{"_index":250,"name":{"265":{}},"parent":{}}],["sc_length_required",{"_index":233,"name":{"248":{}},"parent":{}}],["sc_locked",{"_index":242,"name":{"257":{}},"parent":{}}],["sc_method_not_allowed",{"_index":227,"name":{"242":{}},"parent":{}}],["sc_misdirected_request",{"_index":240,"name":{"255":{}},"parent":{}}],["sc_moved_permanently",{"_index":214,"name":{"229":{}},"parent":{}}],["sc_multi_status",{"_index":211,"name":{"226":{}},"parent":{}}],["sc_multiple_choices",{"_index":213,"name":{"228":{}},"parent":{}}],["sc_network_authentication_required",{"_index":259,"name":{"274":{}},"parent":{}}],["sc_no_content",{"_index":208,"name":{"223":{}},"parent":{}}],["sc_non_authoritative_information",{"_index":207,"name":{"222":{}},"parent":{}}],["sc_not_acceptable",{"_index":228,"name":{"243":{}},"parent":{}}],["sc_not_extended",{"_index":258,"name":{"273":{}},"parent":{}}],["sc_not_found",{"_index":226,"name":{"241":{}},"parent":{}}],["sc_not_implemented",{"_index":251,"name":{"266":{}},"parent":{}}],["sc_not_modified",{"_index":217,"name":{"232":{}},"parent":{}}],["sc_ok",{"_index":204,"name":{"219":{}},"parent":{}}],["sc_partial_content",{"_index":210,"name":{"225":{}},"parent":{}}],["sc_payment_required",{"_index":224,"name":{"239":{}},"parent":{}}],["sc_permanent_redirect",{"_index":220,"name":{"235":{}},"parent":{}}],["sc_precondition_failed",{"_index":234,"name":{"249":{}},"parent":{}}],["sc_precondition_required",{"_index":246,"name":{"261":{}},"parent":{}}],["sc_processing",{"_index":201,"name":{"216":{}},"parent":{}}],["sc_proxy_authentication_required",{"_index":229,"name":{"244":{}},"parent":{}}],["sc_redirection",{"_index":212,"name":{"227":{}},"parent":{}}],["sc_request_entity_too_large",{"_index":235,"name":{"250":{}},"parent":{}}],["sc_request_header_fields_too_large",{"_index":248,"name":{"263":{}},"parent":{}}],["sc_request_timeout",{"_index":230,"name":{"245":{}},"parent":{}}],["sc_request_uri_too_long",{"_index":236,"name":{"251":{}},"parent":{}}],["sc_requested_range_not_satisfiable",{"_index":238,"name":{"253":{}},"parent":{}}],["sc_reset_content",{"_index":209,"name":{"224":{}},"parent":{}}],["sc_see_other",{"_index":216,"name":{"231":{}},"parent":{}}],["sc_server_errors",{"_index":249,"name":{"264":{}},"parent":{}}],["sc_service_unavailable",{"_index":253,"name":{"268":{}},"parent":{}}],["sc_success",{"_index":203,"name":{"218":{}},"parent":{}}],["sc_switching_protocols",{"_index":200,"name":{"215":{}},"parent":{}}],["sc_temporary_redirect",{"_index":219,"name":{"234":{}},"parent":{}}],["sc_too_many_requests",{"_index":247,"name":{"262":{}},"parent":{}}],["sc_unauthorized",{"_index":223,"name":{"238":{}},"parent":{}}],["sc_unordered_collection",{"_index":244,"name":{"259":{}},"parent":{}}],["sc_unprocessable_entity",{"_index":241,"name":{"256":{}},"parent":{}}],["sc_unsupported_media_type",{"_index":237,"name":{"252":{}},"parent":{}}],["sc_upgrade_required",{"_index":245,"name":{"260":{}},"parent":{}}],["sc_use_proxy",{"_index":218,"name":{"233":{}},"parent":{}}],["sc_variant_also_negotiates",{"_index":256,"name":{"271":{}},"parent":{}}],["send",{"_index":181,"name":{"195":{}},"parent":{}}],["sendbuffer",{"_index":176,"name":{"190":{}},"parent":{}}],["sendform",{"_index":179,"name":{"193":{}},"parent":{}}],["sendjson",{"_index":178,"name":{"192":{}},"parent":{}}],["sendjsonobject",{"_index":177,"name":{"191":{}},"parent":{}}],["sendmultipartform",{"_index":180,"name":{"194":{}},"parent":{}}],["sendstream",{"_index":175,"name":{"189":{}},"parent":{}}],["setalpnversions",{"_index":3,"name":{"3":{}},"parent":{}}],["setconnecttimeout",{"_index":5,"name":{"5":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":11,"name":{"11":{}},"parent":{}}],["setdefaulthost",{"_index":13,"name":{"13":{}},"parent":{}}],["setdefaultport",{"_index":15,"name":{"15":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":19,"name":{"19":{}},"parent":{}}],["setfollowredirects",{"_index":22,"name":{"22":{}},"parent":{}}],["setforcesni",{"_index":24,"name":{"24":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":26,"name":{"26":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":28,"name":{"28":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":30,"name":{"30":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":32,"name":{"32":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":34,"name":{"34":{}},"parent":{}}],["setidletimeout",{"_index":36,"name":{"36":{}},"parent":{}}],["setidletimeoutunit",{"_index":38,"name":{"38":{}},"parent":{}}],["setinitialsettings",{"_index":40,"name":{"40":{}},"parent":{}}],["setjdksslengineoptions",{"_index":42,"name":{"42":{}},"parent":{}}],["setkeepalive",{"_index":44,"name":{"44":{}},"parent":{}}],["setkeepalivetimeout",{"_index":46,"name":{"46":{}},"parent":{}}],["setkeystoreoptions",{"_index":48,"name":{"48":{}},"parent":{}}],["setlocaladdress",{"_index":50,"name":{"50":{}},"parent":{}}],["setlogactivity",{"_index":52,"name":{"52":{}},"parent":{}}],["setmaxchunksize",{"_index":54,"name":{"54":{}},"parent":{}}],["setmaxheadersize",{"_index":56,"name":{"56":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":58,"name":{"58":{}},"parent":{}}],["setmaxpoolsize",{"_index":60,"name":{"60":{}},"parent":{}}],["setmaxredirects",{"_index":62,"name":{"62":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":64,"name":{"64":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":66,"name":{"66":{},"70":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":68,"name":{"68":{},"72":{}},"parent":{}}],["setmetricsname",{"_index":70,"name":{"74":{}},"parent":{}}],["setopensslengineoptions",{"_index":72,"name":{"76":{}},"parent":{}}],["setpemkeycertoptions",{"_index":74,"name":{"78":{}},"parent":{}}],["setpemtrustoptions",{"_index":76,"name":{"80":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":78,"name":{"82":{}},"parent":{}}],["setpfxtrustoptions",{"_index":80,"name":{"84":{}},"parent":{}}],["setpipelining",{"_index":82,"name":{"86":{}},"parent":{}}],["setpipelininglimit",{"_index":84,"name":{"88":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":86,"name":{"90":{}},"parent":{}}],["setprotocolversion",{"_index":88,"name":{"92":{}},"parent":{}}],["setproxyoptions",{"_index":90,"name":{"94":{}},"parent":{}}],["setqueryparam",{"_index":169,"name":{"183":{}},"parent":{}}],["setreceivebuffersize",{"_index":92,"name":{"96":{}},"parent":{}}],["setreuseaddress",{"_index":94,"name":{"98":{}},"parent":{}}],["setreuseport",{"_index":96,"name":{"100":{}},"parent":{}}],["setsendbuffersize",{"_index":98,"name":{"102":{}},"parent":{}}],["setsendunmaskedframes",{"_index":100,"name":{"104":{}},"parent":{}}],["setsolinger",{"_index":102,"name":{"106":{}},"parent":{}}],["setssl",{"_index":104,"name":{"108":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":106,"name":{"110":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":108,"name":{"112":{}},"parent":{}}],["settcpcork",{"_index":110,"name":{"114":{}},"parent":{}}],["settcpfastopen",{"_index":112,"name":{"116":{}},"parent":{}}],["settcpkeepalive",{"_index":114,"name":{"118":{}},"parent":{}}],["settcpnodelay",{"_index":116,"name":{"120":{}},"parent":{}}],["settcpquickack",{"_index":118,"name":{"122":{}},"parent":{}}],["settrafficclass",{"_index":120,"name":{"124":{}},"parent":{}}],["settrustall",{"_index":122,"name":{"126":{}},"parent":{}}],["settruststoreoptions",{"_index":124,"name":{"128":{}},"parent":{}}],["settryusecompression",{"_index":126,"name":{"130":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":127,"name":{"131":{},"132":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":129,"name":{"134":{},"136":{}},"parent":{}}],["setusealpn",{"_index":132,"name":{"140":{}},"parent":{}}],["setusepooledbuffers",{"_index":134,"name":{"142":{}},"parent":{}}],["setuseragent",{"_index":136,"name":{"144":{}},"parent":{}}],["setuseragentenabled",{"_index":138,"name":{"146":{}},"parent":{}}],["setverifyhost",{"_index":140,"name":{"148":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":142,"name":{"150":{},"156":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":144,"name":{"152":{},"158":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":146,"name":{"154":{},"160":{}},"parent":{}}],["ssl",{"_index":166,"name":{"180":{}},"parent":{}}],["status",{"_index":261,"name":{"276":{}},"parent":{}}],["statuscode",{"_index":184,"name":{"198":{}},"parent":{}}],["statusmessage",{"_index":185,"name":{"199":{}},"parent":{}}],["succeeded",{"_index":266,"name":{"283":{}},"parent":{}}],["success",{"_index":264,"name":{"281":{}},"parent":{}}],["timeout",{"_index":167,"name":{"181":{}},"parent":{}}],["trailers",{"_index":187,"name":{"202":{}},"parent":{}}],["uri",{"_index":160,"name":{"174":{}},"parent":{}}],["version",{"_index":183,"name":{"197":{}},"parent":{}}],["virtualhost",{"_index":159,"name":{"173":{}},"parent":{}}],["webclient",{"_index":269,"name":{"286":{}},"parent":{"287":{},"288":{},"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{}}}],["webclientoptions",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{}}}],["wrap",{"_index":270,"name":{"288":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"128":"Class","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"WebClientOptions","url":"classes/webclientoptions.html","classes":"tsd-kind-class"},{"id":1,"kind":512,"name":"constructor","url":"classes/webclientoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"WebClientOptions"},{"id":2,"kind":2048,"name":"getAlpnVersions","url":"classes/webclientoptions.html#getalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":3,"kind":2048,"name":"setAlpnVersions","url":"classes/webclientoptions.html#setalpnversions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":4,"kind":2048,"name":"getConnectTimeout","url":"classes/webclientoptions.html#getconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":5,"kind":2048,"name":"setConnectTimeout","url":"classes/webclientoptions.html#setconnecttimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":6,"kind":2048,"name":"getCrlPaths","url":"classes/webclientoptions.html#getcrlpaths","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":7,"kind":2048,"name":"addCrlPath","url":"classes/webclientoptions.html#addcrlpath","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":8,"kind":2048,"name":"getCrlValues","url":"classes/webclientoptions.html#getcrlvalues","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":9,"kind":2048,"name":"addCrlValue","url":"classes/webclientoptions.html#addcrlvalue","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":10,"kind":2048,"name":"getDecoderInitialBufferSize","url":"classes/webclientoptions.html#getdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":11,"kind":2048,"name":"setDecoderInitialBufferSize","url":"classes/webclientoptions.html#setdecoderinitialbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":12,"kind":2048,"name":"getDefaultHost","url":"classes/webclientoptions.html#getdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":13,"kind":2048,"name":"setDefaultHost","url":"classes/webclientoptions.html#setdefaulthost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":14,"kind":2048,"name":"getDefaultPort","url":"classes/webclientoptions.html#getdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":15,"kind":2048,"name":"setDefaultPort","url":"classes/webclientoptions.html#setdefaultport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":16,"kind":2048,"name":"getEnabledCipherSuites","url":"classes/webclientoptions.html#getenabledciphersuites","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":17,"kind":2048,"name":"addEnabledCipherSuite","url":"classes/webclientoptions.html#addenabledciphersuite","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":18,"kind":2048,"name":"getEnabledSecureTransportProtocols","url":"classes/webclientoptions.html#getenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":19,"kind":2048,"name":"setEnabledSecureTransportProtocols","url":"classes/webclientoptions.html#setenabledsecuretransportprotocols","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":20,"kind":2048,"name":"addEnabledSecureTransportProtocol","url":"classes/webclientoptions.html#addenabledsecuretransportprotocol","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":21,"kind":2048,"name":"isFollowRedirects","url":"classes/webclientoptions.html#isfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":22,"kind":2048,"name":"setFollowRedirects","url":"classes/webclientoptions.html#setfollowredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":23,"kind":2048,"name":"isForceSni","url":"classes/webclientoptions.html#isforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":24,"kind":2048,"name":"setForceSni","url":"classes/webclientoptions.html#setforcesni","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":25,"kind":2048,"name":"isHttp2ClearTextUpgrade","url":"classes/webclientoptions.html#ishttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":26,"kind":2048,"name":"setHttp2ClearTextUpgrade","url":"classes/webclientoptions.html#sethttp2cleartextupgrade","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":27,"kind":2048,"name":"getHttp2ConnectionWindowSize","url":"classes/webclientoptions.html#gethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":28,"kind":2048,"name":"setHttp2ConnectionWindowSize","url":"classes/webclientoptions.html#sethttp2connectionwindowsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":29,"kind":2048,"name":"getHttp2KeepAliveTimeout","url":"classes/webclientoptions.html#gethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":30,"kind":2048,"name":"setHttp2KeepAliveTimeout","url":"classes/webclientoptions.html#sethttp2keepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":31,"kind":2048,"name":"getHttp2MaxPoolSize","url":"classes/webclientoptions.html#gethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":32,"kind":2048,"name":"setHttp2MaxPoolSize","url":"classes/webclientoptions.html#sethttp2maxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":33,"kind":2048,"name":"getHttp2MultiplexingLimit","url":"classes/webclientoptions.html#gethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":34,"kind":2048,"name":"setHttp2MultiplexingLimit","url":"classes/webclientoptions.html#sethttp2multiplexinglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":35,"kind":2048,"name":"getIdleTimeout","url":"classes/webclientoptions.html#getidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":36,"kind":2048,"name":"setIdleTimeout","url":"classes/webclientoptions.html#setidletimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":37,"kind":2048,"name":"getIdleTimeoutUnit","url":"classes/webclientoptions.html#getidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":38,"kind":2048,"name":"setIdleTimeoutUnit","url":"classes/webclientoptions.html#setidletimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":39,"kind":2048,"name":"getInitialSettings","url":"classes/webclientoptions.html#getinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":40,"kind":2048,"name":"setInitialSettings","url":"classes/webclientoptions.html#setinitialsettings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":41,"kind":2048,"name":"getJdkSslEngineOptions","url":"classes/webclientoptions.html#getjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":42,"kind":2048,"name":"setJdkSslEngineOptions","url":"classes/webclientoptions.html#setjdksslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":43,"kind":2048,"name":"isKeepAlive","url":"classes/webclientoptions.html#iskeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":44,"kind":2048,"name":"setKeepAlive","url":"classes/webclientoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":45,"kind":2048,"name":"getKeepAliveTimeout","url":"classes/webclientoptions.html#getkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":46,"kind":2048,"name":"setKeepAliveTimeout","url":"classes/webclientoptions.html#setkeepalivetimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":47,"kind":2048,"name":"getKeyStoreOptions","url":"classes/webclientoptions.html#getkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":48,"kind":2048,"name":"setKeyStoreOptions","url":"classes/webclientoptions.html#setkeystoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":49,"kind":2048,"name":"getLocalAddress","url":"classes/webclientoptions.html#getlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":50,"kind":2048,"name":"setLocalAddress","url":"classes/webclientoptions.html#setlocaladdress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":51,"kind":2048,"name":"getLogActivity","url":"classes/webclientoptions.html#getlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":52,"kind":2048,"name":"setLogActivity","url":"classes/webclientoptions.html#setlogactivity","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":53,"kind":2048,"name":"getMaxChunkSize","url":"classes/webclientoptions.html#getmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":54,"kind":2048,"name":"setMaxChunkSize","url":"classes/webclientoptions.html#setmaxchunksize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":55,"kind":2048,"name":"getMaxHeaderSize","url":"classes/webclientoptions.html#getmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":56,"kind":2048,"name":"setMaxHeaderSize","url":"classes/webclientoptions.html#setmaxheadersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":57,"kind":2048,"name":"getMaxInitialLineLength","url":"classes/webclientoptions.html#getmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":58,"kind":2048,"name":"setMaxInitialLineLength","url":"classes/webclientoptions.html#setmaxinitiallinelength","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":59,"kind":2048,"name":"getMaxPoolSize","url":"classes/webclientoptions.html#getmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":60,"kind":2048,"name":"setMaxPoolSize","url":"classes/webclientoptions.html#setmaxpoolsize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":61,"kind":2048,"name":"getMaxRedirects","url":"classes/webclientoptions.html#getmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":62,"kind":2048,"name":"setMaxRedirects","url":"classes/webclientoptions.html#setmaxredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":63,"kind":2048,"name":"getMaxWaitQueueSize","url":"classes/webclientoptions.html#getmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":64,"kind":2048,"name":"setMaxWaitQueueSize","url":"classes/webclientoptions.html#setmaxwaitqueuesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":65,"kind":2048,"name":"getMaxWebSocketFrameSize","url":"classes/webclientoptions.html#getmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":66,"kind":2048,"name":"setMaxWebSocketFrameSize","url":"classes/webclientoptions.html#setmaxwebsocketframesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":67,"kind":2048,"name":"getMaxWebSocketMessageSize","url":"classes/webclientoptions.html#getmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":68,"kind":2048,"name":"setMaxWebSocketMessageSize","url":"classes/webclientoptions.html#setmaxwebsocketmessagesize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":69,"kind":2048,"name":"getMaxWebsocketFrameSize","url":"classes/webclientoptions.html#getmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":70,"kind":2048,"name":"setMaxWebsocketFrameSize","url":"classes/webclientoptions.html#setmaxwebsocketframesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":71,"kind":2048,"name":"getMaxWebsocketMessageSize","url":"classes/webclientoptions.html#getmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":72,"kind":2048,"name":"setMaxWebsocketMessageSize","url":"classes/webclientoptions.html#setmaxwebsocketmessagesize-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":73,"kind":2048,"name":"getMetricsName","url":"classes/webclientoptions.html#getmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":74,"kind":2048,"name":"setMetricsName","url":"classes/webclientoptions.html#setmetricsname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":75,"kind":2048,"name":"getOpenSslEngineOptions","url":"classes/webclientoptions.html#getopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":76,"kind":2048,"name":"setOpenSslEngineOptions","url":"classes/webclientoptions.html#setopensslengineoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":77,"kind":2048,"name":"getPemKeyCertOptions","url":"classes/webclientoptions.html#getpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":78,"kind":2048,"name":"setPemKeyCertOptions","url":"classes/webclientoptions.html#setpemkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":79,"kind":2048,"name":"getPemTrustOptions","url":"classes/webclientoptions.html#getpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":80,"kind":2048,"name":"setPemTrustOptions","url":"classes/webclientoptions.html#setpemtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":81,"kind":2048,"name":"getPfxKeyCertOptions","url":"classes/webclientoptions.html#getpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":82,"kind":2048,"name":"setPfxKeyCertOptions","url":"classes/webclientoptions.html#setpfxkeycertoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":83,"kind":2048,"name":"getPfxTrustOptions","url":"classes/webclientoptions.html#getpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":84,"kind":2048,"name":"setPfxTrustOptions","url":"classes/webclientoptions.html#setpfxtrustoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":85,"kind":2048,"name":"isPipelining","url":"classes/webclientoptions.html#ispipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":86,"kind":2048,"name":"setPipelining","url":"classes/webclientoptions.html#setpipelining","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":87,"kind":2048,"name":"getPipeliningLimit","url":"classes/webclientoptions.html#getpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":88,"kind":2048,"name":"setPipeliningLimit","url":"classes/webclientoptions.html#setpipelininglimit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":89,"kind":2048,"name":"getPoolCleanerPeriod","url":"classes/webclientoptions.html#getpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":90,"kind":2048,"name":"setPoolCleanerPeriod","url":"classes/webclientoptions.html#setpoolcleanerperiod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":91,"kind":2048,"name":"getProtocolVersion","url":"classes/webclientoptions.html#getprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":92,"kind":2048,"name":"setProtocolVersion","url":"classes/webclientoptions.html#setprotocolversion","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":93,"kind":2048,"name":"getProxyOptions","url":"classes/webclientoptions.html#getproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":94,"kind":2048,"name":"setProxyOptions","url":"classes/webclientoptions.html#setproxyoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":95,"kind":2048,"name":"getReceiveBufferSize","url":"classes/webclientoptions.html#getreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":96,"kind":2048,"name":"setReceiveBufferSize","url":"classes/webclientoptions.html#setreceivebuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":97,"kind":2048,"name":"isReuseAddress","url":"classes/webclientoptions.html#isreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":98,"kind":2048,"name":"setReuseAddress","url":"classes/webclientoptions.html#setreuseaddress","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":99,"kind":2048,"name":"isReusePort","url":"classes/webclientoptions.html#isreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":100,"kind":2048,"name":"setReusePort","url":"classes/webclientoptions.html#setreuseport","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":101,"kind":2048,"name":"getSendBufferSize","url":"classes/webclientoptions.html#getsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":102,"kind":2048,"name":"setSendBufferSize","url":"classes/webclientoptions.html#setsendbuffersize","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":103,"kind":2048,"name":"isSendUnmaskedFrames","url":"classes/webclientoptions.html#issendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":104,"kind":2048,"name":"setSendUnmaskedFrames","url":"classes/webclientoptions.html#setsendunmaskedframes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":105,"kind":2048,"name":"getSoLinger","url":"classes/webclientoptions.html#getsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":106,"kind":2048,"name":"setSoLinger","url":"classes/webclientoptions.html#setsolinger","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":107,"kind":2048,"name":"isSsl","url":"classes/webclientoptions.html#isssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":108,"kind":2048,"name":"setSsl","url":"classes/webclientoptions.html#setssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":109,"kind":2048,"name":"getSslHandshakeTimeout","url":"classes/webclientoptions.html#getsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":110,"kind":2048,"name":"setSslHandshakeTimeout","url":"classes/webclientoptions.html#setsslhandshaketimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":111,"kind":2048,"name":"getSslHandshakeTimeoutUnit","url":"classes/webclientoptions.html#getsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":112,"kind":2048,"name":"setSslHandshakeTimeoutUnit","url":"classes/webclientoptions.html#setsslhandshaketimeoutunit","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":113,"kind":2048,"name":"isTcpCork","url":"classes/webclientoptions.html#istcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":114,"kind":2048,"name":"setTcpCork","url":"classes/webclientoptions.html#settcpcork","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":115,"kind":2048,"name":"isTcpFastOpen","url":"classes/webclientoptions.html#istcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":116,"kind":2048,"name":"setTcpFastOpen","url":"classes/webclientoptions.html#settcpfastopen","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":117,"kind":2048,"name":"isTcpKeepAlive","url":"classes/webclientoptions.html#istcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":118,"kind":2048,"name":"setTcpKeepAlive","url":"classes/webclientoptions.html#settcpkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":119,"kind":2048,"name":"isTcpNoDelay","url":"classes/webclientoptions.html#istcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":120,"kind":2048,"name":"setTcpNoDelay","url":"classes/webclientoptions.html#settcpnodelay","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":121,"kind":2048,"name":"isTcpQuickAck","url":"classes/webclientoptions.html#istcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":122,"kind":2048,"name":"setTcpQuickAck","url":"classes/webclientoptions.html#settcpquickack","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":123,"kind":2048,"name":"getTrafficClass","url":"classes/webclientoptions.html#gettrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":124,"kind":2048,"name":"setTrafficClass","url":"classes/webclientoptions.html#settrafficclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":125,"kind":2048,"name":"isTrustAll","url":"classes/webclientoptions.html#istrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":126,"kind":2048,"name":"setTrustAll","url":"classes/webclientoptions.html#settrustall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":127,"kind":2048,"name":"getTrustStoreOptions","url":"classes/webclientoptions.html#gettruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":128,"kind":2048,"name":"setTrustStoreOptions","url":"classes/webclientoptions.html#settruststoreoptions","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":129,"kind":2048,"name":"isTryUseCompression","url":"classes/webclientoptions.html#istryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":130,"kind":2048,"name":"setTryUseCompression","url":"classes/webclientoptions.html#settryusecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":131,"kind":2048,"name":"setTryUsePerFrameWebSocketCompression","url":"classes/webclientoptions.html#settryuseperframewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":132,"kind":2048,"name":"setTryUsePerFrameWebsocketCompression","url":"classes/webclientoptions.html#settryuseperframewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":133,"kind":2048,"name":"getTryUsePerMessageWebSocketCompression","url":"classes/webclientoptions.html#gettryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":134,"kind":2048,"name":"setTryUsePerMessageWebSocketCompression","url":"classes/webclientoptions.html#settryusepermessagewebsocketcompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":135,"kind":2048,"name":"getTryUsePerMessageWebsocketCompression","url":"classes/webclientoptions.html#gettryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":136,"kind":2048,"name":"setTryUsePerMessageWebsocketCompression","url":"classes/webclientoptions.html#settryusepermessagewebsocketcompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":137,"kind":2048,"name":"getTryWebSocketDeflateFrameCompression","url":"classes/webclientoptions.html#gettrywebsocketdeflateframecompression","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":138,"kind":2048,"name":"getTryWebsocketDeflateFrameCompression","url":"classes/webclientoptions.html#gettrywebsocketdeflateframecompression-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":139,"kind":2048,"name":"isUseAlpn","url":"classes/webclientoptions.html#isusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":140,"kind":2048,"name":"setUseAlpn","url":"classes/webclientoptions.html#setusealpn","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":141,"kind":2048,"name":"isUsePooledBuffers","url":"classes/webclientoptions.html#isusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":142,"kind":2048,"name":"setUsePooledBuffers","url":"classes/webclientoptions.html#setusepooledbuffers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":143,"kind":2048,"name":"getUserAgent","url":"classes/webclientoptions.html#getuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":144,"kind":2048,"name":"setUserAgent","url":"classes/webclientoptions.html#setuseragent","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":145,"kind":2048,"name":"isUserAgentEnabled","url":"classes/webclientoptions.html#isuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":146,"kind":2048,"name":"setUserAgentEnabled","url":"classes/webclientoptions.html#setuseragentenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":147,"kind":2048,"name":"isVerifyHost","url":"classes/webclientoptions.html#isverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":148,"kind":2048,"name":"setVerifyHost","url":"classes/webclientoptions.html#setverifyhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":149,"kind":2048,"name":"getWebSocketClosingTimeout","url":"classes/webclientoptions.html#getwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":150,"kind":2048,"name":"setWebSocketClosingTimeout","url":"classes/webclientoptions.html#setwebsocketclosingtimeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":151,"kind":2048,"name":"getWebSocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":152,"kind":2048,"name":"setWebSocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionallowclientnocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":153,"kind":2048,"name":"getWebSocketCompressionLevel","url":"classes/webclientoptions.html#getwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":154,"kind":2048,"name":"setWebSocketCompressionLevel","url":"classes/webclientoptions.html#setwebsocketcompressionlevel","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":155,"kind":2048,"name":"getWebSocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":156,"kind":2048,"name":"setWebSocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionrequestservernocontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":157,"kind":2048,"name":"getWebsocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":158,"kind":2048,"name":"setWebsocketCompressionAllowClientNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionallowclientnocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":159,"kind":2048,"name":"getWebsocketCompressionLevel","url":"classes/webclientoptions.html#getwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":160,"kind":2048,"name":"setWebsocketCompressionLevel","url":"classes/webclientoptions.html#setwebsocketcompressionlevel-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":161,"kind":2048,"name":"getWebsocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#getwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":162,"kind":2048,"name":"setWebsocketCompressionRequestServerNoContext","url":"classes/webclientoptions.html#setwebsocketcompressionrequestservernocontext-1","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClientOptions"},{"id":163,"kind":128,"name":"ErrorConverter","url":"classes/errorconverter.html","classes":"tsd-kind-class"},{"id":164,"kind":1024,"name":"DEFAULT_CONVERTER","url":"classes/errorconverter.html#default_converter","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ErrorConverter"},{"id":165,"kind":2048,"name":"create","url":"classes/errorconverter.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ErrorConverter"},{"id":166,"kind":2048,"name":"createFullBody","url":"classes/errorconverter.html#createfullbody","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ErrorConverter"},{"id":167,"kind":2048,"name":"apply","url":"classes/errorconverter.html#apply","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ErrorConverter"},{"id":168,"kind":2048,"name":"requiresBody","url":"classes/errorconverter.html#requiresbody","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ErrorConverter"},{"id":169,"kind":128,"name":"HttpRequest","url":"classes/httprequest.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":170,"kind":2048,"name":"method","url":"classes/httprequest.html#method","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":171,"kind":2048,"name":"rawMethod","url":"classes/httprequest.html#rawmethod","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":172,"kind":2048,"name":"port","url":"classes/httprequest.html#port","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":173,"kind":2048,"name":"as","url":"classes/httprequest.html#as","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"HttpRequest"},{"id":174,"kind":2048,"name":"host","url":"classes/httprequest.html#host","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":175,"kind":2048,"name":"virtualHost","url":"classes/httprequest.html#virtualhost","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":176,"kind":2048,"name":"uri","url":"classes/httprequest.html#uri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":177,"kind":2048,"name":"putHeaders","url":"classes/httprequest.html#putheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":178,"kind":2048,"name":"putHeader","url":"classes/httprequest.html#putheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":179,"kind":2048,"name":"headers","url":"classes/httprequest.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":180,"kind":2048,"name":"basicAuthentication","url":"classes/httprequest.html#basicauthentication","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":181,"kind":2048,"name":"bearerTokenAuthentication","url":"classes/httprequest.html#bearertokenauthentication","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":182,"kind":2048,"name":"ssl","url":"classes/httprequest.html#ssl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":183,"kind":2048,"name":"timeout","url":"classes/httprequest.html#timeout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":184,"kind":2048,"name":"addQueryParam","url":"classes/httprequest.html#addqueryparam","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":185,"kind":2048,"name":"setQueryParam","url":"classes/httprequest.html#setqueryparam","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":186,"kind":2048,"name":"followRedirects","url":"classes/httprequest.html#followredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":187,"kind":2048,"name":"expect","url":"classes/httprequest.html#expect","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":188,"kind":2048,"name":"queryParams","url":"classes/httprequest.html#queryparams","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":189,"kind":2048,"name":"copy","url":"classes/httprequest.html#copy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":190,"kind":2048,"name":"multipartMixed","url":"classes/httprequest.html#multipartmixed","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":191,"kind":2048,"name":"sendStream","url":"classes/httprequest.html#sendstream","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":192,"kind":2048,"name":"sendBuffer","url":"classes/httprequest.html#sendbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":193,"kind":2048,"name":"sendJsonObject","url":"classes/httprequest.html#sendjsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":194,"kind":2048,"name":"sendJson","url":"classes/httprequest.html#sendjson","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":195,"kind":2048,"name":"sendForm","url":"classes/httprequest.html#sendform","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":196,"kind":2048,"name":"sendMultipartForm","url":"classes/httprequest.html#sendmultipartform","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":197,"kind":2048,"name":"send","url":"classes/httprequest.html#send","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpRequest"},{"id":198,"kind":128,"name":"HttpResponse","url":"classes/httpresponse.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":199,"kind":2048,"name":"version","url":"classes/httpresponse.html#version","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":200,"kind":2048,"name":"statusCode","url":"classes/httpresponse.html#statuscode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":201,"kind":2048,"name":"statusMessage","url":"classes/httpresponse.html#statusmessage","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":202,"kind":2048,"name":"headers","url":"classes/httpresponse.html#headers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":203,"kind":2048,"name":"getHeader","url":"classes/httpresponse.html#getheader","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":204,"kind":2048,"name":"trailers","url":"classes/httpresponse.html#trailers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":205,"kind":2048,"name":"getTrailer","url":"classes/httpresponse.html#gettrailer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":206,"kind":2048,"name":"cookies","url":"classes/httpresponse.html#cookies","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":207,"kind":2048,"name":"body","url":"classes/httpresponse.html#body","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":208,"kind":2048,"name":"bodyAsBuffer","url":"classes/httpresponse.html#bodyasbuffer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":209,"kind":2048,"name":"followedRedirects","url":"classes/httpresponse.html#followedredirects","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":210,"kind":2048,"name":"bodyAsString","url":"classes/httpresponse.html#bodyasstring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":211,"kind":2048,"name":"bodyAsJsonObject","url":"classes/httpresponse.html#bodyasjsonobject","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":212,"kind":2048,"name":"bodyAsJsonArray","url":"classes/httpresponse.html#bodyasjsonarray","classes":"tsd-kind-method tsd-parent-kind-class","parent":"HttpResponse"},{"id":213,"kind":2048,"name":"bodyAsJson","url":"classes/httpresponse.html#bodyasjson","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter","parent":"HttpResponse"},{"id":214,"kind":128,"name":"ResponsePredicate","url":"classes/responsepredicate.html","classes":"tsd-kind-class"},{"id":215,"kind":1024,"name":"SC_INFORMATIONAL_RESPONSE","url":"classes/responsepredicate.html#sc_informational_response","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":216,"kind":1024,"name":"SC_CONTINUE","url":"classes/responsepredicate.html#sc_continue","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":217,"kind":1024,"name":"SC_SWITCHING_PROTOCOLS","url":"classes/responsepredicate.html#sc_switching_protocols","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":218,"kind":1024,"name":"SC_PROCESSING","url":"classes/responsepredicate.html#sc_processing","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":219,"kind":1024,"name":"SC_EARLY_HINTS","url":"classes/responsepredicate.html#sc_early_hints","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":220,"kind":1024,"name":"SC_SUCCESS","url":"classes/responsepredicate.html#sc_success","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":221,"kind":1024,"name":"SC_OK","url":"classes/responsepredicate.html#sc_ok","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":222,"kind":1024,"name":"SC_CREATED","url":"classes/responsepredicate.html#sc_created","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":223,"kind":1024,"name":"SC_ACCEPTED","url":"classes/responsepredicate.html#sc_accepted","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":224,"kind":1024,"name":"SC_NON_AUTHORITATIVE_INFORMATION","url":"classes/responsepredicate.html#sc_non_authoritative_information","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":225,"kind":1024,"name":"SC_NO_CONTENT","url":"classes/responsepredicate.html#sc_no_content","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":226,"kind":1024,"name":"SC_RESET_CONTENT","url":"classes/responsepredicate.html#sc_reset_content","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":227,"kind":1024,"name":"SC_PARTIAL_CONTENT","url":"classes/responsepredicate.html#sc_partial_content","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":228,"kind":1024,"name":"SC_MULTI_STATUS","url":"classes/responsepredicate.html#sc_multi_status","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":229,"kind":1024,"name":"SC_REDIRECTION","url":"classes/responsepredicate.html#sc_redirection","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":230,"kind":1024,"name":"SC_MULTIPLE_CHOICES","url":"classes/responsepredicate.html#sc_multiple_choices","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":231,"kind":1024,"name":"SC_MOVED_PERMANENTLY","url":"classes/responsepredicate.html#sc_moved_permanently","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":232,"kind":1024,"name":"SC_FOUND","url":"classes/responsepredicate.html#sc_found","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":233,"kind":1024,"name":"SC_SEE_OTHER","url":"classes/responsepredicate.html#sc_see_other","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":234,"kind":1024,"name":"SC_NOT_MODIFIED","url":"classes/responsepredicate.html#sc_not_modified","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":235,"kind":1024,"name":"SC_USE_PROXY","url":"classes/responsepredicate.html#sc_use_proxy","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":236,"kind":1024,"name":"SC_TEMPORARY_REDIRECT","url":"classes/responsepredicate.html#sc_temporary_redirect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":237,"kind":1024,"name":"SC_PERMANENT_REDIRECT","url":"classes/responsepredicate.html#sc_permanent_redirect","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":238,"kind":1024,"name":"SC_CLIENT_ERRORS","url":"classes/responsepredicate.html#sc_client_errors","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":239,"kind":1024,"name":"SC_BAD_REQUEST","url":"classes/responsepredicate.html#sc_bad_request","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":240,"kind":1024,"name":"SC_UNAUTHORIZED","url":"classes/responsepredicate.html#sc_unauthorized","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":241,"kind":1024,"name":"SC_PAYMENT_REQUIRED","url":"classes/responsepredicate.html#sc_payment_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":242,"kind":1024,"name":"SC_FORBIDDEN","url":"classes/responsepredicate.html#sc_forbidden","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":243,"kind":1024,"name":"SC_NOT_FOUND","url":"classes/responsepredicate.html#sc_not_found","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":244,"kind":1024,"name":"SC_METHOD_NOT_ALLOWED","url":"classes/responsepredicate.html#sc_method_not_allowed","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":245,"kind":1024,"name":"SC_NOT_ACCEPTABLE","url":"classes/responsepredicate.html#sc_not_acceptable","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":246,"kind":1024,"name":"SC_PROXY_AUTHENTICATION_REQUIRED","url":"classes/responsepredicate.html#sc_proxy_authentication_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":247,"kind":1024,"name":"SC_REQUEST_TIMEOUT","url":"classes/responsepredicate.html#sc_request_timeout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":248,"kind":1024,"name":"SC_CONFLICT","url":"classes/responsepredicate.html#sc_conflict","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":249,"kind":1024,"name":"SC_GONE","url":"classes/responsepredicate.html#sc_gone","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":250,"kind":1024,"name":"SC_LENGTH_REQUIRED","url":"classes/responsepredicate.html#sc_length_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":251,"kind":1024,"name":"SC_PRECONDITION_FAILED","url":"classes/responsepredicate.html#sc_precondition_failed","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":252,"kind":1024,"name":"SC_REQUEST_ENTITY_TOO_LARGE","url":"classes/responsepredicate.html#sc_request_entity_too_large","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":253,"kind":1024,"name":"SC_REQUEST_URI_TOO_LONG","url":"classes/responsepredicate.html#sc_request_uri_too_long","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":254,"kind":1024,"name":"SC_UNSUPPORTED_MEDIA_TYPE","url":"classes/responsepredicate.html#sc_unsupported_media_type","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":255,"kind":1024,"name":"SC_REQUESTED_RANGE_NOT_SATISFIABLE","url":"classes/responsepredicate.html#sc_requested_range_not_satisfiable","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":256,"kind":1024,"name":"SC_EXPECTATION_FAILED","url":"classes/responsepredicate.html#sc_expectation_failed","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":257,"kind":1024,"name":"SC_MISDIRECTED_REQUEST","url":"classes/responsepredicate.html#sc_misdirected_request","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":258,"kind":1024,"name":"SC_UNPROCESSABLE_ENTITY","url":"classes/responsepredicate.html#sc_unprocessable_entity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":259,"kind":1024,"name":"SC_LOCKED","url":"classes/responsepredicate.html#sc_locked","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":260,"kind":1024,"name":"SC_FAILED_DEPENDENCY","url":"classes/responsepredicate.html#sc_failed_dependency","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":261,"kind":1024,"name":"SC_UNORDERED_COLLECTION","url":"classes/responsepredicate.html#sc_unordered_collection","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":262,"kind":1024,"name":"SC_UPGRADE_REQUIRED","url":"classes/responsepredicate.html#sc_upgrade_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":263,"kind":1024,"name":"SC_PRECONDITION_REQUIRED","url":"classes/responsepredicate.html#sc_precondition_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":264,"kind":1024,"name":"SC_TOO_MANY_REQUESTS","url":"classes/responsepredicate.html#sc_too_many_requests","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":265,"kind":1024,"name":"SC_REQUEST_HEADER_FIELDS_TOO_LARGE","url":"classes/responsepredicate.html#sc_request_header_fields_too_large","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":266,"kind":1024,"name":"SC_SERVER_ERRORS","url":"classes/responsepredicate.html#sc_server_errors","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":267,"kind":1024,"name":"SC_INTERNAL_SERVER_ERROR","url":"classes/responsepredicate.html#sc_internal_server_error","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":268,"kind":1024,"name":"SC_NOT_IMPLEMENTED","url":"classes/responsepredicate.html#sc_not_implemented","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":269,"kind":1024,"name":"SC_BAD_GATEWAY","url":"classes/responsepredicate.html#sc_bad_gateway","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":270,"kind":1024,"name":"SC_SERVICE_UNAVAILABLE","url":"classes/responsepredicate.html#sc_service_unavailable","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":271,"kind":1024,"name":"SC_GATEWAY_TIMEOUT","url":"classes/responsepredicate.html#sc_gateway_timeout","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":272,"kind":1024,"name":"SC_HTTP_VERSION_NOT_SUPPORTED","url":"classes/responsepredicate.html#sc_http_version_not_supported","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":273,"kind":1024,"name":"SC_VARIANT_ALSO_NEGOTIATES","url":"classes/responsepredicate.html#sc_variant_also_negotiates","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":274,"kind":1024,"name":"SC_INSUFFICIENT_STORAGE","url":"classes/responsepredicate.html#sc_insufficient_storage","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":275,"kind":1024,"name":"SC_NOT_EXTENDED","url":"classes/responsepredicate.html#sc_not_extended","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":276,"kind":1024,"name":"SC_NETWORK_AUTHENTICATION_REQUIRED","url":"classes/responsepredicate.html#sc_network_authentication_required","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":277,"kind":1024,"name":"JSON","url":"classes/responsepredicate.html#json","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":278,"kind":2048,"name":"status","url":"classes/responsepredicate.html#status","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":279,"kind":2048,"name":"contentType","url":"classes/responsepredicate.html#contenttype","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":280,"kind":2048,"name":"create","url":"classes/responsepredicate.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicate"},{"id":281,"kind":2048,"name":"errorConverter","url":"classes/responsepredicate.html#errorconverter","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicate"},{"id":282,"kind":128,"name":"ResponsePredicateResult","url":"classes/responsepredicateresult.html","classes":"tsd-kind-class"},{"id":283,"kind":2048,"name":"success","url":"classes/responsepredicateresult.html#success","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicateResult"},{"id":284,"kind":2048,"name":"failure","url":"classes/responsepredicateresult.html#failure","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ResponsePredicateResult"},{"id":285,"kind":2048,"name":"succeeded","url":"classes/responsepredicateresult.html#succeeded","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicateResult"},{"id":286,"kind":2048,"name":"message","url":"classes/responsepredicateresult.html#message","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicateResult"},{"id":287,"kind":2048,"name":"response","url":"classes/responsepredicateresult.html#response","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ResponsePredicateResult"},{"id":288,"kind":128,"name":"WebClient","url":"classes/webclient.html","classes":"tsd-kind-class"},{"id":289,"kind":2048,"name":"create","url":"classes/webclient.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebClient"},{"id":290,"kind":2048,"name":"wrap","url":"classes/webclient.html#wrap","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebClient"},{"id":291,"kind":2048,"name":"request","url":"classes/webclient.html#request","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":292,"kind":2048,"name":"requestAbs","url":"classes/webclient.html#requestabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":293,"kind":2048,"name":"get","url":"classes/webclient.html#get","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":294,"kind":2048,"name":"getAbs","url":"classes/webclient.html#getabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":295,"kind":2048,"name":"post","url":"classes/webclient.html#post","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":296,"kind":2048,"name":"postAbs","url":"classes/webclient.html#postabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":297,"kind":2048,"name":"put","url":"classes/webclient.html#put","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":298,"kind":2048,"name":"putAbs","url":"classes/webclient.html#putabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":299,"kind":2048,"name":"delete","url":"classes/webclient.html#delete","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":300,"kind":2048,"name":"deleteAbs","url":"classes/webclient.html#deleteabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":301,"kind":2048,"name":"patch","url":"classes/webclient.html#patch","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":302,"kind":2048,"name":"patchAbs","url":"classes/webclient.html#patchabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":303,"kind":2048,"name":"head","url":"classes/webclient.html#head","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":304,"kind":2048,"name":"headAbs","url":"classes/webclient.html#headabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":305,"kind":2048,"name":"raw","url":"classes/webclient.html#raw","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":306,"kind":2048,"name":"rawAbs","url":"classes/webclient.html#rawabs","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"},{"id":307,"kind":2048,"name":"close","url":"classes/webclient.html#close","classes":"tsd-kind-method tsd-parent-kind-class","parent":"WebClient"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,6.365]],["parent/0",[]],["name/1",[1,53.279]],["parent/1",[0,0.631]],["name/2",[2,53.279]],["parent/2",[0,0.631]],["name/3",[3,53.279]],["parent/3",[0,0.631]],["name/4",[4,53.279]],["parent/4",[0,0.631]],["name/5",[5,53.279]],["parent/5",[0,0.631]],["name/6",[6,53.279]],["parent/6",[0,0.631]],["name/7",[7,53.279]],["parent/7",[0,0.631]],["name/8",[8,53.279]],["parent/8",[0,0.631]],["name/9",[9,53.279]],["parent/9",[0,0.631]],["name/10",[10,53.279]],["parent/10",[0,0.631]],["name/11",[11,53.279]],["parent/11",[0,0.631]],["name/12",[12,53.279]],["parent/12",[0,0.631]],["name/13",[13,53.279]],["parent/13",[0,0.631]],["name/14",[14,53.279]],["parent/14",[0,0.631]],["name/15",[15,53.279]],["parent/15",[0,0.631]],["name/16",[16,53.279]],["parent/16",[0,0.631]],["name/17",[17,53.279]],["parent/17",[0,0.631]],["name/18",[18,53.279]],["parent/18",[0,0.631]],["name/19",[19,53.279]],["parent/19",[0,0.631]],["name/20",[20,53.279]],["parent/20",[0,0.631]],["name/21",[21,53.279]],["parent/21",[0,0.631]],["name/22",[22,53.279]],["parent/22",[0,0.631]],["name/23",[23,53.279]],["parent/23",[0,0.631]],["name/24",[24,53.279]],["parent/24",[0,0.631]],["name/25",[25,53.279]],["parent/25",[0,0.631]],["name/26",[26,53.279]],["parent/26",[0,0.631]],["name/27",[27,53.279]],["parent/27",[0,0.631]],["name/28",[28,53.279]],["parent/28",[0,0.631]],["name/29",[29,53.279]],["parent/29",[0,0.631]],["name/30",[30,53.279]],["parent/30",[0,0.631]],["name/31",[31,53.279]],["parent/31",[0,0.631]],["name/32",[32,53.279]],["parent/32",[0,0.631]],["name/33",[33,53.279]],["parent/33",[0,0.631]],["name/34",[34,53.279]],["parent/34",[0,0.631]],["name/35",[35,53.279]],["parent/35",[0,0.631]],["name/36",[36,53.279]],["parent/36",[0,0.631]],["name/37",[37,53.279]],["parent/37",[0,0.631]],["name/38",[38,53.279]],["parent/38",[0,0.631]],["name/39",[39,53.279]],["parent/39",[0,0.631]],["name/40",[40,53.279]],["parent/40",[0,0.631]],["name/41",[41,53.279]],["parent/41",[0,0.631]],["name/42",[42,53.279]],["parent/42",[0,0.631]],["name/43",[43,53.279]],["parent/43",[0,0.631]],["name/44",[44,53.279]],["parent/44",[0,0.631]],["name/45",[45,53.279]],["parent/45",[0,0.631]],["name/46",[46,53.279]],["parent/46",[0,0.631]],["name/47",[47,53.279]],["parent/47",[0,0.631]],["name/48",[48,53.279]],["parent/48",[0,0.631]],["name/49",[49,53.279]],["parent/49",[0,0.631]],["name/50",[50,53.279]],["parent/50",[0,0.631]],["name/51",[51,53.279]],["parent/51",[0,0.631]],["name/52",[52,53.279]],["parent/52",[0,0.631]],["name/53",[53,53.279]],["parent/53",[0,0.631]],["name/54",[54,53.279]],["parent/54",[0,0.631]],["name/55",[55,53.279]],["parent/55",[0,0.631]],["name/56",[56,53.279]],["parent/56",[0,0.631]],["name/57",[57,53.279]],["parent/57",[0,0.631]],["name/58",[58,53.279]],["parent/58",[0,0.631]],["name/59",[59,53.279]],["parent/59",[0,0.631]],["name/60",[60,53.279]],["parent/60",[0,0.631]],["name/61",[61,53.279]],["parent/61",[0,0.631]],["name/62",[62,53.279]],["parent/62",[0,0.631]],["name/63",[63,53.279]],["parent/63",[0,0.631]],["name/64",[64,53.279]],["parent/64",[0,0.631]],["name/65",[65,48.171]],["parent/65",[0,0.631]],["name/66",[66,48.171]],["parent/66",[0,0.631]],["name/67",[67,48.171]],["parent/67",[0,0.631]],["name/68",[68,48.171]],["parent/68",[0,0.631]],["name/69",[65,48.171]],["parent/69",[0,0.631]],["name/70",[66,48.171]],["parent/70",[0,0.631]],["name/71",[67,48.171]],["parent/71",[0,0.631]],["name/72",[68,48.171]],["parent/72",[0,0.631]],["name/73",[69,53.279]],["parent/73",[0,0.631]],["name/74",[70,53.279]],["parent/74",[0,0.631]],["name/75",[71,53.279]],["parent/75",[0,0.631]],["name/76",[72,53.279]],["parent/76",[0,0.631]],["name/77",[73,53.279]],["parent/77",[0,0.631]],["name/78",[74,53.279]],["parent/78",[0,0.631]],["name/79",[75,53.279]],["parent/79",[0,0.631]],["name/80",[76,53.279]],["parent/80",[0,0.631]],["name/81",[77,53.279]],["parent/81",[0,0.631]],["name/82",[78,53.279]],["parent/82",[0,0.631]],["name/83",[79,53.279]],["parent/83",[0,0.631]],["name/84",[80,53.279]],["parent/84",[0,0.631]],["name/85",[81,53.279]],["parent/85",[0,0.631]],["name/86",[82,53.279]],["parent/86",[0,0.631]],["name/87",[83,53.279]],["parent/87",[0,0.631]],["name/88",[84,53.279]],["parent/88",[0,0.631]],["name/89",[85,53.279]],["parent/89",[0,0.631]],["name/90",[86,53.279]],["parent/90",[0,0.631]],["name/91",[87,53.279]],["parent/91",[0,0.631]],["name/92",[88,53.279]],["parent/92",[0,0.631]],["name/93",[89,53.279]],["parent/93",[0,0.631]],["name/94",[90,53.279]],["parent/94",[0,0.631]],["name/95",[91,53.279]],["parent/95",[0,0.631]],["name/96",[92,53.279]],["parent/96",[0,0.631]],["name/97",[93,53.279]],["parent/97",[0,0.631]],["name/98",[94,53.279]],["parent/98",[0,0.631]],["name/99",[95,53.279]],["parent/99",[0,0.631]],["name/100",[96,53.279]],["parent/100",[0,0.631]],["name/101",[97,53.279]],["parent/101",[0,0.631]],["name/102",[98,53.279]],["parent/102",[0,0.631]],["name/103",[99,53.279]],["parent/103",[0,0.631]],["name/104",[100,53.279]],["parent/104",[0,0.631]],["name/105",[101,53.279]],["parent/105",[0,0.631]],["name/106",[102,53.279]],["parent/106",[0,0.631]],["name/107",[103,53.279]],["parent/107",[0,0.631]],["name/108",[104,53.279]],["parent/108",[0,0.631]],["name/109",[105,53.279]],["parent/109",[0,0.631]],["name/110",[106,53.279]],["parent/110",[0,0.631]],["name/111",[107,53.279]],["parent/111",[0,0.631]],["name/112",[108,53.279]],["parent/112",[0,0.631]],["name/113",[109,53.279]],["parent/113",[0,0.631]],["name/114",[110,53.279]],["parent/114",[0,0.631]],["name/115",[111,53.279]],["parent/115",[0,0.631]],["name/116",[112,53.279]],["parent/116",[0,0.631]],["name/117",[113,53.279]],["parent/117",[0,0.631]],["name/118",[114,53.279]],["parent/118",[0,0.631]],["name/119",[115,53.279]],["parent/119",[0,0.631]],["name/120",[116,53.279]],["parent/120",[0,0.631]],["name/121",[117,53.279]],["parent/121",[0,0.631]],["name/122",[118,53.279]],["parent/122",[0,0.631]],["name/123",[119,53.279]],["parent/123",[0,0.631]],["name/124",[120,53.279]],["parent/124",[0,0.631]],["name/125",[121,53.279]],["parent/125",[0,0.631]],["name/126",[122,53.279]],["parent/126",[0,0.631]],["name/127",[123,53.279]],["parent/127",[0,0.631]],["name/128",[124,53.279]],["parent/128",[0,0.631]],["name/129",[125,53.279]],["parent/129",[0,0.631]],["name/130",[126,53.279]],["parent/130",[0,0.631]],["name/131",[127,48.171]],["parent/131",[0,0.631]],["name/132",[127,48.171]],["parent/132",[0,0.631]],["name/133",[128,48.171]],["parent/133",[0,0.631]],["name/134",[129,48.171]],["parent/134",[0,0.631]],["name/135",[128,48.171]],["parent/135",[0,0.631]],["name/136",[129,48.171]],["parent/136",[0,0.631]],["name/137",[130,48.171]],["parent/137",[0,0.631]],["name/138",[130,48.171]],["parent/138",[0,0.631]],["name/139",[131,53.279]],["parent/139",[0,0.631]],["name/140",[132,53.279]],["parent/140",[0,0.631]],["name/141",[133,53.279]],["parent/141",[0,0.631]],["name/142",[134,53.279]],["parent/142",[0,0.631]],["name/143",[135,53.279]],["parent/143",[0,0.631]],["name/144",[136,53.279]],["parent/144",[0,0.631]],["name/145",[137,53.279]],["parent/145",[0,0.631]],["name/146",[138,53.279]],["parent/146",[0,0.631]],["name/147",[139,53.279]],["parent/147",[0,0.631]],["name/148",[140,53.279]],["parent/148",[0,0.631]],["name/149",[141,53.279]],["parent/149",[0,0.631]],["name/150",[142,53.279]],["parent/150",[0,0.631]],["name/151",[143,48.171]],["parent/151",[0,0.631]],["name/152",[144,48.171]],["parent/152",[0,0.631]],["name/153",[145,48.171]],["parent/153",[0,0.631]],["name/154",[146,48.171]],["parent/154",[0,0.631]],["name/155",[147,48.171]],["parent/155",[0,0.631]],["name/156",[148,48.171]],["parent/156",[0,0.631]],["name/157",[143,48.171]],["parent/157",[0,0.631]],["name/158",[144,48.171]],["parent/158",[0,0.631]],["name/159",[145,48.171]],["parent/159",[0,0.631]],["name/160",[146,48.171]],["parent/160",[0,0.631]],["name/161",[147,48.171]],["parent/161",[0,0.631]],["name/162",[148,48.171]],["parent/162",[0,0.631]],["name/163",[149,37.184]],["parent/163",[]],["name/164",[150,53.279]],["parent/164",[149,3.683]],["name/165",[151,44.806]],["parent/165",[149,3.683]],["name/166",[152,53.279]],["parent/166",[149,3.683]],["name/167",[153,53.279]],["parent/167",[149,3.683]],["name/168",[154,53.279]],["parent/168",[149,3.683]],["name/169",[155,23.49]],["parent/169",[]],["name/170",[156,53.279]],["parent/170",[155,2.327]],["name/171",[157,53.279]],["parent/171",[155,2.327]],["name/172",[158,53.279]],["parent/172",[155,2.327]],["name/173",[159,53.279]],["parent/173",[155,2.327]],["name/174",[160,53.279]],["parent/174",[155,2.327]],["name/175",[161,53.279]],["parent/175",[155,2.327]],["name/176",[162,53.279]],["parent/176",[155,2.327]],["name/177",[163,53.279]],["parent/177",[155,2.327]],["name/178",[164,53.279]],["parent/178",[155,2.327]],["name/179",[165,48.171]],["parent/179",[155,2.327]],["name/180",[166,53.279]],["parent/180",[155,2.327]],["name/181",[167,53.279]],["parent/181",[155,2.327]],["name/182",[168,53.279]],["parent/182",[155,2.327]],["name/183",[169,53.279]],["parent/183",[155,2.327]],["name/184",[170,53.279]],["parent/184",[155,2.327]],["name/185",[171,53.279]],["parent/185",[155,2.327]],["name/186",[172,53.279]],["parent/186",[155,2.327]],["name/187",[173,53.279]],["parent/187",[155,2.327]],["name/188",[174,53.279]],["parent/188",[155,2.327]],["name/189",[175,53.279]],["parent/189",[155,2.327]],["name/190",[176,53.279]],["parent/190",[155,2.327]],["name/191",[177,53.279]],["parent/191",[155,2.327]],["name/192",[178,53.279]],["parent/192",[155,2.327]],["name/193",[179,53.279]],["parent/193",[155,2.327]],["name/194",[180,53.279]],["parent/194",[155,2.327]],["name/195",[181,53.279]],["parent/195",[155,2.327]],["name/196",[182,53.279]],["parent/196",[155,2.327]],["name/197",[183,53.279]],["parent/197",[155,2.327]],["name/198",[184,29.3]],["parent/198",[]],["name/199",[185,53.279]],["parent/199",[184,2.902]],["name/200",[186,53.279]],["parent/200",[184,2.902]],["name/201",[187,53.279]],["parent/201",[184,2.902]],["name/202",[165,48.171]],["parent/202",[184,2.902]],["name/203",[188,53.279]],["parent/203",[184,2.902]],["name/204",[189,53.279]],["parent/204",[184,2.902]],["name/205",[190,53.279]],["parent/205",[184,2.902]],["name/206",[191,53.279]],["parent/206",[184,2.902]],["name/207",[192,53.279]],["parent/207",[184,2.902]],["name/208",[193,53.279]],["parent/208",[184,2.902]],["name/209",[194,53.279]],["parent/209",[184,2.902]],["name/210",[195,53.279]],["parent/210",[184,2.902]],["name/211",[196,53.279]],["parent/211",[184,2.902]],["name/212",[197,53.279]],["parent/212",[184,2.902]],["name/213",[198,53.279]],["parent/213",[184,2.902]],["name/214",[199,15.065]],["parent/214",[]],["name/215",[200,53.279]],["parent/215",[199,1.492]],["name/216",[201,53.279]],["parent/216",[199,1.492]],["name/217",[202,53.279]],["parent/217",[199,1.492]],["name/218",[203,53.279]],["parent/218",[199,1.492]],["name/219",[204,53.279]],["parent/219",[199,1.492]],["name/220",[205,53.279]],["parent/220",[199,1.492]],["name/221",[206,53.279]],["parent/221",[199,1.492]],["name/222",[207,53.279]],["parent/222",[199,1.492]],["name/223",[208,53.279]],["parent/223",[199,1.492]],["name/224",[209,53.279]],["parent/224",[199,1.492]],["name/225",[210,53.279]],["parent/225",[199,1.492]],["name/226",[211,53.279]],["parent/226",[199,1.492]],["name/227",[212,53.279]],["parent/227",[199,1.492]],["name/228",[213,53.279]],["parent/228",[199,1.492]],["name/229",[214,53.279]],["parent/229",[199,1.492]],["name/230",[215,53.279]],["parent/230",[199,1.492]],["name/231",[216,53.279]],["parent/231",[199,1.492]],["name/232",[217,53.279]],["parent/232",[199,1.492]],["name/233",[218,53.279]],["parent/233",[199,1.492]],["name/234",[219,53.279]],["parent/234",[199,1.492]],["name/235",[220,53.279]],["parent/235",[199,1.492]],["name/236",[221,53.279]],["parent/236",[199,1.492]],["name/237",[222,53.279]],["parent/237",[199,1.492]],["name/238",[223,53.279]],["parent/238",[199,1.492]],["name/239",[224,53.279]],["parent/239",[199,1.492]],["name/240",[225,53.279]],["parent/240",[199,1.492]],["name/241",[226,53.279]],["parent/241",[199,1.492]],["name/242",[227,53.279]],["parent/242",[199,1.492]],["name/243",[228,53.279]],["parent/243",[199,1.492]],["name/244",[229,53.279]],["parent/244",[199,1.492]],["name/245",[230,53.279]],["parent/245",[199,1.492]],["name/246",[231,53.279]],["parent/246",[199,1.492]],["name/247",[232,53.279]],["parent/247",[199,1.492]],["name/248",[233,53.279]],["parent/248",[199,1.492]],["name/249",[234,53.279]],["parent/249",[199,1.492]],["name/250",[235,53.279]],["parent/250",[199,1.492]],["name/251",[236,53.279]],["parent/251",[199,1.492]],["name/252",[237,53.279]],["parent/252",[199,1.492]],["name/253",[238,53.279]],["parent/253",[199,1.492]],["name/254",[239,53.279]],["parent/254",[199,1.492]],["name/255",[240,53.279]],["parent/255",[199,1.492]],["name/256",[241,53.279]],["parent/256",[199,1.492]],["name/257",[242,53.279]],["parent/257",[199,1.492]],["name/258",[243,53.279]],["parent/258",[199,1.492]],["name/259",[244,53.279]],["parent/259",[199,1.492]],["name/260",[245,53.279]],["parent/260",[199,1.492]],["name/261",[246,53.279]],["parent/261",[199,1.492]],["name/262",[247,53.279]],["parent/262",[199,1.492]],["name/263",[248,53.279]],["parent/263",[199,1.492]],["name/264",[249,53.279]],["parent/264",[199,1.492]],["name/265",[250,53.279]],["parent/265",[199,1.492]],["name/266",[251,53.279]],["parent/266",[199,1.492]],["name/267",[252,53.279]],["parent/267",[199,1.492]],["name/268",[253,53.279]],["parent/268",[199,1.492]],["name/269",[254,53.279]],["parent/269",[199,1.492]],["name/270",[255,53.279]],["parent/270",[199,1.492]],["name/271",[256,53.279]],["parent/271",[199,1.492]],["name/272",[257,53.279]],["parent/272",[199,1.492]],["name/273",[258,53.279]],["parent/273",[199,1.492]],["name/274",[259,53.279]],["parent/274",[199,1.492]],["name/275",[260,53.279]],["parent/275",[199,1.492]],["name/276",[261,53.279]],["parent/276",[199,1.492]],["name/277",[262,53.279]],["parent/277",[199,1.492]],["name/278",[263,53.279]],["parent/278",[199,1.492]],["name/279",[264,53.279]],["parent/279",[199,1.492]],["name/280",[151,44.806]],["parent/280",[199,1.492]],["name/281",[149,37.184]],["parent/281",[199,1.492]],["name/282",[265,38.615]],["parent/282",[]],["name/283",[266,53.279]],["parent/283",[265,3.825]],["name/284",[267,53.279]],["parent/284",[265,3.825]],["name/285",[268,53.279]],["parent/285",[265,3.825]],["name/286",[269,53.279]],["parent/286",[265,3.825]],["name/287",[270,53.279]],["parent/287",[265,3.825]],["name/288",[271,27.129]],["parent/288",[]],["name/289",[151,44.806]],["parent/289",[271,2.687]],["name/290",[272,53.279]],["parent/290",[271,2.687]],["name/291",[273,53.279]],["parent/291",[271,2.687]],["name/292",[274,53.279]],["parent/292",[271,2.687]],["name/293",[275,53.279]],["parent/293",[271,2.687]],["name/294",[276,53.279]],["parent/294",[271,2.687]],["name/295",[277,53.279]],["parent/295",[271,2.687]],["name/296",[278,53.279]],["parent/296",[271,2.687]],["name/297",[279,53.279]],["parent/297",[271,2.687]],["name/298",[280,53.279]],["parent/298",[271,2.687]],["name/299",[281,53.279]],["parent/299",[271,2.687]],["name/300",[282,53.279]],["parent/300",[271,2.687]],["name/301",[283,53.279]],["parent/301",[271,2.687]],["name/302",[284,53.279]],["parent/302",[271,2.687]],["name/303",[285,53.279]],["parent/303",[271,2.687]],["name/304",[286,53.279]],["parent/304",[271,2.687]],["name/305",[287,53.279]],["parent/305",[271,2.687]],["name/306",[288,53.279]],["parent/306",[271,2.687]],["name/307",[289,53.279]],["parent/307",[271,2.687]]],"invertedIndex":[["addcrlpath",{"_index":7,"name":{"7":{}},"parent":{}}],["addcrlvalue",{"_index":9,"name":{"9":{}},"parent":{}}],["addenabledciphersuite",{"_index":17,"name":{"17":{}},"parent":{}}],["addenabledsecuretransportprotocol",{"_index":20,"name":{"20":{}},"parent":{}}],["addqueryparam",{"_index":170,"name":{"184":{}},"parent":{}}],["apply",{"_index":153,"name":{"167":{}},"parent":{}}],["as",{"_index":159,"name":{"173":{}},"parent":{}}],["basicauthentication",{"_index":166,"name":{"180":{}},"parent":{}}],["bearertokenauthentication",{"_index":167,"name":{"181":{}},"parent":{}}],["body",{"_index":192,"name":{"207":{}},"parent":{}}],["bodyasbuffer",{"_index":193,"name":{"208":{}},"parent":{}}],["bodyasjson",{"_index":198,"name":{"213":{}},"parent":{}}],["bodyasjsonarray",{"_index":197,"name":{"212":{}},"parent":{}}],["bodyasjsonobject",{"_index":196,"name":{"211":{}},"parent":{}}],["bodyasstring",{"_index":195,"name":{"210":{}},"parent":{}}],["close",{"_index":289,"name":{"307":{}},"parent":{}}],["constructor",{"_index":1,"name":{"1":{}},"parent":{}}],["contenttype",{"_index":264,"name":{"279":{}},"parent":{}}],["cookies",{"_index":191,"name":{"206":{}},"parent":{}}],["copy",{"_index":175,"name":{"189":{}},"parent":{}}],["create",{"_index":151,"name":{"165":{},"280":{},"289":{}},"parent":{}}],["createfullbody",{"_index":152,"name":{"166":{}},"parent":{}}],["default_converter",{"_index":150,"name":{"164":{}},"parent":{}}],["delete",{"_index":281,"name":{"299":{}},"parent":{}}],["deleteabs",{"_index":282,"name":{"300":{}},"parent":{}}],["errorconverter",{"_index":149,"name":{"163":{},"281":{}},"parent":{"164":{},"165":{},"166":{},"167":{},"168":{}}}],["expect",{"_index":173,"name":{"187":{}},"parent":{}}],["failure",{"_index":267,"name":{"284":{}},"parent":{}}],["followedredirects",{"_index":194,"name":{"209":{}},"parent":{}}],["followredirects",{"_index":172,"name":{"186":{}},"parent":{}}],["get",{"_index":275,"name":{"293":{}},"parent":{}}],["getabs",{"_index":276,"name":{"294":{}},"parent":{}}],["getalpnversions",{"_index":2,"name":{"2":{}},"parent":{}}],["getconnecttimeout",{"_index":4,"name":{"4":{}},"parent":{}}],["getcrlpaths",{"_index":6,"name":{"6":{}},"parent":{}}],["getcrlvalues",{"_index":8,"name":{"8":{}},"parent":{}}],["getdecoderinitialbuffersize",{"_index":10,"name":{"10":{}},"parent":{}}],["getdefaulthost",{"_index":12,"name":{"12":{}},"parent":{}}],["getdefaultport",{"_index":14,"name":{"14":{}},"parent":{}}],["getenabledciphersuites",{"_index":16,"name":{"16":{}},"parent":{}}],["getenabledsecuretransportprotocols",{"_index":18,"name":{"18":{}},"parent":{}}],["getheader",{"_index":188,"name":{"203":{}},"parent":{}}],["gethttp2connectionwindowsize",{"_index":27,"name":{"27":{}},"parent":{}}],["gethttp2keepalivetimeout",{"_index":29,"name":{"29":{}},"parent":{}}],["gethttp2maxpoolsize",{"_index":31,"name":{"31":{}},"parent":{}}],["gethttp2multiplexinglimit",{"_index":33,"name":{"33":{}},"parent":{}}],["getidletimeout",{"_index":35,"name":{"35":{}},"parent":{}}],["getidletimeoutunit",{"_index":37,"name":{"37":{}},"parent":{}}],["getinitialsettings",{"_index":39,"name":{"39":{}},"parent":{}}],["getjdksslengineoptions",{"_index":41,"name":{"41":{}},"parent":{}}],["getkeepalivetimeout",{"_index":45,"name":{"45":{}},"parent":{}}],["getkeystoreoptions",{"_index":47,"name":{"47":{}},"parent":{}}],["getlocaladdress",{"_index":49,"name":{"49":{}},"parent":{}}],["getlogactivity",{"_index":51,"name":{"51":{}},"parent":{}}],["getmaxchunksize",{"_index":53,"name":{"53":{}},"parent":{}}],["getmaxheadersize",{"_index":55,"name":{"55":{}},"parent":{}}],["getmaxinitiallinelength",{"_index":57,"name":{"57":{}},"parent":{}}],["getmaxpoolsize",{"_index":59,"name":{"59":{}},"parent":{}}],["getmaxredirects",{"_index":61,"name":{"61":{}},"parent":{}}],["getmaxwaitqueuesize",{"_index":63,"name":{"63":{}},"parent":{}}],["getmaxwebsocketframesize",{"_index":65,"name":{"65":{},"69":{}},"parent":{}}],["getmaxwebsocketmessagesize",{"_index":67,"name":{"67":{},"71":{}},"parent":{}}],["getmetricsname",{"_index":69,"name":{"73":{}},"parent":{}}],["getopensslengineoptions",{"_index":71,"name":{"75":{}},"parent":{}}],["getpemkeycertoptions",{"_index":73,"name":{"77":{}},"parent":{}}],["getpemtrustoptions",{"_index":75,"name":{"79":{}},"parent":{}}],["getpfxkeycertoptions",{"_index":77,"name":{"81":{}},"parent":{}}],["getpfxtrustoptions",{"_index":79,"name":{"83":{}},"parent":{}}],["getpipelininglimit",{"_index":83,"name":{"87":{}},"parent":{}}],["getpoolcleanerperiod",{"_index":85,"name":{"89":{}},"parent":{}}],["getprotocolversion",{"_index":87,"name":{"91":{}},"parent":{}}],["getproxyoptions",{"_index":89,"name":{"93":{}},"parent":{}}],["getreceivebuffersize",{"_index":91,"name":{"95":{}},"parent":{}}],["getsendbuffersize",{"_index":97,"name":{"101":{}},"parent":{}}],["getsolinger",{"_index":101,"name":{"105":{}},"parent":{}}],["getsslhandshaketimeout",{"_index":105,"name":{"109":{}},"parent":{}}],["getsslhandshaketimeoutunit",{"_index":107,"name":{"111":{}},"parent":{}}],["gettrafficclass",{"_index":119,"name":{"123":{}},"parent":{}}],["gettrailer",{"_index":190,"name":{"205":{}},"parent":{}}],["gettruststoreoptions",{"_index":123,"name":{"127":{}},"parent":{}}],["gettryusepermessagewebsocketcompression",{"_index":128,"name":{"133":{},"135":{}},"parent":{}}],["gettrywebsocketdeflateframecompression",{"_index":130,"name":{"137":{},"138":{}},"parent":{}}],["getuseragent",{"_index":135,"name":{"143":{}},"parent":{}}],["getwebsocketclosingtimeout",{"_index":141,"name":{"149":{}},"parent":{}}],["getwebsocketcompressionallowclientnocontext",{"_index":143,"name":{"151":{},"157":{}},"parent":{}}],["getwebsocketcompressionlevel",{"_index":145,"name":{"153":{},"159":{}},"parent":{}}],["getwebsocketcompressionrequestservernocontext",{"_index":147,"name":{"155":{},"161":{}},"parent":{}}],["head",{"_index":285,"name":{"303":{}},"parent":{}}],["headabs",{"_index":286,"name":{"304":{}},"parent":{}}],["headers",{"_index":165,"name":{"179":{},"202":{}},"parent":{}}],["host",{"_index":160,"name":{"174":{}},"parent":{}}],["httprequest",{"_index":155,"name":{"169":{}},"parent":{"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{}}}],["httpresponse",{"_index":184,"name":{"198":{}},"parent":{"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{}}}],["isfollowredirects",{"_index":21,"name":{"21":{}},"parent":{}}],["isforcesni",{"_index":23,"name":{"23":{}},"parent":{}}],["ishttp2cleartextupgrade",{"_index":25,"name":{"25":{}},"parent":{}}],["iskeepalive",{"_index":43,"name":{"43":{}},"parent":{}}],["ispipelining",{"_index":81,"name":{"85":{}},"parent":{}}],["isreuseaddress",{"_index":93,"name":{"97":{}},"parent":{}}],["isreuseport",{"_index":95,"name":{"99":{}},"parent":{}}],["issendunmaskedframes",{"_index":99,"name":{"103":{}},"parent":{}}],["isssl",{"_index":103,"name":{"107":{}},"parent":{}}],["istcpcork",{"_index":109,"name":{"113":{}},"parent":{}}],["istcpfastopen",{"_index":111,"name":{"115":{}},"parent":{}}],["istcpkeepalive",{"_index":113,"name":{"117":{}},"parent":{}}],["istcpnodelay",{"_index":115,"name":{"119":{}},"parent":{}}],["istcpquickack",{"_index":117,"name":{"121":{}},"parent":{}}],["istrustall",{"_index":121,"name":{"125":{}},"parent":{}}],["istryusecompression",{"_index":125,"name":{"129":{}},"parent":{}}],["isusealpn",{"_index":131,"name":{"139":{}},"parent":{}}],["isusepooledbuffers",{"_index":133,"name":{"141":{}},"parent":{}}],["isuseragentenabled",{"_index":137,"name":{"145":{}},"parent":{}}],["isverifyhost",{"_index":139,"name":{"147":{}},"parent":{}}],["json",{"_index":262,"name":{"277":{}},"parent":{}}],["message",{"_index":269,"name":{"286":{}},"parent":{}}],["method",{"_index":156,"name":{"170":{}},"parent":{}}],["multipartmixed",{"_index":176,"name":{"190":{}},"parent":{}}],["patch",{"_index":283,"name":{"301":{}},"parent":{}}],["patchabs",{"_index":284,"name":{"302":{}},"parent":{}}],["port",{"_index":158,"name":{"172":{}},"parent":{}}],["post",{"_index":277,"name":{"295":{}},"parent":{}}],["postabs",{"_index":278,"name":{"296":{}},"parent":{}}],["put",{"_index":279,"name":{"297":{}},"parent":{}}],["putabs",{"_index":280,"name":{"298":{}},"parent":{}}],["putheader",{"_index":164,"name":{"178":{}},"parent":{}}],["putheaders",{"_index":163,"name":{"177":{}},"parent":{}}],["queryparams",{"_index":174,"name":{"188":{}},"parent":{}}],["raw",{"_index":287,"name":{"305":{}},"parent":{}}],["rawabs",{"_index":288,"name":{"306":{}},"parent":{}}],["rawmethod",{"_index":157,"name":{"171":{}},"parent":{}}],["request",{"_index":273,"name":{"291":{}},"parent":{}}],["requestabs",{"_index":274,"name":{"292":{}},"parent":{}}],["requiresbody",{"_index":154,"name":{"168":{}},"parent":{}}],["response",{"_index":270,"name":{"287":{}},"parent":{}}],["responsepredicate",{"_index":199,"name":{"214":{}},"parent":{"215":{},"216":{},"217":{},"218":{},"219":{},"220":{},"221":{},"222":{},"223":{},"224":{},"225":{},"226":{},"227":{},"228":{},"229":{},"230":{},"231":{},"232":{},"233":{},"234":{},"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{},"245":{},"246":{},"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{},"254":{},"255":{},"256":{},"257":{},"258":{},"259":{},"260":{},"261":{},"262":{},"263":{},"264":{},"265":{},"266":{},"267":{},"268":{},"269":{},"270":{},"271":{},"272":{},"273":{},"274":{},"275":{},"276":{},"277":{},"278":{},"279":{},"280":{},"281":{}}}],["responsepredicateresult",{"_index":265,"name":{"282":{}},"parent":{"283":{},"284":{},"285":{},"286":{},"287":{}}}],["sc_accepted",{"_index":208,"name":{"223":{}},"parent":{}}],["sc_bad_gateway",{"_index":254,"name":{"269":{}},"parent":{}}],["sc_bad_request",{"_index":224,"name":{"239":{}},"parent":{}}],["sc_client_errors",{"_index":223,"name":{"238":{}},"parent":{}}],["sc_conflict",{"_index":233,"name":{"248":{}},"parent":{}}],["sc_continue",{"_index":201,"name":{"216":{}},"parent":{}}],["sc_created",{"_index":207,"name":{"222":{}},"parent":{}}],["sc_early_hints",{"_index":204,"name":{"219":{}},"parent":{}}],["sc_expectation_failed",{"_index":241,"name":{"256":{}},"parent":{}}],["sc_failed_dependency",{"_index":245,"name":{"260":{}},"parent":{}}],["sc_forbidden",{"_index":227,"name":{"242":{}},"parent":{}}],["sc_found",{"_index":217,"name":{"232":{}},"parent":{}}],["sc_gateway_timeout",{"_index":256,"name":{"271":{}},"parent":{}}],["sc_gone",{"_index":234,"name":{"249":{}},"parent":{}}],["sc_http_version_not_supported",{"_index":257,"name":{"272":{}},"parent":{}}],["sc_informational_response",{"_index":200,"name":{"215":{}},"parent":{}}],["sc_insufficient_storage",{"_index":259,"name":{"274":{}},"parent":{}}],["sc_internal_server_error",{"_index":252,"name":{"267":{}},"parent":{}}],["sc_length_required",{"_index":235,"name":{"250":{}},"parent":{}}],["sc_locked",{"_index":244,"name":{"259":{}},"parent":{}}],["sc_method_not_allowed",{"_index":229,"name":{"244":{}},"parent":{}}],["sc_misdirected_request",{"_index":242,"name":{"257":{}},"parent":{}}],["sc_moved_permanently",{"_index":216,"name":{"231":{}},"parent":{}}],["sc_multi_status",{"_index":213,"name":{"228":{}},"parent":{}}],["sc_multiple_choices",{"_index":215,"name":{"230":{}},"parent":{}}],["sc_network_authentication_required",{"_index":261,"name":{"276":{}},"parent":{}}],["sc_no_content",{"_index":210,"name":{"225":{}},"parent":{}}],["sc_non_authoritative_information",{"_index":209,"name":{"224":{}},"parent":{}}],["sc_not_acceptable",{"_index":230,"name":{"245":{}},"parent":{}}],["sc_not_extended",{"_index":260,"name":{"275":{}},"parent":{}}],["sc_not_found",{"_index":228,"name":{"243":{}},"parent":{}}],["sc_not_implemented",{"_index":253,"name":{"268":{}},"parent":{}}],["sc_not_modified",{"_index":219,"name":{"234":{}},"parent":{}}],["sc_ok",{"_index":206,"name":{"221":{}},"parent":{}}],["sc_partial_content",{"_index":212,"name":{"227":{}},"parent":{}}],["sc_payment_required",{"_index":226,"name":{"241":{}},"parent":{}}],["sc_permanent_redirect",{"_index":222,"name":{"237":{}},"parent":{}}],["sc_precondition_failed",{"_index":236,"name":{"251":{}},"parent":{}}],["sc_precondition_required",{"_index":248,"name":{"263":{}},"parent":{}}],["sc_processing",{"_index":203,"name":{"218":{}},"parent":{}}],["sc_proxy_authentication_required",{"_index":231,"name":{"246":{}},"parent":{}}],["sc_redirection",{"_index":214,"name":{"229":{}},"parent":{}}],["sc_request_entity_too_large",{"_index":237,"name":{"252":{}},"parent":{}}],["sc_request_header_fields_too_large",{"_index":250,"name":{"265":{}},"parent":{}}],["sc_request_timeout",{"_index":232,"name":{"247":{}},"parent":{}}],["sc_request_uri_too_long",{"_index":238,"name":{"253":{}},"parent":{}}],["sc_requested_range_not_satisfiable",{"_index":240,"name":{"255":{}},"parent":{}}],["sc_reset_content",{"_index":211,"name":{"226":{}},"parent":{}}],["sc_see_other",{"_index":218,"name":{"233":{}},"parent":{}}],["sc_server_errors",{"_index":251,"name":{"266":{}},"parent":{}}],["sc_service_unavailable",{"_index":255,"name":{"270":{}},"parent":{}}],["sc_success",{"_index":205,"name":{"220":{}},"parent":{}}],["sc_switching_protocols",{"_index":202,"name":{"217":{}},"parent":{}}],["sc_temporary_redirect",{"_index":221,"name":{"236":{}},"parent":{}}],["sc_too_many_requests",{"_index":249,"name":{"264":{}},"parent":{}}],["sc_unauthorized",{"_index":225,"name":{"240":{}},"parent":{}}],["sc_unordered_collection",{"_index":246,"name":{"261":{}},"parent":{}}],["sc_unprocessable_entity",{"_index":243,"name":{"258":{}},"parent":{}}],["sc_unsupported_media_type",{"_index":239,"name":{"254":{}},"parent":{}}],["sc_upgrade_required",{"_index":247,"name":{"262":{}},"parent":{}}],["sc_use_proxy",{"_index":220,"name":{"235":{}},"parent":{}}],["sc_variant_also_negotiates",{"_index":258,"name":{"273":{}},"parent":{}}],["send",{"_index":183,"name":{"197":{}},"parent":{}}],["sendbuffer",{"_index":178,"name":{"192":{}},"parent":{}}],["sendform",{"_index":181,"name":{"195":{}},"parent":{}}],["sendjson",{"_index":180,"name":{"194":{}},"parent":{}}],["sendjsonobject",{"_index":179,"name":{"193":{}},"parent":{}}],["sendmultipartform",{"_index":182,"name":{"196":{}},"parent":{}}],["sendstream",{"_index":177,"name":{"191":{}},"parent":{}}],["setalpnversions",{"_index":3,"name":{"3":{}},"parent":{}}],["setconnecttimeout",{"_index":5,"name":{"5":{}},"parent":{}}],["setdecoderinitialbuffersize",{"_index":11,"name":{"11":{}},"parent":{}}],["setdefaulthost",{"_index":13,"name":{"13":{}},"parent":{}}],["setdefaultport",{"_index":15,"name":{"15":{}},"parent":{}}],["setenabledsecuretransportprotocols",{"_index":19,"name":{"19":{}},"parent":{}}],["setfollowredirects",{"_index":22,"name":{"22":{}},"parent":{}}],["setforcesni",{"_index":24,"name":{"24":{}},"parent":{}}],["sethttp2cleartextupgrade",{"_index":26,"name":{"26":{}},"parent":{}}],["sethttp2connectionwindowsize",{"_index":28,"name":{"28":{}},"parent":{}}],["sethttp2keepalivetimeout",{"_index":30,"name":{"30":{}},"parent":{}}],["sethttp2maxpoolsize",{"_index":32,"name":{"32":{}},"parent":{}}],["sethttp2multiplexinglimit",{"_index":34,"name":{"34":{}},"parent":{}}],["setidletimeout",{"_index":36,"name":{"36":{}},"parent":{}}],["setidletimeoutunit",{"_index":38,"name":{"38":{}},"parent":{}}],["setinitialsettings",{"_index":40,"name":{"40":{}},"parent":{}}],["setjdksslengineoptions",{"_index":42,"name":{"42":{}},"parent":{}}],["setkeepalive",{"_index":44,"name":{"44":{}},"parent":{}}],["setkeepalivetimeout",{"_index":46,"name":{"46":{}},"parent":{}}],["setkeystoreoptions",{"_index":48,"name":{"48":{}},"parent":{}}],["setlocaladdress",{"_index":50,"name":{"50":{}},"parent":{}}],["setlogactivity",{"_index":52,"name":{"52":{}},"parent":{}}],["setmaxchunksize",{"_index":54,"name":{"54":{}},"parent":{}}],["setmaxheadersize",{"_index":56,"name":{"56":{}},"parent":{}}],["setmaxinitiallinelength",{"_index":58,"name":{"58":{}},"parent":{}}],["setmaxpoolsize",{"_index":60,"name":{"60":{}},"parent":{}}],["setmaxredirects",{"_index":62,"name":{"62":{}},"parent":{}}],["setmaxwaitqueuesize",{"_index":64,"name":{"64":{}},"parent":{}}],["setmaxwebsocketframesize",{"_index":66,"name":{"66":{},"70":{}},"parent":{}}],["setmaxwebsocketmessagesize",{"_index":68,"name":{"68":{},"72":{}},"parent":{}}],["setmetricsname",{"_index":70,"name":{"74":{}},"parent":{}}],["setopensslengineoptions",{"_index":72,"name":{"76":{}},"parent":{}}],["setpemkeycertoptions",{"_index":74,"name":{"78":{}},"parent":{}}],["setpemtrustoptions",{"_index":76,"name":{"80":{}},"parent":{}}],["setpfxkeycertoptions",{"_index":78,"name":{"82":{}},"parent":{}}],["setpfxtrustoptions",{"_index":80,"name":{"84":{}},"parent":{}}],["setpipelining",{"_index":82,"name":{"86":{}},"parent":{}}],["setpipelininglimit",{"_index":84,"name":{"88":{}},"parent":{}}],["setpoolcleanerperiod",{"_index":86,"name":{"90":{}},"parent":{}}],["setprotocolversion",{"_index":88,"name":{"92":{}},"parent":{}}],["setproxyoptions",{"_index":90,"name":{"94":{}},"parent":{}}],["setqueryparam",{"_index":171,"name":{"185":{}},"parent":{}}],["setreceivebuffersize",{"_index":92,"name":{"96":{}},"parent":{}}],["setreuseaddress",{"_index":94,"name":{"98":{}},"parent":{}}],["setreuseport",{"_index":96,"name":{"100":{}},"parent":{}}],["setsendbuffersize",{"_index":98,"name":{"102":{}},"parent":{}}],["setsendunmaskedframes",{"_index":100,"name":{"104":{}},"parent":{}}],["setsolinger",{"_index":102,"name":{"106":{}},"parent":{}}],["setssl",{"_index":104,"name":{"108":{}},"parent":{}}],["setsslhandshaketimeout",{"_index":106,"name":{"110":{}},"parent":{}}],["setsslhandshaketimeoutunit",{"_index":108,"name":{"112":{}},"parent":{}}],["settcpcork",{"_index":110,"name":{"114":{}},"parent":{}}],["settcpfastopen",{"_index":112,"name":{"116":{}},"parent":{}}],["settcpkeepalive",{"_index":114,"name":{"118":{}},"parent":{}}],["settcpnodelay",{"_index":116,"name":{"120":{}},"parent":{}}],["settcpquickack",{"_index":118,"name":{"122":{}},"parent":{}}],["settrafficclass",{"_index":120,"name":{"124":{}},"parent":{}}],["settrustall",{"_index":122,"name":{"126":{}},"parent":{}}],["settruststoreoptions",{"_index":124,"name":{"128":{}},"parent":{}}],["settryusecompression",{"_index":126,"name":{"130":{}},"parent":{}}],["settryuseperframewebsocketcompression",{"_index":127,"name":{"131":{},"132":{}},"parent":{}}],["settryusepermessagewebsocketcompression",{"_index":129,"name":{"134":{},"136":{}},"parent":{}}],["setusealpn",{"_index":132,"name":{"140":{}},"parent":{}}],["setusepooledbuffers",{"_index":134,"name":{"142":{}},"parent":{}}],["setuseragent",{"_index":136,"name":{"144":{}},"parent":{}}],["setuseragentenabled",{"_index":138,"name":{"146":{}},"parent":{}}],["setverifyhost",{"_index":140,"name":{"148":{}},"parent":{}}],["setwebsocketclosingtimeout",{"_index":142,"name":{"150":{}},"parent":{}}],["setwebsocketcompressionallowclientnocontext",{"_index":144,"name":{"152":{},"158":{}},"parent":{}}],["setwebsocketcompressionlevel",{"_index":146,"name":{"154":{},"160":{}},"parent":{}}],["setwebsocketcompressionrequestservernocontext",{"_index":148,"name":{"156":{},"162":{}},"parent":{}}],["ssl",{"_index":168,"name":{"182":{}},"parent":{}}],["status",{"_index":263,"name":{"278":{}},"parent":{}}],["statuscode",{"_index":186,"name":{"200":{}},"parent":{}}],["statusmessage",{"_index":187,"name":{"201":{}},"parent":{}}],["succeeded",{"_index":268,"name":{"285":{}},"parent":{}}],["success",{"_index":266,"name":{"283":{}},"parent":{}}],["timeout",{"_index":169,"name":{"183":{}},"parent":{}}],["trailers",{"_index":189,"name":{"204":{}},"parent":{}}],["uri",{"_index":162,"name":{"176":{}},"parent":{}}],["version",{"_index":185,"name":{"199":{}},"parent":{}}],["virtualhost",{"_index":161,"name":{"175":{}},"parent":{}}],["webclient",{"_index":271,"name":{"288":{}},"parent":{"289":{},"290":{},"291":{},"292":{},"293":{},"294":{},"295":{},"296":{},"297":{},"298":{},"299":{},"300":{},"301":{},"302":{},"303":{},"304":{},"305":{},"306":{},"307":{}}}],["webclientoptions",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{}}}],["wrap",{"_index":272,"name":{"290":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/web-client/classes/webclientoptions.html b/docs/.vuepress/public/@vertx/web-client/classes/webclientoptions.html index e82e6c0ac..18fc59ccc 100644 --- a/docs/.vuepress/public/@vertx/web-client/classes/webclientoptions.html +++ b/docs/.vuepress/public/@vertx/web-client/classes/webclientoptions.html @@ -142,6 +142,7 @@

    Methods

  • getTryWebSocketDeflateFrameCompression
  • getTryWebsocketDeflateFrameCompression
  • getUserAgent
  • +
  • getWebSocketClosingTimeout
  • getWebSocketCompressionAllowClientNoContext
  • getWebSocketCompressionLevel
  • getWebSocketCompressionRequestServerNoContext
  • @@ -238,6 +239,7 @@

    Methods

  • setUserAgent
  • setUserAgentEnabled
  • setVerifyHost
  • +
  • setWebSocketClosingTimeout
  • setWebSocketCompressionAllowClientNoContext
  • setWebSocketCompressionLevel
  • setWebSocketCompressionRequestServerNoContext
  • @@ -1284,6 +1286,23 @@

    Returns string +
    + +

    getWebSocketClosingTimeout

    +
      +
    • getWebSocketClosingTimeout(): number
    • +
    +
      +
    • + +

      Returns number

      +
    • +
    +

    getWebSocketCompressionAllowClientNoContext

    @@ -1294,7 +1313,7 @@

    getWebSocketCompressionAllowClientNoContext

    Returns boolean

    @@ -1311,7 +1330,7 @@

    getWebSocketCompressionLevel

  • Returns number

    @@ -1328,7 +1347,7 @@

    getWebSocketCompressionRequestServerNoContext<
  • Returns boolean

    @@ -1345,7 +1364,7 @@

    getWebsocketCompressionAllowClientNoContext

  • Returns boolean

    @@ -1362,7 +1381,7 @@

    getWebsocketCompressionLevel

  • Returns number

    @@ -1379,7 +1398,7 @@

    getWebsocketCompressionRequestServerNoContext

  • Returns boolean

    @@ -3361,6 +3380,29 @@

    Returns + +

    setWebSocketClosingTimeout

    +
      +
    • setWebSocketClosingTimeout(webSocketClosingTimeout: number): WebClientOptions
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        webSocketClosingTimeout: number
        +
      • +
      +

      Returns WebClientOptions

      +
    • +
    +
  • setWebSocketCompressionAllowClientNoContext

    @@ -3371,7 +3413,7 @@

    setWebSocketCompressionAllowClientNoContext

    Parameters

    @@ -3394,7 +3436,7 @@

    setWebSocketCompressionLevel

  • Parameters

    @@ -3417,7 +3459,7 @@

    setWebSocketCompressionRequestServerNoContext<
  • Parameters

    @@ -3440,7 +3482,7 @@

    setWebsocketCompressionAllowClientNoContext

  • Parameters

    @@ -3463,7 +3505,7 @@

    setWebsocketCompressionLevel

  • Parameters

    @@ -3486,7 +3528,7 @@

    setWebsocketCompressionRequestServerNoContext

  • Parameters

    @@ -3708,6 +3750,9 @@

    Returns getUserAgent

  • +
  • + getWebSocketClosingTimeout +
  • getWebSocketCompressionAllowClientNoContext
  • @@ -3996,6 +4041,9 @@

    Returns setVerifyHost

  • +
  • + setWebSocketClosingTimeout +
  • setWebSocketCompressionAllowClientNoContext
  • diff --git a/docs/.vuepress/public/@vertx/web-client/index.html b/docs/.vuepress/public/@vertx/web-client/index.html index bb38310f7..a61452321 100644 --- a/docs/.vuepress/public/@vertx/web-client/index.html +++ b/docs/.vuepress/public/@vertx/web-client/index.html @@ -63,7 +63,8 @@

    @vertx/web-client

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/web-common/assets/js/search.json b/docs/.vuepress/public/@vertx/web-common/assets/js/search.json index dccb8cc07..c43544c73 100644 --- a/docs/.vuepress/public/@vertx/web-common/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/web-common/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"128":"Class","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"BodyCodec","url":"classes/bodycodec.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1,"kind":2048,"name":"string","url":"classes/bodycodec.html#string","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":2,"kind":2048,"name":"buffer","url":"classes/bodycodec.html#buffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":3,"kind":2048,"name":"jsonObject","url":"classes/bodycodec.html#jsonobject","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":4,"kind":2048,"name":"jsonArray","url":"classes/bodycodec.html#jsonarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":5,"kind":2048,"name":"json","url":"classes/bodycodec.html#json","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"BodyCodec"},{"id":6,"kind":2048,"name":"none","url":"classes/bodycodec.html#none","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":7,"kind":2048,"name":"create","url":"classes/bodycodec.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"BodyCodec"},{"id":8,"kind":2048,"name":"pipe","url":"classes/bodycodec.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":9,"kind":128,"name":"FormDataPart","url":"classes/formdatapart.html","classes":"tsd-kind-class"},{"id":10,"kind":2048,"name":"name","url":"classes/formdatapart.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":11,"kind":2048,"name":"isAttribute","url":"classes/formdatapart.html#isattribute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":12,"kind":2048,"name":"isFileUpload","url":"classes/formdatapart.html#isfileupload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":13,"kind":2048,"name":"value","url":"classes/formdatapart.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":14,"kind":2048,"name":"filename","url":"classes/formdatapart.html#filename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":15,"kind":2048,"name":"pathname","url":"classes/formdatapart.html#pathname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":16,"kind":2048,"name":"mediaType","url":"classes/formdatapart.html#mediatype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":17,"kind":2048,"name":"isText","url":"classes/formdatapart.html#istext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":18,"kind":128,"name":"MultipartForm","url":"classes/multipartform.html","classes":"tsd-kind-class"},{"id":19,"kind":2048,"name":"create","url":"classes/multipartform.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MultipartForm"},{"id":20,"kind":2048,"name":"attribute","url":"classes/multipartform.html#attribute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultipartForm"},{"id":21,"kind":2048,"name":"textFileUpload","url":"classes/multipartform.html#textfileupload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultipartForm"},{"id":22,"kind":2048,"name":"binaryFileUpload","url":"classes/multipartform.html#binaryfileupload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultipartForm"},{"id":23,"kind":128,"name":"TemplateEngine","url":"classes/templateengine.html","classes":"tsd-kind-class"},{"id":24,"kind":2048,"name":"render","url":"classes/templateengine.html#render","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TemplateEngine"},{"id":25,"kind":2048,"name":"isCachingEnabled","url":"classes/templateengine.html#iscachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TemplateEngine"},{"id":26,"kind":128,"name":"WebEnvironment","url":"classes/webenvironment.html","classes":"tsd-kind-class"},{"id":27,"kind":1024,"name":"SYSTEM_PROPERTY_NAME","url":"classes/webenvironment.html#system_property_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"},{"id":28,"kind":1024,"name":"ENV_VARIABLE_NAME","url":"classes/webenvironment.html#env_variable_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"},{"id":29,"kind":2048,"name":"development","url":"classes/webenvironment.html#development","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"},{"id":30,"kind":2048,"name":"mode","url":"classes/webenvironment.html#mode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,12.144]],["parent/0",[]],["name/1",[1,30.603]],["parent/1",[0,1.126]],["name/2",[2,30.603]],["parent/2",[0,1.126]],["name/3",[3,30.603]],["parent/3",[0,1.126]],["name/4",[4,30.603]],["parent/4",[0,1.126]],["name/5",[5,30.603]],["parent/5",[0,1.126]],["name/6",[6,30.603]],["parent/6",[0,1.126]],["name/7",[7,25.494]],["parent/7",[0,1.126]],["name/8",[8,30.603]],["parent/8",[0,1.126]],["name/9",[9,12.144]],["parent/9",[]],["name/10",[10,30.603]],["parent/10",[9,1.126]],["name/11",[11,30.603]],["parent/11",[9,1.126]],["name/12",[12,30.603]],["parent/12",[9,1.126]],["name/13",[13,30.603]],["parent/13",[9,1.126]],["name/14",[14,30.603]],["parent/14",[9,1.126]],["name/15",[15,30.603]],["parent/15",[9,1.126]],["name/16",[16,30.603]],["parent/16",[9,1.126]],["name/17",[17,30.603]],["parent/17",[9,1.126]],["name/18",[18,17.61]],["parent/18",[]],["name/19",[7,25.494]],["parent/19",[18,1.633]],["name/20",[19,30.603]],["parent/20",[18,1.633]],["name/21",[20,30.603]],["parent/21",[18,1.633]],["name/22",[21,30.603]],["parent/22",[18,1.633]],["name/23",[22,22.13]],["parent/23",[]],["name/24",[23,30.603]],["parent/24",[22,2.052]],["name/25",[24,30.603]],["parent/25",[22,2.052]],["name/26",[25,17.61]],["parent/26",[]],["name/27",[26,30.603]],["parent/27",[25,1.633]],["name/28",[27,30.603]],["parent/28",[25,1.633]],["name/29",[28,30.603]],["parent/29",[25,1.633]],["name/30",[29,30.603]],["parent/30",[25,1.633]]],"invertedIndex":[["attribute",{"_index":19,"name":{"20":{}},"parent":{}}],["binaryfileupload",{"_index":21,"name":{"22":{}},"parent":{}}],["bodycodec",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{}}}],["buffer",{"_index":2,"name":{"2":{}},"parent":{}}],["create",{"_index":7,"name":{"7":{},"19":{}},"parent":{}}],["development",{"_index":28,"name":{"29":{}},"parent":{}}],["env_variable_name",{"_index":27,"name":{"28":{}},"parent":{}}],["filename",{"_index":14,"name":{"14":{}},"parent":{}}],["formdatapart",{"_index":9,"name":{"9":{}},"parent":{"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{}}}],["isattribute",{"_index":11,"name":{"11":{}},"parent":{}}],["iscachingenabled",{"_index":24,"name":{"25":{}},"parent":{}}],["isfileupload",{"_index":12,"name":{"12":{}},"parent":{}}],["istext",{"_index":17,"name":{"17":{}},"parent":{}}],["json",{"_index":5,"name":{"5":{}},"parent":{}}],["jsonarray",{"_index":4,"name":{"4":{}},"parent":{}}],["jsonobject",{"_index":3,"name":{"3":{}},"parent":{}}],["mediatype",{"_index":16,"name":{"16":{}},"parent":{}}],["mode",{"_index":29,"name":{"30":{}},"parent":{}}],["multipartform",{"_index":18,"name":{"18":{}},"parent":{"19":{},"20":{},"21":{},"22":{}}}],["name",{"_index":10,"name":{"10":{}},"parent":{}}],["none",{"_index":6,"name":{"6":{}},"parent":{}}],["pathname",{"_index":15,"name":{"15":{}},"parent":{}}],["pipe",{"_index":8,"name":{"8":{}},"parent":{}}],["render",{"_index":23,"name":{"24":{}},"parent":{}}],["string",{"_index":1,"name":{"1":{}},"parent":{}}],["system_property_name",{"_index":26,"name":{"27":{}},"parent":{}}],["templateengine",{"_index":22,"name":{"23":{}},"parent":{"24":{},"25":{}}}],["textfileupload",{"_index":20,"name":{"21":{}},"parent":{}}],["value",{"_index":13,"name":{"13":{}},"parent":{}}],["webenvironment",{"_index":25,"name":{"26":{}},"parent":{"27":{},"28":{},"29":{},"30":{}}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"128":"Class","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":128,"name":"BodyCodec","url":"classes/bodycodec.html","classes":"tsd-kind-class tsd-has-type-parameter"},{"id":1,"kind":2048,"name":"string","url":"classes/bodycodec.html#string","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":2,"kind":2048,"name":"buffer","url":"classes/bodycodec.html#buffer","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":3,"kind":2048,"name":"jsonObject","url":"classes/bodycodec.html#jsonobject","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":4,"kind":2048,"name":"jsonArray","url":"classes/bodycodec.html#jsonarray","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":5,"kind":2048,"name":"json","url":"classes/bodycodec.html#json","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"BodyCodec"},{"id":6,"kind":2048,"name":"none","url":"classes/bodycodec.html#none","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":7,"kind":2048,"name":"create","url":"classes/bodycodec.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-static","parent":"BodyCodec"},{"id":8,"kind":2048,"name":"pipe","url":"classes/bodycodec.html#pipe","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"BodyCodec"},{"id":9,"kind":128,"name":"FormDataPart","url":"classes/formdatapart.html","classes":"tsd-kind-class"},{"id":10,"kind":2048,"name":"name","url":"classes/formdatapart.html#name","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":11,"kind":2048,"name":"isAttribute","url":"classes/formdatapart.html#isattribute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":12,"kind":2048,"name":"isFileUpload","url":"classes/formdatapart.html#isfileupload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":13,"kind":2048,"name":"value","url":"classes/formdatapart.html#value","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":14,"kind":2048,"name":"filename","url":"classes/formdatapart.html#filename","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":15,"kind":2048,"name":"pathname","url":"classes/formdatapart.html#pathname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":16,"kind":2048,"name":"content","url":"classes/formdatapart.html#content","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":17,"kind":2048,"name":"mediaType","url":"classes/formdatapart.html#mediatype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":18,"kind":2048,"name":"isText","url":"classes/formdatapart.html#istext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FormDataPart"},{"id":19,"kind":128,"name":"MultipartForm","url":"classes/multipartform.html","classes":"tsd-kind-class"},{"id":20,"kind":2048,"name":"create","url":"classes/multipartform.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"MultipartForm"},{"id":21,"kind":2048,"name":"attribute","url":"classes/multipartform.html#attribute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultipartForm"},{"id":22,"kind":2048,"name":"textFileUpload","url":"classes/multipartform.html#textfileupload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultipartForm"},{"id":23,"kind":2048,"name":"binaryFileUpload","url":"classes/multipartform.html#binaryfileupload","classes":"tsd-kind-method tsd-parent-kind-class","parent":"MultipartForm"},{"id":24,"kind":128,"name":"TemplateEngine","url":"classes/templateengine.html","classes":"tsd-kind-class"},{"id":25,"kind":2048,"name":"render","url":"classes/templateengine.html#render","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TemplateEngine"},{"id":26,"kind":2048,"name":"isCachingEnabled","url":"classes/templateengine.html#iscachingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"TemplateEngine"},{"id":27,"kind":128,"name":"WebEnvironment","url":"classes/webenvironment.html","classes":"tsd-kind-class"},{"id":28,"kind":1024,"name":"SYSTEM_PROPERTY_NAME","url":"classes/webenvironment.html#system_property_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"},{"id":29,"kind":1024,"name":"ENV_VARIABLE_NAME","url":"classes/webenvironment.html#env_variable_name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"},{"id":30,"kind":2048,"name":"development","url":"classes/webenvironment.html#development","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"},{"id":31,"kind":2048,"name":"mode","url":"classes/webenvironment.html#mode","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"WebEnvironment"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,12.452]],["parent/0",[]],["name/1",[1,30.91]],["parent/1",[0,1.158]],["name/2",[2,30.91]],["parent/2",[0,1.158]],["name/3",[3,30.91]],["parent/3",[0,1.158]],["name/4",[4,30.91]],["parent/4",[0,1.158]],["name/5",[5,30.91]],["parent/5",[0,1.158]],["name/6",[6,30.91]],["parent/6",[0,1.158]],["name/7",[7,25.802]],["parent/7",[0,1.158]],["name/8",[8,30.91]],["parent/8",[0,1.158]],["name/9",[9,11.451]],["parent/9",[]],["name/10",[10,30.91]],["parent/10",[9,1.064]],["name/11",[11,30.91]],["parent/11",[9,1.064]],["name/12",[12,30.91]],["parent/12",[9,1.064]],["name/13",[13,30.91]],["parent/13",[9,1.064]],["name/14",[14,30.91]],["parent/14",[9,1.064]],["name/15",[15,30.91]],["parent/15",[9,1.064]],["name/16",[16,30.91]],["parent/16",[9,1.064]],["name/17",[17,30.91]],["parent/17",[9,1.064]],["name/18",[18,30.91]],["parent/18",[9,1.064]],["name/19",[19,17.918]],["parent/19",[]],["name/20",[7,25.802]],["parent/20",[19,1.666]],["name/21",[20,30.91]],["parent/21",[19,1.666]],["name/22",[21,30.91]],["parent/22",[19,1.666]],["name/23",[22,30.91]],["parent/23",[19,1.666]],["name/24",[23,22.437]],["parent/24",[]],["name/25",[24,30.91]],["parent/25",[23,2.086]],["name/26",[25,30.91]],["parent/26",[23,2.086]],["name/27",[26,17.918]],["parent/27",[]],["name/28",[27,30.91]],["parent/28",[26,1.666]],["name/29",[28,30.91]],["parent/29",[26,1.666]],["name/30",[29,30.91]],["parent/30",[26,1.666]],["name/31",[30,30.91]],["parent/31",[26,1.666]]],"invertedIndex":[["attribute",{"_index":20,"name":{"21":{}},"parent":{}}],["binaryfileupload",{"_index":22,"name":{"23":{}},"parent":{}}],["bodycodec",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{}}}],["buffer",{"_index":2,"name":{"2":{}},"parent":{}}],["content",{"_index":16,"name":{"16":{}},"parent":{}}],["create",{"_index":7,"name":{"7":{},"20":{}},"parent":{}}],["development",{"_index":29,"name":{"30":{}},"parent":{}}],["env_variable_name",{"_index":28,"name":{"29":{}},"parent":{}}],["filename",{"_index":14,"name":{"14":{}},"parent":{}}],["formdatapart",{"_index":9,"name":{"9":{}},"parent":{"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{}}}],["isattribute",{"_index":11,"name":{"11":{}},"parent":{}}],["iscachingenabled",{"_index":25,"name":{"26":{}},"parent":{}}],["isfileupload",{"_index":12,"name":{"12":{}},"parent":{}}],["istext",{"_index":18,"name":{"18":{}},"parent":{}}],["json",{"_index":5,"name":{"5":{}},"parent":{}}],["jsonarray",{"_index":4,"name":{"4":{}},"parent":{}}],["jsonobject",{"_index":3,"name":{"3":{}},"parent":{}}],["mediatype",{"_index":17,"name":{"17":{}},"parent":{}}],["mode",{"_index":30,"name":{"31":{}},"parent":{}}],["multipartform",{"_index":19,"name":{"19":{}},"parent":{"20":{},"21":{},"22":{},"23":{}}}],["name",{"_index":10,"name":{"10":{}},"parent":{}}],["none",{"_index":6,"name":{"6":{}},"parent":{}}],["pathname",{"_index":15,"name":{"15":{}},"parent":{}}],["pipe",{"_index":8,"name":{"8":{}},"parent":{}}],["render",{"_index":24,"name":{"25":{}},"parent":{}}],["string",{"_index":1,"name":{"1":{}},"parent":{}}],["system_property_name",{"_index":27,"name":{"28":{}},"parent":{}}],["templateengine",{"_index":23,"name":{"24":{}},"parent":{"25":{},"26":{}}}],["textfileupload",{"_index":21,"name":{"22":{}},"parent":{}}],["value",{"_index":13,"name":{"13":{}},"parent":{}}],["webenvironment",{"_index":26,"name":{"27":{}},"parent":{"28":{},"29":{},"30":{},"31":{}}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/web-common/classes/formdatapart.html b/docs/.vuepress/public/@vertx/web-common/classes/formdatapart.html index 1d898998f..e8998c7e1 100644 --- a/docs/.vuepress/public/@vertx/web-common/classes/formdatapart.html +++ b/docs/.vuepress/public/@vertx/web-common/classes/formdatapart.html @@ -86,6 +86,7 @@

    Index

    Methods

    Methods

    +
    + +

    content

    +
      +
    • content(): Buffer
    • +
    +
      +
    • + +

      Returns Buffer

      +
    • +
    +

    filename

    @@ -162,7 +180,7 @@

    isText

  • Returns boolean

    @@ -179,7 +197,7 @@

    mediaType

  • Returns string

    @@ -257,6 +275,9 @@

    Returns string FormDataPart
      +
    • + content +
    • filename
    • diff --git a/docs/.vuepress/public/@vertx/web-common/classes/multipartform.html b/docs/.vuepress/public/@vertx/web-common/classes/multipartform.html index 7dd666e29..59a0fb710 100644 --- a/docs/.vuepress/public/@vertx/web-common/classes/multipartform.html +++ b/docs/.vuepress/public/@vertx/web-common/classes/multipartform.html @@ -107,7 +107,7 @@

      attribute

    • @@ -133,12 +133,13 @@

      Returns
    • binaryFileUpload(name: string, filename: string, pathname: string, mediaType: string): MultipartForm
    • +
    • binaryFileUpload(name: string, filename: string, content: Buffer, mediaType: string): MultipartForm
    • @@ -163,6 +164,34 @@
      mediaType: string

    Returns MultipartForm

  • +
  • + +
    +
    +

    Add a binary file upload form data part.

    +
    +
    +

    Parameters

    +
      +
    • +
      name: string
      +
    • +
    • +
      filename: string
      +
    • +
    • +
      content: Buffer
      +
    • +
    • +
      mediaType: string
      +
    • +
    +

    Returns MultipartForm

    +
  • @@ -170,12 +199,13 @@

    Returns
  • textFileUpload(name: string, filename: string, pathname: string, mediaType: string): MultipartForm
  • +
  • textFileUpload(name: string, filename: string, content: Buffer, mediaType: string): MultipartForm
    • @@ -200,6 +230,34 @@
      mediaType: string

    Returns MultipartForm

  • +
  • + +
    +
    +

    Add a text file upload form data part.

    +
    +
    +

    Parameters

    +
      +
    • +
      name: string
      +
    • +
    • +
      filename: string
      +
    • +
    • +
      content: Buffer
      +
    • +
    • +
      mediaType: string
      +
    • +
    +

    Returns MultipartForm

    +
  • @@ -212,7 +270,7 @@

    Static create

  • Returns MultipartForm

    diff --git a/docs/.vuepress/public/@vertx/web-common/classes/templateengine.html b/docs/.vuepress/public/@vertx/web-common/classes/templateengine.html index a8fcc2e7d..5d3521eac 100644 --- a/docs/.vuepress/public/@vertx/web-common/classes/templateengine.html +++ b/docs/.vuepress/public/@vertx/web-common/classes/templateengine.html @@ -107,7 +107,7 @@

    isCachingEnabled

  • @@ -131,7 +131,7 @@

    render

  • @@ -164,7 +164,7 @@

    Returns void
    diff --git a/docs/.vuepress/public/@vertx/web-common/classes/webenvironment.html b/docs/.vuepress/public/@vertx/web-common/classes/webenvironment.html index 1c7a8adf5..05292236f 100644 --- a/docs/.vuepress/public/@vertx/web-common/classes/webenvironment.html +++ b/docs/.vuepress/public/@vertx/web-common/classes/webenvironment.html @@ -113,7 +113,7 @@

    Static ENV_VARIABLE_NAME: string

  • @@ -123,7 +123,7 @@

    Static SYSTEM_PROPERTY_NAME: string

    @@ -140,7 +140,7 @@

    Static development

  • @@ -162,7 +162,7 @@

    Static mode

  • diff --git a/docs/.vuepress/public/@vertx/web-common/index.html b/docs/.vuepress/public/@vertx/web-common/index.html index ff946b661..dd0557466 100644 --- a/docs/.vuepress/public/@vertx/web-common/index.html +++ b/docs/.vuepress/public/@vertx/web-common/index.html @@ -63,7 +63,8 @@

    @vertx/web-common

    npm (scoped) - npm

    + npm + Security Status

    Generated JavaScript bindings for Eclipse Vert.x.

    Documentation

    diff --git a/docs/.vuepress/public/@vertx/web-graphql/assets/js/search.json b/docs/.vuepress/public/@vertx/web-graphql/assets/js/search.json index 5cf0371fe..506e1f46f 100644 --- a/docs/.vuepress/public/@vertx/web-graphql/assets/js/search.json +++ b/docs/.vuepress/public/@vertx/web-graphql/assets/js/search.json @@ -1 +1 @@ -{"kinds":{"4":"Enumeration","16":"Enumeration member","128":"Class","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":4,"name":"ApolloWSMessageType","url":"enums/apollowsmessagetype.html","classes":"tsd-kind-enum"},{"id":1,"kind":16,"name":"CONNECTION_INIT","url":"enums/apollowsmessagetype.html#connection_init","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":2,"kind":16,"name":"CONNECTION_TERMINATE","url":"enums/apollowsmessagetype.html#connection_terminate","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":3,"kind":16,"name":"START","url":"enums/apollowsmessagetype.html#start","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":4,"kind":16,"name":"STOP","url":"enums/apollowsmessagetype.html#stop","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":5,"kind":16,"name":"CONNECTION_ACK","url":"enums/apollowsmessagetype.html#connection_ack","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":6,"kind":16,"name":"CONNECTION_ERROR","url":"enums/apollowsmessagetype.html#connection_error","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":7,"kind":16,"name":"CONNECTION_KEEP_ALIVE","url":"enums/apollowsmessagetype.html#connection_keep_alive","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":8,"kind":16,"name":"DATA","url":"enums/apollowsmessagetype.html#data","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":9,"kind":16,"name":"ERROR","url":"enums/apollowsmessagetype.html#error","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":10,"kind":16,"name":"COMPLETE","url":"enums/apollowsmessagetype.html#complete","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":11,"kind":128,"name":"ApolloWSOptions","url":"classes/apollowsoptions.html","classes":"tsd-kind-class"},{"id":12,"kind":512,"name":"constructor","url":"classes/apollowsoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ApolloWSOptions"},{"id":13,"kind":2048,"name":"getKeepAlive","url":"classes/apollowsoptions.html#getkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSOptions"},{"id":14,"kind":2048,"name":"setKeepAlive","url":"classes/apollowsoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSOptions"},{"id":15,"kind":128,"name":"GraphQLHandlerOptions","url":"classes/graphqlhandleroptions.html","classes":"tsd-kind-class"},{"id":16,"kind":512,"name":"constructor","url":"classes/graphqlhandleroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphQLHandlerOptions"},{"id":17,"kind":2048,"name":"isRequestBatchingEnabled","url":"classes/graphqlhandleroptions.html#isrequestbatchingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandlerOptions"},{"id":18,"kind":2048,"name":"setRequestBatchingEnabled","url":"classes/graphqlhandleroptions.html#setrequestbatchingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandlerOptions"},{"id":19,"kind":128,"name":"GraphiQLHandlerOptions","url":"classes/graphiqlhandleroptions.html","classes":"tsd-kind-class"},{"id":20,"kind":512,"name":"constructor","url":"classes/graphiqlhandleroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":21,"kind":2048,"name":"isEnabled","url":"classes/graphiqlhandleroptions.html#isenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":22,"kind":2048,"name":"setEnabled","url":"classes/graphiqlhandleroptions.html#setenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":23,"kind":2048,"name":"getGraphQLUri","url":"classes/graphiqlhandleroptions.html#getgraphqluri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":24,"kind":2048,"name":"setGraphQLUri","url":"classes/graphiqlhandleroptions.html#setgraphqluri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":25,"kind":2048,"name":"getHeaders","url":"classes/graphiqlhandleroptions.html#getheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":26,"kind":2048,"name":"setHeaders","url":"classes/graphiqlhandleroptions.html#setheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":27,"kind":2048,"name":"getQuery","url":"classes/graphiqlhandleroptions.html#getquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":28,"kind":2048,"name":"setQuery","url":"classes/graphiqlhandleroptions.html#setquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":29,"kind":2048,"name":"getVariables","url":"classes/graphiqlhandleroptions.html#getvariables","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":30,"kind":2048,"name":"setVariables","url":"classes/graphiqlhandleroptions.html#setvariables","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":31,"kind":128,"name":"GraphQL","url":"classes/graphql.html","classes":"tsd-kind-class"},{"id":32,"kind":1024,"name":"DEFERRED_RESULTS","url":"classes/graphql.html#deferred_results","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"GraphQL"},{"id":33,"kind":512,"name":"constructor","url":"classes/graphql.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphQL"},{"id":34,"kind":2048,"name":"execute","url":"classes/graphql.html#execute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":35,"kind":2048,"name":"transform","url":"classes/graphql.html#transform","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":36,"kind":2048,"name":"newGraphQL","url":"classes/graphql.html#newgraphql","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GraphQL"},{"id":37,"kind":2048,"name":"executeAsync","url":"classes/graphql.html#executeasync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":38,"kind":2048,"name":"wait","url":"classes/graphql.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":39,"kind":2048,"name":"equals","url":"classes/graphql.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":40,"kind":2048,"name":"toString","url":"classes/graphql.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":41,"kind":2048,"name":"hashCode","url":"classes/graphql.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":42,"kind":2048,"name":"getClass","url":"classes/graphql.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":43,"kind":2048,"name":"notify","url":"classes/graphql.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":44,"kind":2048,"name":"notifyAll","url":"classes/graphql.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":45,"kind":128,"name":"GraphQL$Builder","url":"classes/graphql_builder.html","classes":"tsd-kind-class"},{"id":46,"kind":512,"name":"constructor","url":"classes/graphql_builder.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":47,"kind":2048,"name":"build","url":"classes/graphql_builder.html#build","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":48,"kind":2048,"name":"schema","url":"classes/graphql_builder.html#schema","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":49,"kind":2048,"name":"instrumentation","url":"classes/graphql_builder.html#instrumentation","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":50,"kind":2048,"name":"preparsedDocumentProvider","url":"classes/graphql_builder.html#preparseddocumentprovider","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":51,"kind":2048,"name":"valueUnboxer","url":"classes/graphql_builder.html#valueunboxer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":52,"kind":2048,"name":"doNotAddDefaultInstrumentations","url":"classes/graphql_builder.html#donotadddefaultinstrumentations","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":53,"kind":2048,"name":"queryExecutionStrategy","url":"classes/graphql_builder.html#queryexecutionstrategy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":54,"kind":2048,"name":"mutationExecutionStrategy","url":"classes/graphql_builder.html#mutationexecutionstrategy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":55,"kind":2048,"name":"subscriptionExecutionStrategy","url":"classes/graphql_builder.html#subscriptionexecutionstrategy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":56,"kind":2048,"name":"executionIdProvider","url":"classes/graphql_builder.html#executionidprovider","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":57,"kind":2048,"name":"wait","url":"classes/graphql_builder.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":58,"kind":2048,"name":"equals","url":"classes/graphql_builder.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":59,"kind":2048,"name":"toString","url":"classes/graphql_builder.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":60,"kind":2048,"name":"hashCode","url":"classes/graphql_builder.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":61,"kind":2048,"name":"getClass","url":"classes/graphql_builder.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":62,"kind":2048,"name":"notify","url":"classes/graphql_builder.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":63,"kind":2048,"name":"notifyAll","url":"classes/graphql_builder.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":64,"kind":128,"name":"RuntimeWiring","url":"classes/runtimewiring.html","classes":"tsd-kind-class"},{"id":65,"kind":2048,"name":"getFieldVisibility","url":"classes/runtimewiring.html#getfieldvisibility","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":66,"kind":2048,"name":"getCodeRegistry","url":"classes/runtimewiring.html#getcoderegistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":67,"kind":2048,"name":"getScalars","url":"classes/runtimewiring.html#getscalars","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":68,"kind":2048,"name":"newRuntimeWiring","url":"classes/runtimewiring.html#newruntimewiring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"RuntimeWiring"},{"id":69,"kind":2048,"name":"getDataFetcherForType","url":"classes/runtimewiring.html#getdatafetcherfortype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":70,"kind":2048,"name":"getDataFetchers","url":"classes/runtimewiring.html#getdatafetchers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":71,"kind":2048,"name":"getDefaultDataFetcherForType","url":"classes/runtimewiring.html#getdefaultdatafetcherfortype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":72,"kind":2048,"name":"getTypeResolvers","url":"classes/runtimewiring.html#gettyperesolvers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":73,"kind":2048,"name":"getEnumValuesProviders","url":"classes/runtimewiring.html#getenumvaluesproviders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":74,"kind":2048,"name":"getWiringFactory","url":"classes/runtimewiring.html#getwiringfactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":75,"kind":2048,"name":"getRegisteredDirectiveWiring","url":"classes/runtimewiring.html#getregistereddirectivewiring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":76,"kind":2048,"name":"getDirectiveWiring","url":"classes/runtimewiring.html#getdirectivewiring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":77,"kind":2048,"name":"getSchemaGeneratorPostProcessings","url":"classes/runtimewiring.html#getschemageneratorpostprocessings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":78,"kind":2048,"name":"getComparatorRegistry","url":"classes/runtimewiring.html#getcomparatorregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":79,"kind":2048,"name":"wait","url":"classes/runtimewiring.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":80,"kind":2048,"name":"equals","url":"classes/runtimewiring.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":81,"kind":2048,"name":"toString","url":"classes/runtimewiring.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":82,"kind":2048,"name":"hashCode","url":"classes/runtimewiring.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":83,"kind":2048,"name":"getClass","url":"classes/runtimewiring.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":84,"kind":2048,"name":"notify","url":"classes/runtimewiring.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":85,"kind":2048,"name":"notifyAll","url":"classes/runtimewiring.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":86,"kind":128,"name":"RuntimeWiring$Builder","url":"classes/runtimewiring_builder.html","classes":"tsd-kind-class"},{"id":87,"kind":2048,"name":"type","url":"classes/runtimewiring_builder.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":88,"kind":2048,"name":"build","url":"classes/runtimewiring_builder.html#build","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":89,"kind":2048,"name":"transformer","url":"classes/runtimewiring_builder.html#transformer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":90,"kind":2048,"name":"fieldVisibility","url":"classes/runtimewiring_builder.html#fieldvisibility","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":91,"kind":2048,"name":"codeRegistry","url":"classes/runtimewiring_builder.html#coderegistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":92,"kind":2048,"name":"wiringFactory","url":"classes/runtimewiring_builder.html#wiringfactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":93,"kind":2048,"name":"directiveWiring","url":"classes/runtimewiring_builder.html#directivewiring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":94,"kind":2048,"name":"directive","url":"classes/runtimewiring_builder.html#directive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":95,"kind":2048,"name":"comparatorRegistry","url":"classes/runtimewiring_builder.html#comparatorregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":96,"kind":2048,"name":"scalar","url":"classes/runtimewiring_builder.html#scalar","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":97,"kind":2048,"name":"wait","url":"classes/runtimewiring_builder.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":98,"kind":2048,"name":"equals","url":"classes/runtimewiring_builder.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":99,"kind":2048,"name":"toString","url":"classes/runtimewiring_builder.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":100,"kind":2048,"name":"hashCode","url":"classes/runtimewiring_builder.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":101,"kind":2048,"name":"getClass","url":"classes/runtimewiring_builder.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":102,"kind":2048,"name":"notify","url":"classes/runtimewiring_builder.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":103,"kind":2048,"name":"notifyAll","url":"classes/runtimewiring_builder.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":104,"kind":128,"name":"SchemaGenerator","url":"classes/schemagenerator.html","classes":"tsd-kind-class"},{"id":105,"kind":512,"name":"constructor","url":"classes/schemagenerator.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":106,"kind":2048,"name":"makeExecutableSchema","url":"classes/schemagenerator.html#makeexecutableschema","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":107,"kind":2048,"name":"wait","url":"classes/schemagenerator.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":108,"kind":2048,"name":"equals","url":"classes/schemagenerator.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":109,"kind":2048,"name":"toString","url":"classes/schemagenerator.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":110,"kind":2048,"name":"hashCode","url":"classes/schemagenerator.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":111,"kind":2048,"name":"getClass","url":"classes/schemagenerator.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":112,"kind":2048,"name":"notify","url":"classes/schemagenerator.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":113,"kind":2048,"name":"notifyAll","url":"classes/schemagenerator.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":114,"kind":128,"name":"SchemaParser","url":"classes/schemaparser.html","classes":"tsd-kind-class"},{"id":115,"kind":512,"name":"constructor","url":"classes/schemaparser.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SchemaParser"},{"id":116,"kind":2048,"name":"buildRegistry","url":"classes/schemaparser.html#buildregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":117,"kind":2048,"name":"parseImpl","url":"classes/schemaparser.html#parseimpl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":118,"kind":2048,"name":"parse","url":"classes/schemaparser.html#parse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":119,"kind":2048,"name":"wait","url":"classes/schemaparser.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":120,"kind":2048,"name":"equals","url":"classes/schemaparser.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":121,"kind":2048,"name":"toString","url":"classes/schemaparser.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":122,"kind":2048,"name":"hashCode","url":"classes/schemaparser.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":123,"kind":2048,"name":"getClass","url":"classes/schemaparser.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":124,"kind":2048,"name":"notify","url":"classes/schemaparser.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":125,"kind":2048,"name":"notifyAll","url":"classes/schemaparser.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":126,"kind":128,"name":"ApolloWSHandler","url":"classes/apollowshandler.html","classes":"tsd-kind-class"},{"id":127,"kind":2048,"name":"handle","url":"classes/apollowshandler.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":128,"kind":2048,"name":"connectionHandler","url":"classes/apollowshandler.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":129,"kind":2048,"name":"messageHandler","url":"classes/apollowshandler.html#messagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":130,"kind":2048,"name":"endHandler","url":"classes/apollowshandler.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":131,"kind":2048,"name":"queryContext","url":"classes/apollowshandler.html#querycontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":132,"kind":2048,"name":"create","url":"classes/apollowshandler.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ApolloWSHandler"},{"id":133,"kind":2048,"name":"dataLoaderRegistry","url":"classes/apollowshandler.html#dataloaderregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":134,"kind":2048,"name":"locale","url":"classes/apollowshandler.html#locale","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":135,"kind":128,"name":"ApolloWSMessage","url":"classes/apollowsmessage.html","classes":"tsd-kind-class"},{"id":136,"kind":2048,"name":"serverWebSocket","url":"classes/apollowsmessage.html#serverwebsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSMessage"},{"id":137,"kind":2048,"name":"type","url":"classes/apollowsmessage.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSMessage"},{"id":138,"kind":2048,"name":"content","url":"classes/apollowsmessage.html#content","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSMessage"},{"id":139,"kind":128,"name":"GraphQLHandler","url":"classes/graphqlhandler.html","classes":"tsd-kind-class"},{"id":140,"kind":2048,"name":"handle","url":"classes/graphqlhandler.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":141,"kind":2048,"name":"queryContext","url":"classes/graphqlhandler.html#querycontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":142,"kind":2048,"name":"create","url":"classes/graphqlhandler.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GraphQLHandler"},{"id":143,"kind":2048,"name":"dataLoaderRegistry","url":"classes/graphqlhandler.html#dataloaderregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":144,"kind":2048,"name":"locale","url":"classes/graphqlhandler.html#locale","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":145,"kind":128,"name":"GraphiQLHandler","url":"classes/graphiqlhandler.html","classes":"tsd-kind-class"},{"id":146,"kind":2048,"name":"handle","url":"classes/graphiqlhandler.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandler"},{"id":147,"kind":2048,"name":"create","url":"classes/graphiqlhandler.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GraphiQLHandler"},{"id":148,"kind":2048,"name":"graphiQLRequestHeaders","url":"classes/graphiqlhandler.html#graphiqlrequestheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandler"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,25.683]],["parent/0",[]],["name/1",[1,46.052]],["parent/1",[0,2.464]],["name/2",[2,46.052]],["parent/2",[0,2.464]],["name/3",[3,46.052]],["parent/3",[0,2.464]],["name/4",[4,46.052]],["parent/4",[0,2.464]],["name/5",[5,46.052]],["parent/5",[0,2.464]],["name/6",[6,46.052]],["parent/6",[0,2.464]],["name/7",[7,46.052]],["parent/7",[0,2.464]],["name/8",[8,46.052]],["parent/8",[0,2.464]],["name/9",[9,46.052]],["parent/9",[0,2.464]],["name/10",[10,46.052]],["parent/10",[0,2.464]],["name/11",[11,35.066]],["parent/11",[]],["name/12",[12,29.957]],["parent/12",[11,3.364]],["name/13",[13,46.052]],["parent/13",[11,3.364]],["name/14",[14,46.052]],["parent/14",[11,3.364]],["name/15",[15,35.066]],["parent/15",[]],["name/16",[12,29.957]],["parent/16",[15,3.364]],["name/17",[16,46.052]],["parent/17",[15,3.364]],["name/18",[17,46.052]],["parent/18",[15,3.364]],["name/19",[18,24.849]],["parent/19",[]],["name/20",[12,29.957]],["parent/20",[18,2.384]],["name/21",[19,46.052]],["parent/21",[18,2.384]],["name/22",[20,46.052]],["parent/22",[18,2.384]],["name/23",[21,46.052]],["parent/23",[18,2.384]],["name/24",[22,46.052]],["parent/24",[18,2.384]],["name/25",[23,46.052]],["parent/25",[18,2.384]],["name/26",[24,46.052]],["parent/26",[18,2.384]],["name/27",[25,46.052]],["parent/27",[18,2.384]],["name/28",[26,46.052]],["parent/28",[18,2.384]],["name/29",[27,46.052]],["parent/29",[18,2.384]],["name/30",[28,46.052]],["parent/30",[18,2.384]],["name/31",[29,23.365]],["parent/31",[]],["name/32",[30,46.052]],["parent/32",[29,2.241]],["name/33",[12,29.957]],["parent/33",[29,2.241]],["name/34",[31,46.052]],["parent/34",[29,2.241]],["name/35",[32,46.052]],["parent/35",[29,2.241]],["name/36",[33,46.052]],["parent/36",[29,2.241]],["name/37",[34,46.052]],["parent/37",[29,2.241]],["name/38",[35,31.388]],["parent/38",[29,2.241]],["name/39",[36,31.388]],["parent/39",[29,2.241]],["name/40",[37,31.388]],["parent/40",[29,2.241]],["name/41",[38,31.388]],["parent/41",[29,2.241]],["name/42",[39,31.388]],["parent/42",[29,2.241]],["name/43",[40,31.388]],["parent/43",[29,2.241]],["name/44",[41,31.388]],["parent/44",[29,2.241]],["name/45",[42,20.402]],["parent/45",[]],["name/46",[12,29.957]],["parent/46",[42,1.957]],["name/47",[43,40.943]],["parent/47",[42,1.957]],["name/48",[44,46.052]],["parent/48",[42,1.957]],["name/49",[45,46.052]],["parent/49",[42,1.957]],["name/50",[46,46.052]],["parent/50",[42,1.957]],["name/51",[47,46.052]],["parent/51",[42,1.957]],["name/52",[48,46.052]],["parent/52",[42,1.957]],["name/53",[49,46.052]],["parent/53",[42,1.957]],["name/54",[50,46.052]],["parent/54",[42,1.957]],["name/55",[51,46.052]],["parent/55",[42,1.957]],["name/56",[52,46.052]],["parent/56",[42,1.957]],["name/57",[35,31.388]],["parent/57",[42,1.957]],["name/58",[36,31.388]],["parent/58",[42,1.957]],["name/59",[37,31.388]],["parent/59",[42,1.957]],["name/60",[38,31.388]],["parent/60",[42,1.957]],["name/61",[39,31.388]],["parent/61",[42,1.957]],["name/62",[40,31.388]],["parent/62",[42,1.957]],["name/63",[41,31.388]],["parent/63",[42,1.957]],["name/64",[53,18.971]],["parent/64",[]],["name/65",[54,46.052]],["parent/65",[53,1.82]],["name/66",[55,46.052]],["parent/66",[53,1.82]],["name/67",[56,46.052]],["parent/67",[53,1.82]],["name/68",[57,46.052]],["parent/68",[53,1.82]],["name/69",[58,46.052]],["parent/69",[53,1.82]],["name/70",[59,46.052]],["parent/70",[53,1.82]],["name/71",[60,46.052]],["parent/71",[53,1.82]],["name/72",[61,46.052]],["parent/72",[53,1.82]],["name/73",[62,46.052]],["parent/73",[53,1.82]],["name/74",[63,46.052]],["parent/74",[53,1.82]],["name/75",[64,46.052]],["parent/75",[53,1.82]],["name/76",[65,46.052]],["parent/76",[53,1.82]],["name/77",[66,46.052]],["parent/77",[53,1.82]],["name/78",[67,46.052]],["parent/78",[53,1.82]],["name/79",[35,31.388]],["parent/79",[53,1.82]],["name/80",[36,31.388]],["parent/80",[53,1.82]],["name/81",[37,31.388]],["parent/81",[53,1.82]],["name/82",[38,31.388]],["parent/82",[53,1.82]],["name/83",[39,31.388]],["parent/83",[53,1.82]],["name/84",[40,31.388]],["parent/84",[53,1.82]],["name/85",[41,31.388]],["parent/85",[53,1.82]],["name/86",[68,20.929]],["parent/86",[]],["name/87",[69,40.943]],["parent/87",[68,2.008]],["name/88",[43,40.943]],["parent/88",[68,2.008]],["name/89",[70,46.052]],["parent/89",[68,2.008]],["name/90",[71,46.052]],["parent/90",[68,2.008]],["name/91",[72,46.052]],["parent/91",[68,2.008]],["name/92",[73,46.052]],["parent/92",[68,2.008]],["name/93",[74,46.052]],["parent/93",[68,2.008]],["name/94",[75,46.052]],["parent/94",[68,2.008]],["name/95",[76,46.052]],["parent/95",[68,2.008]],["name/96",[77,46.052]],["parent/96",[68,2.008]],["name/97",[35,31.388]],["parent/97",[68,2.008]],["name/98",[36,31.388]],["parent/98",[68,2.008]],["name/99",[37,31.388]],["parent/99",[68,2.008]],["name/100",[38,31.388]],["parent/100",[68,2.008]],["name/101",[39,31.388]],["parent/101",[68,2.008]],["name/102",[40,31.388]],["parent/102",[68,2.008]],["name/103",[41,31.388]],["parent/103",[68,2.008]],["name/104",[78,26.593]],["parent/104",[]],["name/105",[12,29.957]],["parent/105",[78,2.551]],["name/106",[79,46.052]],["parent/106",[78,2.551]],["name/107",[35,31.388]],["parent/107",[78,2.551]],["name/108",[36,31.388]],["parent/108",[78,2.551]],["name/109",[37,31.388]],["parent/109",[78,2.551]],["name/110",[38,31.388]],["parent/110",[78,2.551]],["name/111",[39,31.388]],["parent/111",[78,2.551]],["name/112",[40,31.388]],["parent/112",[78,2.551]],["name/113",[41,31.388]],["parent/113",[78,2.551]],["name/114",[80,24.849]],["parent/114",[]],["name/115",[12,29.957]],["parent/115",[80,2.384]],["name/116",[81,46.052]],["parent/116",[80,2.384]],["name/117",[82,46.052]],["parent/117",[80,2.384]],["name/118",[83,46.052]],["parent/118",[80,2.384]],["name/119",[35,31.388]],["parent/119",[80,2.384]],["name/120",[36,31.388]],["parent/120",[80,2.384]],["name/121",[37,31.388]],["parent/121",[80,2.384]],["name/122",[38,31.388]],["parent/122",[80,2.384]],["name/123",[39,31.388]],["parent/123",[80,2.384]],["name/124",[40,31.388]],["parent/124",[80,2.384]],["name/125",[41,31.388]],["parent/125",[80,2.384]],["name/126",[84,27.593]],["parent/126",[]],["name/127",[85,37.579]],["parent/127",[84,2.647]],["name/128",[86,46.052]],["parent/128",[84,2.647]],["name/129",[87,46.052]],["parent/129",[84,2.647]],["name/130",[88,46.052]],["parent/130",[84,2.647]],["name/131",[89,40.943]],["parent/131",[84,2.647]],["name/132",[90,37.579]],["parent/132",[84,2.647]],["name/133",[91,40.943]],["parent/133",[84,2.647]],["name/134",[92,40.943]],["parent/134",[84,2.647]],["name/135",[93,35.066]],["parent/135",[]],["name/136",[94,46.052]],["parent/136",[93,3.364]],["name/137",[69,40.943]],["parent/137",[93,3.364]],["name/138",[95,46.052]],["parent/138",[93,3.364]],["name/139",[96,31.388]],["parent/139",[]],["name/140",[85,37.579]],["parent/140",[96,3.011]],["name/141",[89,40.943]],["parent/141",[96,3.011]],["name/142",[90,37.579]],["parent/142",[96,3.011]],["name/143",[91,40.943]],["parent/143",[96,3.011]],["name/144",[92,40.943]],["parent/144",[96,3.011]],["name/145",[97,35.066]],["parent/145",[]],["name/146",[85,37.579]],["parent/146",[97,3.364]],["name/147",[90,37.579]],["parent/147",[97,3.364]],["name/148",[98,46.052]],["parent/148",[97,3.364]]],"invertedIndex":[["apollowshandler",{"_index":84,"name":{"126":{}},"parent":{"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{}}}],["apollowsmessage",{"_index":93,"name":{"135":{}},"parent":{"136":{},"137":{},"138":{}}}],["apollowsmessagetype",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{}}}],["apollowsoptions",{"_index":11,"name":{"11":{}},"parent":{"12":{},"13":{},"14":{}}}],["build",{"_index":43,"name":{"47":{},"88":{}},"parent":{}}],["buildregistry",{"_index":81,"name":{"116":{}},"parent":{}}],["coderegistry",{"_index":72,"name":{"91":{}},"parent":{}}],["comparatorregistry",{"_index":76,"name":{"95":{}},"parent":{}}],["complete",{"_index":10,"name":{"10":{}},"parent":{}}],["connection_ack",{"_index":5,"name":{"5":{}},"parent":{}}],["connection_error",{"_index":6,"name":{"6":{}},"parent":{}}],["connection_init",{"_index":1,"name":{"1":{}},"parent":{}}],["connection_keep_alive",{"_index":7,"name":{"7":{}},"parent":{}}],["connection_terminate",{"_index":2,"name":{"2":{}},"parent":{}}],["connectionhandler",{"_index":86,"name":{"128":{}},"parent":{}}],["constructor",{"_index":12,"name":{"12":{},"16":{},"20":{},"33":{},"46":{},"105":{},"115":{}},"parent":{}}],["content",{"_index":95,"name":{"138":{}},"parent":{}}],["create",{"_index":90,"name":{"132":{},"142":{},"147":{}},"parent":{}}],["data",{"_index":8,"name":{"8":{}},"parent":{}}],["dataloaderregistry",{"_index":91,"name":{"133":{},"143":{}},"parent":{}}],["deferred_results",{"_index":30,"name":{"32":{}},"parent":{}}],["directive",{"_index":75,"name":{"94":{}},"parent":{}}],["directivewiring",{"_index":74,"name":{"93":{}},"parent":{}}],["donotadddefaultinstrumentations",{"_index":48,"name":{"52":{}},"parent":{}}],["endhandler",{"_index":88,"name":{"130":{}},"parent":{}}],["equals",{"_index":36,"name":{"39":{},"58":{},"80":{},"98":{},"108":{},"120":{}},"parent":{}}],["error",{"_index":9,"name":{"9":{}},"parent":{}}],["execute",{"_index":31,"name":{"34":{}},"parent":{}}],["executeasync",{"_index":34,"name":{"37":{}},"parent":{}}],["executionidprovider",{"_index":52,"name":{"56":{}},"parent":{}}],["fieldvisibility",{"_index":71,"name":{"90":{}},"parent":{}}],["getclass",{"_index":39,"name":{"42":{},"61":{},"83":{},"101":{},"111":{},"123":{}},"parent":{}}],["getcoderegistry",{"_index":55,"name":{"66":{}},"parent":{}}],["getcomparatorregistry",{"_index":67,"name":{"78":{}},"parent":{}}],["getdatafetcherfortype",{"_index":58,"name":{"69":{}},"parent":{}}],["getdatafetchers",{"_index":59,"name":{"70":{}},"parent":{}}],["getdefaultdatafetcherfortype",{"_index":60,"name":{"71":{}},"parent":{}}],["getdirectivewiring",{"_index":65,"name":{"76":{}},"parent":{}}],["getenumvaluesproviders",{"_index":62,"name":{"73":{}},"parent":{}}],["getfieldvisibility",{"_index":54,"name":{"65":{}},"parent":{}}],["getgraphqluri",{"_index":21,"name":{"23":{}},"parent":{}}],["getheaders",{"_index":23,"name":{"25":{}},"parent":{}}],["getkeepalive",{"_index":13,"name":{"13":{}},"parent":{}}],["getquery",{"_index":25,"name":{"27":{}},"parent":{}}],["getregistereddirectivewiring",{"_index":64,"name":{"75":{}},"parent":{}}],["getscalars",{"_index":56,"name":{"67":{}},"parent":{}}],["getschemageneratorpostprocessings",{"_index":66,"name":{"77":{}},"parent":{}}],["gettyperesolvers",{"_index":61,"name":{"72":{}},"parent":{}}],["getvariables",{"_index":27,"name":{"29":{}},"parent":{}}],["getwiringfactory",{"_index":63,"name":{"74":{}},"parent":{}}],["graphiqlhandler",{"_index":97,"name":{"145":{}},"parent":{"146":{},"147":{},"148":{}}}],["graphiqlhandleroptions",{"_index":18,"name":{"19":{}},"parent":{"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{}}}],["graphiqlrequestheaders",{"_index":98,"name":{"148":{}},"parent":{}}],["graphql",{"_index":29,"name":{"31":{}},"parent":{"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{}}}],["graphql$builder",{"_index":42,"name":{"45":{}},"parent":{"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{}}}],["graphqlhandler",{"_index":96,"name":{"139":{}},"parent":{"140":{},"141":{},"142":{},"143":{},"144":{}}}],["graphqlhandleroptions",{"_index":15,"name":{"15":{}},"parent":{"16":{},"17":{},"18":{}}}],["handle",{"_index":85,"name":{"127":{},"140":{},"146":{}},"parent":{}}],["hashcode",{"_index":38,"name":{"41":{},"60":{},"82":{},"100":{},"110":{},"122":{}},"parent":{}}],["instrumentation",{"_index":45,"name":{"49":{}},"parent":{}}],["isenabled",{"_index":19,"name":{"21":{}},"parent":{}}],["isrequestbatchingenabled",{"_index":16,"name":{"17":{}},"parent":{}}],["locale",{"_index":92,"name":{"134":{},"144":{}},"parent":{}}],["makeexecutableschema",{"_index":79,"name":{"106":{}},"parent":{}}],["messagehandler",{"_index":87,"name":{"129":{}},"parent":{}}],["mutationexecutionstrategy",{"_index":50,"name":{"54":{}},"parent":{}}],["newgraphql",{"_index":33,"name":{"36":{}},"parent":{}}],["newruntimewiring",{"_index":57,"name":{"68":{}},"parent":{}}],["notify",{"_index":40,"name":{"43":{},"62":{},"84":{},"102":{},"112":{},"124":{}},"parent":{}}],["notifyall",{"_index":41,"name":{"44":{},"63":{},"85":{},"103":{},"113":{},"125":{}},"parent":{}}],["parse",{"_index":83,"name":{"118":{}},"parent":{}}],["parseimpl",{"_index":82,"name":{"117":{}},"parent":{}}],["preparseddocumentprovider",{"_index":46,"name":{"50":{}},"parent":{}}],["querycontext",{"_index":89,"name":{"131":{},"141":{}},"parent":{}}],["queryexecutionstrategy",{"_index":49,"name":{"53":{}},"parent":{}}],["runtimewiring",{"_index":53,"name":{"64":{}},"parent":{"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{}}}],["runtimewiring$builder",{"_index":68,"name":{"86":{}},"parent":{"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{}}}],["scalar",{"_index":77,"name":{"96":{}},"parent":{}}],["schema",{"_index":44,"name":{"48":{}},"parent":{}}],["schemagenerator",{"_index":78,"name":{"104":{}},"parent":{"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{}}}],["schemaparser",{"_index":80,"name":{"114":{}},"parent":{"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{}}}],["serverwebsocket",{"_index":94,"name":{"136":{}},"parent":{}}],["setenabled",{"_index":20,"name":{"22":{}},"parent":{}}],["setgraphqluri",{"_index":22,"name":{"24":{}},"parent":{}}],["setheaders",{"_index":24,"name":{"26":{}},"parent":{}}],["setkeepalive",{"_index":14,"name":{"14":{}},"parent":{}}],["setquery",{"_index":26,"name":{"28":{}},"parent":{}}],["setrequestbatchingenabled",{"_index":17,"name":{"18":{}},"parent":{}}],["setvariables",{"_index":28,"name":{"30":{}},"parent":{}}],["start",{"_index":3,"name":{"3":{}},"parent":{}}],["stop",{"_index":4,"name":{"4":{}},"parent":{}}],["subscriptionexecutionstrategy",{"_index":51,"name":{"55":{}},"parent":{}}],["tostring",{"_index":37,"name":{"40":{},"59":{},"81":{},"99":{},"109":{},"121":{}},"parent":{}}],["transform",{"_index":32,"name":{"35":{}},"parent":{}}],["transformer",{"_index":70,"name":{"89":{}},"parent":{}}],["type",{"_index":69,"name":{"87":{},"137":{}},"parent":{}}],["valueunboxer",{"_index":47,"name":{"51":{}},"parent":{}}],["wait",{"_index":35,"name":{"38":{},"57":{},"79":{},"97":{},"107":{},"119":{}},"parent":{}}],["wiringfactory",{"_index":73,"name":{"92":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +{"kinds":{"4":"Enumeration","16":"Enumeration member","128":"Class","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":4,"name":"ApolloWSMessageType","url":"enums/apollowsmessagetype.html","classes":"tsd-kind-enum"},{"id":1,"kind":16,"name":"CONNECTION_INIT","url":"enums/apollowsmessagetype.html#connection_init","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":2,"kind":16,"name":"CONNECTION_TERMINATE","url":"enums/apollowsmessagetype.html#connection_terminate","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":3,"kind":16,"name":"START","url":"enums/apollowsmessagetype.html#start","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":4,"kind":16,"name":"STOP","url":"enums/apollowsmessagetype.html#stop","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":5,"kind":16,"name":"CONNECTION_ACK","url":"enums/apollowsmessagetype.html#connection_ack","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":6,"kind":16,"name":"CONNECTION_ERROR","url":"enums/apollowsmessagetype.html#connection_error","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":7,"kind":16,"name":"CONNECTION_KEEP_ALIVE","url":"enums/apollowsmessagetype.html#connection_keep_alive","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":8,"kind":16,"name":"DATA","url":"enums/apollowsmessagetype.html#data","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":9,"kind":16,"name":"ERROR","url":"enums/apollowsmessagetype.html#error","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":10,"kind":16,"name":"COMPLETE","url":"enums/apollowsmessagetype.html#complete","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"ApolloWSMessageType"},{"id":11,"kind":128,"name":"ApolloWSOptions","url":"classes/apollowsoptions.html","classes":"tsd-kind-class"},{"id":12,"kind":512,"name":"constructor","url":"classes/apollowsoptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ApolloWSOptions"},{"id":13,"kind":2048,"name":"getKeepAlive","url":"classes/apollowsoptions.html#getkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSOptions"},{"id":14,"kind":2048,"name":"setKeepAlive","url":"classes/apollowsoptions.html#setkeepalive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSOptions"},{"id":15,"kind":128,"name":"GraphQLHandlerOptions","url":"classes/graphqlhandleroptions.html","classes":"tsd-kind-class"},{"id":16,"kind":512,"name":"constructor","url":"classes/graphqlhandleroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphQLHandlerOptions"},{"id":17,"kind":2048,"name":"isRequestBatchingEnabled","url":"classes/graphqlhandleroptions.html#isrequestbatchingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandlerOptions"},{"id":18,"kind":2048,"name":"setRequestBatchingEnabled","url":"classes/graphqlhandleroptions.html#setrequestbatchingenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandlerOptions"},{"id":19,"kind":128,"name":"GraphiQLHandlerOptions","url":"classes/graphiqlhandleroptions.html","classes":"tsd-kind-class"},{"id":20,"kind":512,"name":"constructor","url":"classes/graphiqlhandleroptions.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":21,"kind":2048,"name":"isEnabled","url":"classes/graphiqlhandleroptions.html#isenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":22,"kind":2048,"name":"setEnabled","url":"classes/graphiqlhandleroptions.html#setenabled","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":23,"kind":2048,"name":"getGraphQLUri","url":"classes/graphiqlhandleroptions.html#getgraphqluri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":24,"kind":2048,"name":"setGraphQLUri","url":"classes/graphiqlhandleroptions.html#setgraphqluri","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":25,"kind":2048,"name":"getHeaders","url":"classes/graphiqlhandleroptions.html#getheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":26,"kind":2048,"name":"setHeaders","url":"classes/graphiqlhandleroptions.html#setheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":27,"kind":2048,"name":"getQuery","url":"classes/graphiqlhandleroptions.html#getquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":28,"kind":2048,"name":"setQuery","url":"classes/graphiqlhandleroptions.html#setquery","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":29,"kind":2048,"name":"getVariables","url":"classes/graphiqlhandleroptions.html#getvariables","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":30,"kind":2048,"name":"setVariables","url":"classes/graphiqlhandleroptions.html#setvariables","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandlerOptions"},{"id":31,"kind":128,"name":"GraphQL","url":"classes/graphql.html","classes":"tsd-kind-class"},{"id":32,"kind":1024,"name":"DEFERRED_RESULTS","url":"classes/graphql.html#deferred_results","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"GraphQL"},{"id":33,"kind":512,"name":"constructor","url":"classes/graphql.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphQL"},{"id":34,"kind":2048,"name":"execute","url":"classes/graphql.html#execute","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":35,"kind":2048,"name":"transform","url":"classes/graphql.html#transform","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":36,"kind":2048,"name":"executeAsync","url":"classes/graphql.html#executeasync","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":37,"kind":2048,"name":"newGraphQL","url":"classes/graphql.html#newgraphql","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GraphQL"},{"id":38,"kind":2048,"name":"wait","url":"classes/graphql.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":39,"kind":2048,"name":"equals","url":"classes/graphql.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":40,"kind":2048,"name":"toString","url":"classes/graphql.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":41,"kind":2048,"name":"hashCode","url":"classes/graphql.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":42,"kind":2048,"name":"getClass","url":"classes/graphql.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":43,"kind":2048,"name":"notify","url":"classes/graphql.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":44,"kind":2048,"name":"notifyAll","url":"classes/graphql.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL"},{"id":45,"kind":128,"name":"GraphQL$Builder","url":"classes/graphql_builder.html","classes":"tsd-kind-class"},{"id":46,"kind":512,"name":"constructor","url":"classes/graphql_builder.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":47,"kind":2048,"name":"schema","url":"classes/graphql_builder.html#schema","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":48,"kind":2048,"name":"build","url":"classes/graphql_builder.html#build","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":49,"kind":2048,"name":"preparsedDocumentProvider","url":"classes/graphql_builder.html#preparseddocumentprovider","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":50,"kind":2048,"name":"instrumentation","url":"classes/graphql_builder.html#instrumentation","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":51,"kind":2048,"name":"valueUnboxer","url":"classes/graphql_builder.html#valueunboxer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":52,"kind":2048,"name":"doNotAddDefaultInstrumentations","url":"classes/graphql_builder.html#donotadddefaultinstrumentations","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":53,"kind":2048,"name":"queryExecutionStrategy","url":"classes/graphql_builder.html#queryexecutionstrategy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":54,"kind":2048,"name":"mutationExecutionStrategy","url":"classes/graphql_builder.html#mutationexecutionstrategy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":55,"kind":2048,"name":"subscriptionExecutionStrategy","url":"classes/graphql_builder.html#subscriptionexecutionstrategy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":56,"kind":2048,"name":"executionIdProvider","url":"classes/graphql_builder.html#executionidprovider","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":57,"kind":2048,"name":"wait","url":"classes/graphql_builder.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":58,"kind":2048,"name":"equals","url":"classes/graphql_builder.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":59,"kind":2048,"name":"toString","url":"classes/graphql_builder.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":60,"kind":2048,"name":"hashCode","url":"classes/graphql_builder.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":61,"kind":2048,"name":"getClass","url":"classes/graphql_builder.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":62,"kind":2048,"name":"notify","url":"classes/graphql_builder.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":63,"kind":2048,"name":"notifyAll","url":"classes/graphql_builder.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQL$Builder"},{"id":64,"kind":128,"name":"RuntimeWiring","url":"classes/runtimewiring.html","classes":"tsd-kind-class"},{"id":65,"kind":2048,"name":"getFieldVisibility","url":"classes/runtimewiring.html#getfieldvisibility","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":66,"kind":2048,"name":"getCodeRegistry","url":"classes/runtimewiring.html#getcoderegistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":67,"kind":2048,"name":"getDirectiveWiring","url":"classes/runtimewiring.html#getdirectivewiring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":68,"kind":2048,"name":"getSchemaGeneratorPostProcessings","url":"classes/runtimewiring.html#getschemageneratorpostprocessings","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":69,"kind":2048,"name":"getComparatorRegistry","url":"classes/runtimewiring.html#getcomparatorregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":70,"kind":2048,"name":"getScalars","url":"classes/runtimewiring.html#getscalars","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":71,"kind":2048,"name":"newRuntimeWiring","url":"classes/runtimewiring.html#newruntimewiring","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"RuntimeWiring"},{"id":72,"kind":2048,"name":"getDataFetchers","url":"classes/runtimewiring.html#getdatafetchers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":73,"kind":2048,"name":"getDataFetcherForType","url":"classes/runtimewiring.html#getdatafetcherfortype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":74,"kind":2048,"name":"getDefaultDataFetcherForType","url":"classes/runtimewiring.html#getdefaultdatafetcherfortype","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":75,"kind":2048,"name":"getTypeResolvers","url":"classes/runtimewiring.html#gettyperesolvers","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":76,"kind":2048,"name":"getEnumValuesProviders","url":"classes/runtimewiring.html#getenumvaluesproviders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":77,"kind":2048,"name":"getWiringFactory","url":"classes/runtimewiring.html#getwiringfactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":78,"kind":2048,"name":"getRegisteredDirectiveWiring","url":"classes/runtimewiring.html#getregistereddirectivewiring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":79,"kind":2048,"name":"wait","url":"classes/runtimewiring.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":80,"kind":2048,"name":"equals","url":"classes/runtimewiring.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":81,"kind":2048,"name":"toString","url":"classes/runtimewiring.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":82,"kind":2048,"name":"hashCode","url":"classes/runtimewiring.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":83,"kind":2048,"name":"getClass","url":"classes/runtimewiring.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":84,"kind":2048,"name":"notify","url":"classes/runtimewiring.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":85,"kind":2048,"name":"notifyAll","url":"classes/runtimewiring.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring"},{"id":86,"kind":128,"name":"RuntimeWiring$Builder","url":"classes/runtimewiring_builder.html","classes":"tsd-kind-class"},{"id":87,"kind":2048,"name":"type","url":"classes/runtimewiring_builder.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":88,"kind":2048,"name":"build","url":"classes/runtimewiring_builder.html#build","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":89,"kind":2048,"name":"transformer","url":"classes/runtimewiring_builder.html#transformer","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":90,"kind":2048,"name":"fieldVisibility","url":"classes/runtimewiring_builder.html#fieldvisibility","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":91,"kind":2048,"name":"codeRegistry","url":"classes/runtimewiring_builder.html#coderegistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":92,"kind":2048,"name":"scalar","url":"classes/runtimewiring_builder.html#scalar","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":93,"kind":2048,"name":"directive","url":"classes/runtimewiring_builder.html#directive","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":94,"kind":2048,"name":"wiringFactory","url":"classes/runtimewiring_builder.html#wiringfactory","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":95,"kind":2048,"name":"directiveWiring","url":"classes/runtimewiring_builder.html#directivewiring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":96,"kind":2048,"name":"comparatorRegistry","url":"classes/runtimewiring_builder.html#comparatorregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":97,"kind":2048,"name":"wait","url":"classes/runtimewiring_builder.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":98,"kind":2048,"name":"equals","url":"classes/runtimewiring_builder.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":99,"kind":2048,"name":"toString","url":"classes/runtimewiring_builder.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":100,"kind":2048,"name":"hashCode","url":"classes/runtimewiring_builder.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":101,"kind":2048,"name":"getClass","url":"classes/runtimewiring_builder.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":102,"kind":2048,"name":"notify","url":"classes/runtimewiring_builder.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":103,"kind":2048,"name":"notifyAll","url":"classes/runtimewiring_builder.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"RuntimeWiring$Builder"},{"id":104,"kind":128,"name":"SchemaGenerator","url":"classes/schemagenerator.html","classes":"tsd-kind-class"},{"id":105,"kind":512,"name":"constructor","url":"classes/schemagenerator.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":106,"kind":2048,"name":"makeExecutableSchema","url":"classes/schemagenerator.html#makeexecutableschema","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":107,"kind":2048,"name":"wait","url":"classes/schemagenerator.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":108,"kind":2048,"name":"equals","url":"classes/schemagenerator.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":109,"kind":2048,"name":"toString","url":"classes/schemagenerator.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":110,"kind":2048,"name":"hashCode","url":"classes/schemagenerator.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":111,"kind":2048,"name":"getClass","url":"classes/schemagenerator.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":112,"kind":2048,"name":"notify","url":"classes/schemagenerator.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":113,"kind":2048,"name":"notifyAll","url":"classes/schemagenerator.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaGenerator"},{"id":114,"kind":128,"name":"SchemaParser","url":"classes/schemaparser.html","classes":"tsd-kind-class"},{"id":115,"kind":512,"name":"constructor","url":"classes/schemaparser.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"SchemaParser"},{"id":116,"kind":2048,"name":"parse","url":"classes/schemaparser.html#parse","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":117,"kind":2048,"name":"buildRegistry","url":"classes/schemaparser.html#buildregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":118,"kind":2048,"name":"parseImpl","url":"classes/schemaparser.html#parseimpl","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":119,"kind":2048,"name":"wait","url":"classes/schemaparser.html#wait","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":120,"kind":2048,"name":"equals","url":"classes/schemaparser.html#equals","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":121,"kind":2048,"name":"toString","url":"classes/schemaparser.html#tostring","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":122,"kind":2048,"name":"hashCode","url":"classes/schemaparser.html#hashcode","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":123,"kind":2048,"name":"getClass","url":"classes/schemaparser.html#getclass","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":124,"kind":2048,"name":"notify","url":"classes/schemaparser.html#notify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":125,"kind":2048,"name":"notifyAll","url":"classes/schemaparser.html#notifyall","classes":"tsd-kind-method tsd-parent-kind-class","parent":"SchemaParser"},{"id":126,"kind":128,"name":"ApolloWSHandler","url":"classes/apollowshandler.html","classes":"tsd-kind-class"},{"id":127,"kind":2048,"name":"handle","url":"classes/apollowshandler.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":128,"kind":2048,"name":"connectionHandler","url":"classes/apollowshandler.html#connectionhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":129,"kind":2048,"name":"messageHandler","url":"classes/apollowshandler.html#messagehandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":130,"kind":2048,"name":"endHandler","url":"classes/apollowshandler.html#endhandler","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":131,"kind":2048,"name":"queryContext","url":"classes/apollowshandler.html#querycontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":132,"kind":2048,"name":"create","url":"classes/apollowshandler.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"ApolloWSHandler"},{"id":133,"kind":2048,"name":"dataLoaderRegistry","url":"classes/apollowshandler.html#dataloaderregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":134,"kind":2048,"name":"locale","url":"classes/apollowshandler.html#locale","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSHandler"},{"id":135,"kind":128,"name":"ApolloWSMessage","url":"classes/apollowsmessage.html","classes":"tsd-kind-class"},{"id":136,"kind":2048,"name":"serverWebSocket","url":"classes/apollowsmessage.html#serverwebsocket","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSMessage"},{"id":137,"kind":2048,"name":"type","url":"classes/apollowsmessage.html#type","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSMessage"},{"id":138,"kind":2048,"name":"content","url":"classes/apollowsmessage.html#content","classes":"tsd-kind-method tsd-parent-kind-class","parent":"ApolloWSMessage"},{"id":139,"kind":128,"name":"GraphQLHandler","url":"classes/graphqlhandler.html","classes":"tsd-kind-class"},{"id":140,"kind":2048,"name":"handle","url":"classes/graphqlhandler.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":141,"kind":2048,"name":"queryContext","url":"classes/graphqlhandler.html#querycontext","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":142,"kind":2048,"name":"create","url":"classes/graphqlhandler.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GraphQLHandler"},{"id":143,"kind":2048,"name":"dataLoaderRegistry","url":"classes/graphqlhandler.html#dataloaderregistry","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":144,"kind":2048,"name":"locale","url":"classes/graphqlhandler.html#locale","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphQLHandler"},{"id":145,"kind":128,"name":"GraphiQLHandler","url":"classes/graphiqlhandler.html","classes":"tsd-kind-class"},{"id":146,"kind":2048,"name":"handle","url":"classes/graphiqlhandler.html#handle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandler"},{"id":147,"kind":2048,"name":"create","url":"classes/graphiqlhandler.html#create","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"GraphiQLHandler"},{"id":148,"kind":2048,"name":"graphiQLRequestHeaders","url":"classes/graphiqlhandler.html#graphiqlrequestheaders","classes":"tsd-kind-method tsd-parent-kind-class","parent":"GraphiQLHandler"}],"index":{"version":"2.3.8","fields":["name","parent"],"fieldVectors":[["name/0",[0,25.683]],["parent/0",[]],["name/1",[1,46.052]],["parent/1",[0,2.464]],["name/2",[2,46.052]],["parent/2",[0,2.464]],["name/3",[3,46.052]],["parent/3",[0,2.464]],["name/4",[4,46.052]],["parent/4",[0,2.464]],["name/5",[5,46.052]],["parent/5",[0,2.464]],["name/6",[6,46.052]],["parent/6",[0,2.464]],["name/7",[7,46.052]],["parent/7",[0,2.464]],["name/8",[8,46.052]],["parent/8",[0,2.464]],["name/9",[9,46.052]],["parent/9",[0,2.464]],["name/10",[10,46.052]],["parent/10",[0,2.464]],["name/11",[11,35.066]],["parent/11",[]],["name/12",[12,29.957]],["parent/12",[11,3.364]],["name/13",[13,46.052]],["parent/13",[11,3.364]],["name/14",[14,46.052]],["parent/14",[11,3.364]],["name/15",[15,35.066]],["parent/15",[]],["name/16",[12,29.957]],["parent/16",[15,3.364]],["name/17",[16,46.052]],["parent/17",[15,3.364]],["name/18",[17,46.052]],["parent/18",[15,3.364]],["name/19",[18,24.849]],["parent/19",[]],["name/20",[12,29.957]],["parent/20",[18,2.384]],["name/21",[19,46.052]],["parent/21",[18,2.384]],["name/22",[20,46.052]],["parent/22",[18,2.384]],["name/23",[21,46.052]],["parent/23",[18,2.384]],["name/24",[22,46.052]],["parent/24",[18,2.384]],["name/25",[23,46.052]],["parent/25",[18,2.384]],["name/26",[24,46.052]],["parent/26",[18,2.384]],["name/27",[25,46.052]],["parent/27",[18,2.384]],["name/28",[26,46.052]],["parent/28",[18,2.384]],["name/29",[27,46.052]],["parent/29",[18,2.384]],["name/30",[28,46.052]],["parent/30",[18,2.384]],["name/31",[29,23.365]],["parent/31",[]],["name/32",[30,46.052]],["parent/32",[29,2.241]],["name/33",[12,29.957]],["parent/33",[29,2.241]],["name/34",[31,46.052]],["parent/34",[29,2.241]],["name/35",[32,46.052]],["parent/35",[29,2.241]],["name/36",[33,46.052]],["parent/36",[29,2.241]],["name/37",[34,46.052]],["parent/37",[29,2.241]],["name/38",[35,31.388]],["parent/38",[29,2.241]],["name/39",[36,31.388]],["parent/39",[29,2.241]],["name/40",[37,31.388]],["parent/40",[29,2.241]],["name/41",[38,31.388]],["parent/41",[29,2.241]],["name/42",[39,31.388]],["parent/42",[29,2.241]],["name/43",[40,31.388]],["parent/43",[29,2.241]],["name/44",[41,31.388]],["parent/44",[29,2.241]],["name/45",[42,20.402]],["parent/45",[]],["name/46",[12,29.957]],["parent/46",[42,1.957]],["name/47",[43,46.052]],["parent/47",[42,1.957]],["name/48",[44,40.943]],["parent/48",[42,1.957]],["name/49",[45,46.052]],["parent/49",[42,1.957]],["name/50",[46,46.052]],["parent/50",[42,1.957]],["name/51",[47,46.052]],["parent/51",[42,1.957]],["name/52",[48,46.052]],["parent/52",[42,1.957]],["name/53",[49,46.052]],["parent/53",[42,1.957]],["name/54",[50,46.052]],["parent/54",[42,1.957]],["name/55",[51,46.052]],["parent/55",[42,1.957]],["name/56",[52,46.052]],["parent/56",[42,1.957]],["name/57",[35,31.388]],["parent/57",[42,1.957]],["name/58",[36,31.388]],["parent/58",[42,1.957]],["name/59",[37,31.388]],["parent/59",[42,1.957]],["name/60",[38,31.388]],["parent/60",[42,1.957]],["name/61",[39,31.388]],["parent/61",[42,1.957]],["name/62",[40,31.388]],["parent/62",[42,1.957]],["name/63",[41,31.388]],["parent/63",[42,1.957]],["name/64",[53,18.971]],["parent/64",[]],["name/65",[54,46.052]],["parent/65",[53,1.82]],["name/66",[55,46.052]],["parent/66",[53,1.82]],["name/67",[56,46.052]],["parent/67",[53,1.82]],["name/68",[57,46.052]],["parent/68",[53,1.82]],["name/69",[58,46.052]],["parent/69",[53,1.82]],["name/70",[59,46.052]],["parent/70",[53,1.82]],["name/71",[60,46.052]],["parent/71",[53,1.82]],["name/72",[61,46.052]],["parent/72",[53,1.82]],["name/73",[62,46.052]],["parent/73",[53,1.82]],["name/74",[63,46.052]],["parent/74",[53,1.82]],["name/75",[64,46.052]],["parent/75",[53,1.82]],["name/76",[65,46.052]],["parent/76",[53,1.82]],["name/77",[66,46.052]],["parent/77",[53,1.82]],["name/78",[67,46.052]],["parent/78",[53,1.82]],["name/79",[35,31.388]],["parent/79",[53,1.82]],["name/80",[36,31.388]],["parent/80",[53,1.82]],["name/81",[37,31.388]],["parent/81",[53,1.82]],["name/82",[38,31.388]],["parent/82",[53,1.82]],["name/83",[39,31.388]],["parent/83",[53,1.82]],["name/84",[40,31.388]],["parent/84",[53,1.82]],["name/85",[41,31.388]],["parent/85",[53,1.82]],["name/86",[68,20.929]],["parent/86",[]],["name/87",[69,40.943]],["parent/87",[68,2.008]],["name/88",[44,40.943]],["parent/88",[68,2.008]],["name/89",[70,46.052]],["parent/89",[68,2.008]],["name/90",[71,46.052]],["parent/90",[68,2.008]],["name/91",[72,46.052]],["parent/91",[68,2.008]],["name/92",[73,46.052]],["parent/92",[68,2.008]],["name/93",[74,46.052]],["parent/93",[68,2.008]],["name/94",[75,46.052]],["parent/94",[68,2.008]],["name/95",[76,46.052]],["parent/95",[68,2.008]],["name/96",[77,46.052]],["parent/96",[68,2.008]],["name/97",[35,31.388]],["parent/97",[68,2.008]],["name/98",[36,31.388]],["parent/98",[68,2.008]],["name/99",[37,31.388]],["parent/99",[68,2.008]],["name/100",[38,31.388]],["parent/100",[68,2.008]],["name/101",[39,31.388]],["parent/101",[68,2.008]],["name/102",[40,31.388]],["parent/102",[68,2.008]],["name/103",[41,31.388]],["parent/103",[68,2.008]],["name/104",[78,26.593]],["parent/104",[]],["name/105",[12,29.957]],["parent/105",[78,2.551]],["name/106",[79,46.052]],["parent/106",[78,2.551]],["name/107",[35,31.388]],["parent/107",[78,2.551]],["name/108",[36,31.388]],["parent/108",[78,2.551]],["name/109",[37,31.388]],["parent/109",[78,2.551]],["name/110",[38,31.388]],["parent/110",[78,2.551]],["name/111",[39,31.388]],["parent/111",[78,2.551]],["name/112",[40,31.388]],["parent/112",[78,2.551]],["name/113",[41,31.388]],["parent/113",[78,2.551]],["name/114",[80,24.849]],["parent/114",[]],["name/115",[12,29.957]],["parent/115",[80,2.384]],["name/116",[81,46.052]],["parent/116",[80,2.384]],["name/117",[82,46.052]],["parent/117",[80,2.384]],["name/118",[83,46.052]],["parent/118",[80,2.384]],["name/119",[35,31.388]],["parent/119",[80,2.384]],["name/120",[36,31.388]],["parent/120",[80,2.384]],["name/121",[37,31.388]],["parent/121",[80,2.384]],["name/122",[38,31.388]],["parent/122",[80,2.384]],["name/123",[39,31.388]],["parent/123",[80,2.384]],["name/124",[40,31.388]],["parent/124",[80,2.384]],["name/125",[41,31.388]],["parent/125",[80,2.384]],["name/126",[84,27.593]],["parent/126",[]],["name/127",[85,37.579]],["parent/127",[84,2.647]],["name/128",[86,46.052]],["parent/128",[84,2.647]],["name/129",[87,46.052]],["parent/129",[84,2.647]],["name/130",[88,46.052]],["parent/130",[84,2.647]],["name/131",[89,40.943]],["parent/131",[84,2.647]],["name/132",[90,37.579]],["parent/132",[84,2.647]],["name/133",[91,40.943]],["parent/133",[84,2.647]],["name/134",[92,40.943]],["parent/134",[84,2.647]],["name/135",[93,35.066]],["parent/135",[]],["name/136",[94,46.052]],["parent/136",[93,3.364]],["name/137",[69,40.943]],["parent/137",[93,3.364]],["name/138",[95,46.052]],["parent/138",[93,3.364]],["name/139",[96,31.388]],["parent/139",[]],["name/140",[85,37.579]],["parent/140",[96,3.011]],["name/141",[89,40.943]],["parent/141",[96,3.011]],["name/142",[90,37.579]],["parent/142",[96,3.011]],["name/143",[91,40.943]],["parent/143",[96,3.011]],["name/144",[92,40.943]],["parent/144",[96,3.011]],["name/145",[97,35.066]],["parent/145",[]],["name/146",[85,37.579]],["parent/146",[97,3.364]],["name/147",[90,37.579]],["parent/147",[97,3.364]],["name/148",[98,46.052]],["parent/148",[97,3.364]]],"invertedIndex":[["apollowshandler",{"_index":84,"name":{"126":{}},"parent":{"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{}}}],["apollowsmessage",{"_index":93,"name":{"135":{}},"parent":{"136":{},"137":{},"138":{}}}],["apollowsmessagetype",{"_index":0,"name":{"0":{}},"parent":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{}}}],["apollowsoptions",{"_index":11,"name":{"11":{}},"parent":{"12":{},"13":{},"14":{}}}],["build",{"_index":44,"name":{"48":{},"88":{}},"parent":{}}],["buildregistry",{"_index":82,"name":{"117":{}},"parent":{}}],["coderegistry",{"_index":72,"name":{"91":{}},"parent":{}}],["comparatorregistry",{"_index":77,"name":{"96":{}},"parent":{}}],["complete",{"_index":10,"name":{"10":{}},"parent":{}}],["connection_ack",{"_index":5,"name":{"5":{}},"parent":{}}],["connection_error",{"_index":6,"name":{"6":{}},"parent":{}}],["connection_init",{"_index":1,"name":{"1":{}},"parent":{}}],["connection_keep_alive",{"_index":7,"name":{"7":{}},"parent":{}}],["connection_terminate",{"_index":2,"name":{"2":{}},"parent":{}}],["connectionhandler",{"_index":86,"name":{"128":{}},"parent":{}}],["constructor",{"_index":12,"name":{"12":{},"16":{},"20":{},"33":{},"46":{},"105":{},"115":{}},"parent":{}}],["content",{"_index":95,"name":{"138":{}},"parent":{}}],["create",{"_index":90,"name":{"132":{},"142":{},"147":{}},"parent":{}}],["data",{"_index":8,"name":{"8":{}},"parent":{}}],["dataloaderregistry",{"_index":91,"name":{"133":{},"143":{}},"parent":{}}],["deferred_results",{"_index":30,"name":{"32":{}},"parent":{}}],["directive",{"_index":74,"name":{"93":{}},"parent":{}}],["directivewiring",{"_index":76,"name":{"95":{}},"parent":{}}],["donotadddefaultinstrumentations",{"_index":48,"name":{"52":{}},"parent":{}}],["endhandler",{"_index":88,"name":{"130":{}},"parent":{}}],["equals",{"_index":36,"name":{"39":{},"58":{},"80":{},"98":{},"108":{},"120":{}},"parent":{}}],["error",{"_index":9,"name":{"9":{}},"parent":{}}],["execute",{"_index":31,"name":{"34":{}},"parent":{}}],["executeasync",{"_index":33,"name":{"36":{}},"parent":{}}],["executionidprovider",{"_index":52,"name":{"56":{}},"parent":{}}],["fieldvisibility",{"_index":71,"name":{"90":{}},"parent":{}}],["getclass",{"_index":39,"name":{"42":{},"61":{},"83":{},"101":{},"111":{},"123":{}},"parent":{}}],["getcoderegistry",{"_index":55,"name":{"66":{}},"parent":{}}],["getcomparatorregistry",{"_index":58,"name":{"69":{}},"parent":{}}],["getdatafetcherfortype",{"_index":62,"name":{"73":{}},"parent":{}}],["getdatafetchers",{"_index":61,"name":{"72":{}},"parent":{}}],["getdefaultdatafetcherfortype",{"_index":63,"name":{"74":{}},"parent":{}}],["getdirectivewiring",{"_index":56,"name":{"67":{}},"parent":{}}],["getenumvaluesproviders",{"_index":65,"name":{"76":{}},"parent":{}}],["getfieldvisibility",{"_index":54,"name":{"65":{}},"parent":{}}],["getgraphqluri",{"_index":21,"name":{"23":{}},"parent":{}}],["getheaders",{"_index":23,"name":{"25":{}},"parent":{}}],["getkeepalive",{"_index":13,"name":{"13":{}},"parent":{}}],["getquery",{"_index":25,"name":{"27":{}},"parent":{}}],["getregistereddirectivewiring",{"_index":67,"name":{"78":{}},"parent":{}}],["getscalars",{"_index":59,"name":{"70":{}},"parent":{}}],["getschemageneratorpostprocessings",{"_index":57,"name":{"68":{}},"parent":{}}],["gettyperesolvers",{"_index":64,"name":{"75":{}},"parent":{}}],["getvariables",{"_index":27,"name":{"29":{}},"parent":{}}],["getwiringfactory",{"_index":66,"name":{"77":{}},"parent":{}}],["graphiqlhandler",{"_index":97,"name":{"145":{}},"parent":{"146":{},"147":{},"148":{}}}],["graphiqlhandleroptions",{"_index":18,"name":{"19":{}},"parent":{"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{}}}],["graphiqlrequestheaders",{"_index":98,"name":{"148":{}},"parent":{}}],["graphql",{"_index":29,"name":{"31":{}},"parent":{"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{}}}],["graphql$builder",{"_index":42,"name":{"45":{}},"parent":{"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{}}}],["graphqlhandler",{"_index":96,"name":{"139":{}},"parent":{"140":{},"141":{},"142":{},"143":{},"144":{}}}],["graphqlhandleroptions",{"_index":15,"name":{"15":{}},"parent":{"16":{},"17":{},"18":{}}}],["handle",{"_index":85,"name":{"127":{},"140":{},"146":{}},"parent":{}}],["hashcode",{"_index":38,"name":{"41":{},"60":{},"82":{},"100":{},"110":{},"122":{}},"parent":{}}],["instrumentation",{"_index":46,"name":{"50":{}},"parent":{}}],["isenabled",{"_index":19,"name":{"21":{}},"parent":{}}],["isrequestbatchingenabled",{"_index":16,"name":{"17":{}},"parent":{}}],["locale",{"_index":92,"name":{"134":{},"144":{}},"parent":{}}],["makeexecutableschema",{"_index":79,"name":{"106":{}},"parent":{}}],["messagehandler",{"_index":87,"name":{"129":{}},"parent":{}}],["mutationexecutionstrategy",{"_index":50,"name":{"54":{}},"parent":{}}],["newgraphql",{"_index":34,"name":{"37":{}},"parent":{}}],["newruntimewiring",{"_index":60,"name":{"71":{}},"parent":{}}],["notify",{"_index":40,"name":{"43":{},"62":{},"84":{},"102":{},"112":{},"124":{}},"parent":{}}],["notifyall",{"_index":41,"name":{"44":{},"63":{},"85":{},"103":{},"113":{},"125":{}},"parent":{}}],["parse",{"_index":81,"name":{"116":{}},"parent":{}}],["parseimpl",{"_index":83,"name":{"118":{}},"parent":{}}],["preparseddocumentprovider",{"_index":45,"name":{"49":{}},"parent":{}}],["querycontext",{"_index":89,"name":{"131":{},"141":{}},"parent":{}}],["queryexecutionstrategy",{"_index":49,"name":{"53":{}},"parent":{}}],["runtimewiring",{"_index":53,"name":{"64":{}},"parent":{"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{}}}],["runtimewiring$builder",{"_index":68,"name":{"86":{}},"parent":{"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{}}}],["scalar",{"_index":73,"name":{"92":{}},"parent":{}}],["schema",{"_index":43,"name":{"47":{}},"parent":{}}],["schemagenerator",{"_index":78,"name":{"104":{}},"parent":{"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{}}}],["schemaparser",{"_index":80,"name":{"114":{}},"parent":{"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{}}}],["serverwebsocket",{"_index":94,"name":{"136":{}},"parent":{}}],["setenabled",{"_index":20,"name":{"22":{}},"parent":{}}],["setgraphqluri",{"_index":22,"name":{"24":{}},"parent":{}}],["setheaders",{"_index":24,"name":{"26":{}},"parent":{}}],["setkeepalive",{"_index":14,"name":{"14":{}},"parent":{}}],["setquery",{"_index":26,"name":{"28":{}},"parent":{}}],["setrequestbatchingenabled",{"_index":17,"name":{"18":{}},"parent":{}}],["setvariables",{"_index":28,"name":{"30":{}},"parent":{}}],["start",{"_index":3,"name":{"3":{}},"parent":{}}],["stop",{"_index":4,"name":{"4":{}},"parent":{}}],["subscriptionexecutionstrategy",{"_index":51,"name":{"55":{}},"parent":{}}],["tostring",{"_index":37,"name":{"40":{},"59":{},"81":{},"99":{},"109":{},"121":{}},"parent":{}}],["transform",{"_index":32,"name":{"35":{}},"parent":{}}],["transformer",{"_index":70,"name":{"89":{}},"parent":{}}],["type",{"_index":69,"name":{"87":{},"137":{}},"parent":{}}],["valueunboxer",{"_index":47,"name":{"51":{}},"parent":{}}],["wait",{"_index":35,"name":{"38":{},"57":{},"79":{},"97":{},"107":{},"119":{}},"parent":{}}],["wiringfactory",{"_index":75,"name":{"94":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/.vuepress/public/@vertx/web-graphql/classes/graphql.html b/docs/.vuepress/public/@vertx/web-graphql/classes/graphql.html index 439bda9ca..d629156a1 100644 --- a/docs/.vuepress/public/@vertx/web-graphql/classes/graphql.html +++ b/docs/.vuepress/public/@vertx/web-graphql/classes/graphql.html @@ -518,15 +518,15 @@

    Returns any

    executeAsync

      +
    • executeAsync(arg0: <T>(arg0: T) => T): any
    • executeAsync(arg0: any): any
    • executeAsync(arg0: any): any
    • -
    • executeAsync(arg0: <T>(arg0: T) => T): any