override suspend fun process()

in core/src/main/java/com/epam/coroutinecache/internal/ProcessorProviderImpl.kt [25:44]


    override suspend fun <T> process(cacheObjectParams: CacheObjectParams?): T? {
        if (cacheObjectParams == null) return null
        val record = getRecordAction.getRecord<T>(cacheObjectParams.key, cacheObjectParams.entryType!!, cacheObjectParams.useIfExpired)
        return if (record == null) {
            deleteRecordAction.deleteByKey(cacheObjectParams.key)
            val data = cacheObjectParams.dataProvider?.getData() as T?
            saveRecordAction
                    .save(cacheObjectParams.key,
                            data,
                            cacheObjectParams.entryType!!,
                            cacheObjectParams.timeUnit.toMillis(cacheObjectParams.lifeTime),
                            cacheObjectParams.isExpirable)
                    .await()
            CacheLog.logMessage("Got data from source: ${Source.CLOUD}")
            data
        } else {
            CacheLog.logMessage("Got data from source: ${record.getSource()}")
            record.getData()
        }
    }