2
2
3
3
package cn.yurin.yutorix.module.satori.adapter
4
4
5
- import cn.yurin.yutori.Adapter
6
- import cn.yurin.yutori.BuilderMarker
7
- import cn.yurin.yutori.Login
8
- import cn.yurin.yutori.Reinstallable
9
- import cn.yurin.yutori.Yutori
5
+ import cn.yurin.yutori.*
10
6
import cn.yurin.yutorix.module.satori.SatoriAdapterProperties
11
7
import co.touchlab.kermit.Logger
12
8
import kotlinx.atomicfu.atomic
@@ -19,44 +15,31 @@ fun Adapter.Companion.satori(
19
15
path : String = "",
20
16
token : String? = null,
21
17
version : String = "v1",
22
- ) = SatoriAdapter (alias, host, port, path, token, version)
18
+ onStart : suspend WebSocketEventService .() -> Unit = { },
19
+ onConnect : suspend WebSocketEventService .(List <Login >) -> Unit = { },
20
+ onClose : suspend () -> Unit = { },
21
+ onError : suspend () -> Unit = { },
22
+ ) = SatoriAdapter (alias, host, port, path, token, version, onStart, onConnect, onClose, onError)
23
23
24
- @BuilderMarker
25
24
class SatoriAdapter (
26
25
alias : String? ,
27
26
val host : String ,
28
27
val port : Int ,
29
28
val path : String ,
30
29
val token : String? ,
31
30
val version : String ,
31
+ val onStart : suspend WebSocketEventService .() -> Unit ,
32
+ val onConnect : suspend WebSocketEventService .(List <Login >) -> Unit ,
33
+ val onClose : suspend () -> Unit ,
34
+ val onError : suspend () -> Unit ,
32
35
) : Adapter(alias),
33
36
Reinstallable {
34
- var onStart: suspend WebSocketEventService .() -> Unit = { }
35
- var onConnect: suspend WebSocketEventService .(List <Login >) -> Unit = { }
36
- var onClose: suspend () -> Unit = { }
37
- var onError: suspend () -> Unit = { }
38
37
private var connecting by atomic(false )
39
38
private var service: WebSocketEventService ? by atomic(null )
40
39
41
- fun onStart (block : suspend WebSocketEventService .() -> Unit ) {
42
- onStart = block
43
- }
44
-
45
- fun onConnect (block : suspend WebSocketEventService .(List <Login >) -> Unit ) {
46
- onConnect = block
47
- }
48
-
49
- fun onClose (block : suspend () -> Unit ) {
50
- onClose = block
51
- }
52
-
53
- fun onError (block : suspend () -> Unit ) {
54
- onError = block
55
- }
56
-
57
- override fun install (yutori : Yutori ) {}
40
+ override fun install (builder : YutoriBuilder ) {}
58
41
59
- override fun uninstall (yutori : Yutori ) {}
42
+ override fun uninstall (builder : YutoriBuilder ) {}
60
43
61
44
override suspend fun start (yutori : Yutori ) {
62
45
val properties = SatoriAdapterProperties (host, port, path, token, version)
@@ -89,4 +72,4 @@ class SatoriAdapter(
89
72
service?.disconnect()
90
73
service = null
91
74
}
92
- }
75
+ }
0 commit comments