in core/src/main/java/com/epam/coroutinecache/internal/ProxyProvider.kt [28:42]
override fun invoke(proxy: Any?, method: Method?, methodArgs: Array<out Any>?): Any? {
val lastArg = methodArgs?.lastOrNull()
return if (lastArg is Continuation<*>) {
@Suppress("UNCHECKED_CAST")
val cont = lastArg as? Continuation<Any?>
val otherArgs = methodArgs.take(methodArgs.size - 1).toTypedArray()
scope.launch {
val data = processorProvider.process<Any>(proxyTranslator.processMethod(method, otherArgs))
cont?.resume(data)
}
COROUTINE_SUSPENDED
} else {
null
}
}