@@ -9,6 +9,10 @@ import (
9
9
"github.com/lightninglabs/lightning-terminal/litrpc"
10
10
)
11
11
12
+ // SubServerOption defines a functional option that can be used to modify the
13
+ // values of a SubServerStatus's fields.
14
+ type SubServerOption func (status * SubServerStatus )
15
+
12
16
// SubServerStatus represents the status of a sub-server.
13
17
type SubServerStatus struct {
14
18
// Disabled is true if the sub-server is available in the LiT bundle but
@@ -24,9 +28,11 @@ type SubServerStatus struct {
24
28
}
25
29
26
30
// newSubServerStatus constructs a new SubServerStatus.
27
- func newSubServerStatus () * SubServerStatus {
31
+ func newSubServerStatus (disabled bool ,
32
+ opts ... SubServerOption ) * SubServerStatus {
33
+
28
34
return & SubServerStatus {
29
- Disabled : true ,
35
+ Disabled : disabled ,
30
36
}
31
37
}
32
38
@@ -73,21 +79,28 @@ func (s *Manager) SubServerStatus(_ context.Context,
73
79
74
80
// RegisterSubServer will create a new sub-server entry for the Manager to
75
81
// keep track of.
76
- func (s * Manager ) RegisterSubServer (name string ) {
82
+ func (s * Manager ) RegisterSubServer (name string , opts ... SubServerOption ) {
77
83
s .mu .RLock ()
78
84
defer s .mu .RUnlock ()
79
85
80
- s .subServers [ name ] = newSubServerStatus ( )
86
+ s .registerSubServerUnsafe ( name , true , opts ... )
81
87
}
82
88
83
89
// RegisterAndEnableSubServer will create a new sub-server entry for the
84
90
// Manager to keep track of and will set it as enabled.
85
- func (s * Manager ) RegisterAndEnableSubServer (name string ) {
91
+ func (s * Manager ) RegisterAndEnableSubServer (name string ,
92
+ opts ... SubServerOption ) {
93
+
86
94
s .mu .RLock ()
87
95
defer s .mu .RUnlock ()
88
96
89
- ss := newSubServerStatus ()
90
- ss .Disabled = false
97
+ s .registerSubServerUnsafe (name , false , opts ... )
98
+ }
99
+
100
+ func (s * Manager ) registerSubServerUnsafe (name string , disabled bool ,
101
+ opts ... SubServerOption ) {
102
+
103
+ ss := newSubServerStatus (disabled , opts ... )
91
104
92
105
s .subServers [name ] = ss
93
106
}
0 commit comments