D
Size: a a a
D
IP
IP
D
IP
D
IP
IP
D
VP
AN
AM
KG
interface UserCallbacks {
fun onSomeMessage(msg: SomeType)
fun onOtherMessage(msg: OtherType)
}
class LibraryApi(callbacks: UserCallbacks) {
fun parse(msg: Array<Byte>)
}
Разумеется, никаким suspend-ом там не пахнет, ибо джава. Поэтому так просто это в корутины не протащить. Код типа такого:suspend fun parse(msg: Array<Byte>): MessageBaseType {
return suspendCoroutine { cont ->
val callbacks = object: UserCallbacks {
override fun onSomeMessage(msg: SomeMessage) { cont.complete(msg) }
}
new LibraryApi(callbacks).parse(msg)
}
}
так просто не скомпилится, компилятору не нравится вызов suspend-функции complete изнутри не-suspend APID
AN
D
AH
interface UserCallbacks {
fun onSomeMessage(msg: SomeType)
fun onOtherMessage(msg: OtherType)
}
class LibraryApi(callbacks: UserCallbacks) {
fun parse(msg: Array<Byte>)
}
Разумеется, никаким suspend-ом там не пахнет, ибо джава. Поэтому так просто это в корутины не протащить. Код типа такого:suspend fun parse(msg: Array<Byte>): MessageBaseType {
return suspendCoroutine { cont ->
val callbacks = object: UserCallbacks {
override fun onSomeMessage(msg: SomeMessage) { cont.complete(msg) }
}
new LibraryApi(callbacks).parse(msg)
}
}
так просто не скомпилится, компилятору не нравится вызов suspend-функции complete изнутри не-suspend APIAN
interface UserCallbacks {
fun onSomeMessage(msg: SomeType)
fun onOtherMessage(msg: OtherType)
}
class LibraryApi(callbacks: UserCallbacks) {
fun parse(msg: Array<Byte>)
}
Разумеется, никаким suspend-ом там не пахнет, ибо джава. Поэтому так просто это в корутины не протащить. Код типа такого:suspend fun parse(msg: Array<Byte>): MessageBaseType {
return suspendCoroutine { cont ->
val callbacks = object: UserCallbacks {
override fun onSomeMessage(msg: SomeMessage) { cont.complete(msg) }
}
new LibraryApi(callbacks).parse(msg)
}
}
так просто не скомпилится, компилятору не нравится вызов suspend-функции complete изнутри не-suspend APIKG