@@ -15,6 +15,10 @@ class RPCClientServiceGenerator(private val codegen: CodeGenerator) {
15
15
private const val REGISTER_PLAIN_FLOW_FIELD_METHOD = " registerPlainFlowField"
16
16
private const val REGISTER_SHARED_FLOW_FIELD_METHOD = " registerSharedFlowField"
17
17
private const val REGISTER_STATE_FLOW_FIELD_METHOD = " registerStateFlowField"
18
+
19
+ private const val ID_PROPERTY_NAME = " __rpc_stub_id"
20
+ private const val CLIENT_PROPERTY_NAME = " __rpc_client"
21
+ private const val SCOPE_PROPERTY_NAME = " __rpc_scope"
18
22
}
19
23
20
24
fun generate (service : RPCServiceDeclaration ) {
@@ -49,21 +53,21 @@ class RPCClientServiceGenerator(private val codegen: CodeGenerator) {
49
53
writer.write(" class ${service.simpleName.withClientImplSuffix()} (" )
50
54
writer.newLine()
51
55
with (writer.nested()) {
52
- write(" override val id : Long," )
56
+ write(" private val $ID_PROPERTY_NAME : Long," )
53
57
newLine()
54
- write(" private val client : RPCClient," )
58
+ write(" private val $CLIENT_PROPERTY_NAME : RPCClient," )
55
59
newLine()
56
60
}
57
- writer.write(" ) : ${service.fullName} , RPCClientService {" )
61
+ writer.write(" ) : ${service.fullName} {" )
58
62
writer.newLine()
59
63
60
64
val nested = writer.nested()
61
65
62
- nested.write(" override val coroutineContext: CoroutineContext = client .provideStubContext(id )" )
66
+ nested.write(" override val coroutineContext: CoroutineContext = $CLIENT_PROPERTY_NAME .provideStubContext($ID_PROPERTY_NAME )" )
63
67
nested.newLine()
64
68
nested.newLine()
65
69
66
- nested.write(" private val scope : CoroutineScope = this" )
70
+ nested.write(" private val $SCOPE_PROPERTY_NAME : CoroutineScope = this" )
67
71
nested.newLine()
68
72
nested.newLine()
69
73
@@ -105,7 +109,7 @@ class RPCClientServiceGenerator(private val codegen: CodeGenerator) {
105
109
generateFunctionClass(writer)
106
110
107
111
val returnTypeGenerated = if (returnType.isUnit()) " : Unit" else " : ${returnType.toCode()} "
108
- writer.write(" override suspend fun ${name} (${argumentTypes.joinToString { it.toCode() }} )$returnTypeGenerated = scopedClientCall(scope, id ) {" )
112
+ writer.write(" override suspend fun ${name} (${argumentTypes.joinToString { it.toCode() }} )$returnTypeGenerated = scopedClientCall($SCOPE_PROPERTY_NAME ) {" )
109
113
writer.newLine()
110
114
generateBody(serviceType, writer.nested())
111
115
writer.write(" }" )
@@ -132,9 +136,9 @@ class RPCClientServiceGenerator(private val codegen: CodeGenerator) {
132
136
else -> " by lazy {" to " }"
133
137
}
134
138
135
- val rpcFiled = " RPCField(\" $serviceType \" , id , \" $name \" , typeOf<$codeType >())"
139
+ val rpcFiled = " RPCField(\" $serviceType \" , $ID_PROPERTY_NAME , \" $name \" , typeOf<$codeType >())"
136
140
137
- val codeDeclaration = " override val $name : $codeType $prefix client .$method (scope , $rpcFiled )$suffix "
141
+ val codeDeclaration = " override val $name : $codeType $prefix $CLIENT_PROPERTY_NAME .$method ($SCOPE_PROPERTY_NAME , $rpcFiled )$suffix "
138
142
139
143
writer.write(codeDeclaration)
140
144
writer.newLine()
@@ -182,8 +186,8 @@ class RPCClientServiceGenerator(private val codegen: CodeGenerator) {
182
186
} )"
183
187
} "
184
188
185
- val rpcCall = " RPCCall(\" $serviceType \" , id , \" $name \" , RPCCall.Type.Method, $data , dataType, returnType)"
186
- writer.write(" client .call($rpcCall )" )
189
+ val rpcCall = " RPCCall(\" $serviceType \" , $ID_PROPERTY_NAME , \" $name \" , RPCCall.Type.Method, $data , dataType, returnType)"
190
+ writer.write(" $CLIENT_PROPERTY_NAME .call($rpcCall )" )
187
191
writer.newLine()
188
192
}
189
193
0 commit comments