From a113cc2fb70ac92ab73748598a45cf6b0681db58 Mon Sep 17 00:00:00 2001 From: Darius Maitia Date: Fri, 13 Sep 2024 11:24:45 -0300 Subject: [PATCH] Making Session.open(config) internal, exposing it through Zenoh.open(config) --- examples/src/main/kotlin/io.zenoh/ZDelete.kt | 2 +- examples/src/main/kotlin/io.zenoh/ZGet.kt | 2 +- examples/src/main/kotlin/io.zenoh/ZPub.kt | 2 +- examples/src/main/kotlin/io.zenoh/ZPubThr.kt | 2 +- examples/src/main/kotlin/io.zenoh/ZPut.kt | 2 +- examples/src/main/kotlin/io.zenoh/ZQueryable.kt | 2 +- examples/src/main/kotlin/io.zenoh/ZSub.kt | 2 +- examples/src/main/kotlin/io.zenoh/ZSubThr.kt | 2 +- zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Session.kt | 4 +++- zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Zenoh.kt | 10 ++++++++++ 10 files changed, 21 insertions(+), 9 deletions(-) diff --git a/examples/src/main/kotlin/io.zenoh/ZDelete.kt b/examples/src/main/kotlin/io.zenoh/ZDelete.kt index 384820b39..ef5cd12c6 100644 --- a/examples/src/main/kotlin/io.zenoh/ZDelete.kt +++ b/examples/src/main/kotlin/io.zenoh/ZDelete.kt @@ -25,7 +25,7 @@ class ZDelete(private val emptyArgs: Boolean) : CliktCommand( val config = loadConfig(emptyArgs, configFile, connect, listen, noMulticastScouting, mode) println("Opening session...") - Session.open(config).onSuccess { session -> + Zenoh.open(config).onSuccess { session -> session.use { key.intoKeyExpr().onSuccess { keyExpr -> println("Deleting resources matching '$keyExpr'...") diff --git a/examples/src/main/kotlin/io.zenoh/ZGet.kt b/examples/src/main/kotlin/io.zenoh/ZGet.kt index fd9041cf8..c3f72fa96 100644 --- a/examples/src/main/kotlin/io.zenoh/ZGet.kt +++ b/examples/src/main/kotlin/io.zenoh/ZGet.kt @@ -32,7 +32,7 @@ class ZGet(private val emptyArgs: Boolean) : CliktCommand( override fun run() { val config = loadConfig(emptyArgs, configFile, connect, listen, noMulticastScouting, mode) - Session.open(config).onSuccess { session -> + Zenoh.open(config).onSuccess { session -> session.use { selector.intoSelector().onSuccess { selector -> session.get(selector, diff --git a/examples/src/main/kotlin/io.zenoh/ZPub.kt b/examples/src/main/kotlin/io.zenoh/ZPub.kt index ba62d6611..013dc02b8 100644 --- a/examples/src/main/kotlin/io.zenoh/ZPub.kt +++ b/examples/src/main/kotlin/io.zenoh/ZPub.kt @@ -26,7 +26,7 @@ class ZPub(private val emptyArgs: Boolean) : CliktCommand( val config = loadConfig(emptyArgs, configFile, connect, listen, noMulticastScouting, mode) println("Opening session...") - Session.open(config).onSuccess { session -> + Zenoh.open(config).onSuccess { session -> session.use { key.intoKeyExpr().onSuccess { keyExpr -> println("Declaring publisher on '$keyExpr'...") diff --git a/examples/src/main/kotlin/io.zenoh/ZPubThr.kt b/examples/src/main/kotlin/io.zenoh/ZPubThr.kt index 7bf3ebd58..02930e29f 100644 --- a/examples/src/main/kotlin/io.zenoh/ZPubThr.kt +++ b/examples/src/main/kotlin/io.zenoh/ZPubThr.kt @@ -45,7 +45,7 @@ class ZPubThr(private val emptyArgs: Boolean) : CliktCommand( priority = priorityInput?.let { Priority.entries[it] } ?: Priority.DATA, ) - Session.open(config).onSuccess { + Zenoh.open(config).onSuccess { it.use { session -> session.declarePublisher("test/thr".intoKeyExpr().getOrThrow(), qos = qos).onSuccess { pub -> println("Publisher declared on test/thr.") diff --git a/examples/src/main/kotlin/io.zenoh/ZPut.kt b/examples/src/main/kotlin/io.zenoh/ZPut.kt index ee8c94149..615cf5fc1 100644 --- a/examples/src/main/kotlin/io.zenoh/ZPut.kt +++ b/examples/src/main/kotlin/io.zenoh/ZPut.kt @@ -27,7 +27,7 @@ class ZPut(private val emptyArgs: Boolean) : CliktCommand( val config = loadConfig(emptyArgs, configFile, connect, listen, noMulticastScouting, mode) println("Opening Session...") - Session.open(config).onSuccess { session -> + Zenoh.open(config).onSuccess { session -> session.use { key.intoKeyExpr().onSuccess { keyExpr -> keyExpr.use { diff --git a/examples/src/main/kotlin/io.zenoh/ZQueryable.kt b/examples/src/main/kotlin/io.zenoh/ZQueryable.kt index c205999dc..8c366eb14 100644 --- a/examples/src/main/kotlin/io.zenoh/ZQueryable.kt +++ b/examples/src/main/kotlin/io.zenoh/ZQueryable.kt @@ -29,7 +29,7 @@ class ZQueryable(private val emptyArgs: Boolean) : CliktCommand( override fun run() { val config = loadConfig(emptyArgs, configFile, connect, listen, noMulticastScouting, mode) - Session.open(config).onSuccess { session -> + Zenoh.open(config).onSuccess { session -> session.use { key.intoKeyExpr().onSuccess { keyExpr -> println("Declaring Queryable on $key...") diff --git a/examples/src/main/kotlin/io.zenoh/ZSub.kt b/examples/src/main/kotlin/io.zenoh/ZSub.kt index 097a927b9..6b67aaeb1 100644 --- a/examples/src/main/kotlin/io.zenoh/ZSub.kt +++ b/examples/src/main/kotlin/io.zenoh/ZSub.kt @@ -28,7 +28,7 @@ class ZSub(private val emptyArgs: Boolean) : CliktCommand( val config = loadConfig(emptyArgs, configFile, connect, listen, noMulticastScouting, mode) println("Opening session...") - Session.open(config).onSuccess { session -> + Zenoh.open(config).onSuccess { session -> session.use { key.intoKeyExpr().onSuccess { keyExpr -> keyExpr.use { diff --git a/examples/src/main/kotlin/io.zenoh/ZSubThr.kt b/examples/src/main/kotlin/io.zenoh/ZSubThr.kt index 708db213a..0463634e9 100644 --- a/examples/src/main/kotlin/io.zenoh/ZSubThr.kt +++ b/examples/src/main/kotlin/io.zenoh/ZSubThr.kt @@ -76,7 +76,7 @@ class ZSubThr(private val emptyArgs: Boolean) : CliktCommand( "test/thr".intoKeyExpr().onSuccess { keyExpr -> keyExpr.use { println("Opening Session") - Session.open(config).onSuccess { session -> + Zenoh.open(config).onSuccess { session -> session.use { println("Press CTRL-C to quit...") subscriber = diff --git a/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Session.kt b/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Session.kt index 8199b1e1e..3bdd23d15 100644 --- a/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Session.kt +++ b/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Session.kt @@ -66,10 +66,12 @@ class Session private constructor(private val config: Config) : AutoCloseable { /** * Open a [Session] with the provided [Config]. * + * Note: Use [Zenoh.open] to launch a session. + * * @param config The configuration for the session. * @return A [Result] with the [Session] on success. */ - fun open(config: Config): Result { + internal fun open(config: Config): Result { val session = Session(config) return session.launch() } diff --git a/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Zenoh.kt b/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Zenoh.kt index d79807410..eb40e2449 100644 --- a/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Zenoh.kt +++ b/zenoh-kotlin/src/commonMain/kotlin/io/zenoh/Zenoh.kt @@ -26,6 +26,16 @@ import kotlinx.coroutines.channels.Channel object Zenoh { + /** + * Open a [Session] with the provided [Config]. + * + * @param config The configuration for the session. + * @return A [Result] with the [Session] on success. + */ + fun open(config: Config): Result { + return Session.open(config) + } + /** * Scout for routers and/or peers. *