``` @Synchronized override fun <T : Any, R ...
# rx
m
Copy code
@Synchronized
    override fun <T : Any, R : Any> processRequest(callable: Callable<T>, referenceClazz: Class<R>) {
        disposableMap.put(referenceClazz, Observable.create<T> {
            callable.call()
        }.observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(<http://Schedulers.io|Schedulers.io>())
                .subscribe({ r ->
                    log.d(LogCategory.NETWORK, r, "Request succeed")
                    networkResultStorage.storeResult(referenceClazz, r)
                    disposableMap.remove(referenceClazz)
                    networkListeners.forEach {
                        it.onResult(referenceClazz, r)
                    }
                }, { e ->
                    log.d(LogCategory.NETWORK, e, "Request failed")
                    disposableMap.remove(referenceClazz)
                    networkListeners.forEach {
                        it.onError(referenceClazz, e)
                    }
                }))
    }