Skip to content

//readium-shared/org.readium.r2.shared.fetcher

Package-level declarations

Types

Name Summary
ArchiveFetcher [androidJvm]
class ArchiveFetcher : Fetcher
Provides access to entries of an archive.
BaseBytesResource [androidJvm]
sealed class BaseBytesResource : Resource
BufferingResource [androidJvm]
class BufferingResource(resource: Resource, resourceLength: Long? = null, bufferSize: Long = DEFAULT_BUFFER_SIZE) : ProxyResource
Wraps a Resource and buffers its content.
BytesResource [androidJvm]
class BytesResource(val link: Link, val bytes: suspend () -> ByteArray) : BaseBytesResource
Creates a Resource serving ByteArray.
DefaultResourceContentExtractorFactory [androidJvm]
class DefaultResourceContentExtractorFactory : ResourceContentExtractor.Factory
EmptyFetcher [androidJvm]
class EmptyFetcher : Fetcher
A Fetcher providing no resources at all.
FailureResource [androidJvm]
class FailureResource(link: Link, error: Resource.Exception) : Resource
Creates a Resource that will always return the given error.
FallbackResource [androidJvm]
class FallbackResource(originalResource: Resource, fallbackResourceFactory: (Resource.Exception) -> Resource) : Resource
Resource that will act as a proxy to a fallback resource if the originalResource errors out.
Fetcher [androidJvm]
interface Fetcher : SuspendingCloseable
Provides access to a Resource from a Link.
FileFetcher [androidJvm]
class FileFetcher(paths: Map<String, File>) : Fetcher
Provides access to resources on the local file system.
HtmlResourceContentExtractor [androidJvm]
class HtmlResourceContentExtractor : ResourceContentExtractor
ResourceContentExtractor implementation for HTML resources.
HttpFetcher [androidJvm]
class HttpFetcher(client: HttpClient, baseUrl: String? = null) : Fetcher
Fetches remote resources through HTTP.
LazyResource [androidJvm]
class LazyResource(factory: suspend () -> Resource) : Resource
Wraps a Resource which will be created only when first accessing one of its members.
ProxyResource [androidJvm]
abstract class ProxyResource(resource: Resource) : Resource
A base class for a Resource which acts as a proxy to another one.
Resource [androidJvm]
interface Resource : SuspendingCloseable
Acts as a proxy to an actual resource by handling read access.
ResourceContentExtractor [androidJvm]
interface ResourceContentExtractor
Extracts pure content from a marked-up (e.g. HTML) or binary (e.g. PDF) resource.
ResourceInputStream [androidJvm]
class ResourceInputStream(resource: Resource, val range: LongRange? = null) : InputStream
Input stream reading a Resource's content.
ResourceTransformer [androidJvm]
typealias ResourceTransformer = (Resource) -> Resource
Implements the transformation of a Resource. It can be used, for example, to decrypt, deobfuscate, inject CSS or JavaScript, correct content – e.g. adding a missing dir="rtl" in an HTML document, pre-process – e.g. before indexing a publication's content, etc.
If the transformation doesn't apply, simply return resource unchanged.
ResourceTry [androidJvm]
typealias ResourceTry<SuccessT> = Try<SuccessT, Resource.Exception>
RoutingFetcher [androidJvm]
class RoutingFetcher(routes: List<RoutingFetcher.Route>) : Fetcher
Routes requests to child fetchers, depending on a provided predicate.
StringResource [androidJvm]
class StringResource(val link: Link, string: suspend () -> String) : BaseBytesResource
Creates a Resource serving a String.
SynchronizedResource [androidJvm]
class SynchronizedResource(resource: Resource) : Resource
Protects the access to a wrapped resource with a mutex to make it thread-safe.
TransformingFetcher [androidJvm]
class TransformingFetcher(fetcher: Fetcher, transformers: List<ResourceTransformer>) : Fetcher
Transforms the resources' content of a child fetcher using a list of ResourceTransformer functions.
TransformingResource [androidJvm]
abstract class TransformingResource(resource: Resource, cacheBytes: Boolean = true) : ProxyResource
Transforms the bytes of resource on-the-fly.

Functions

Name Summary
buffered [androidJvm]
fun Resource.buffered(resourceLength: Long? = null, size: Long = BufferingResource.DEFAULT_BUFFER_SIZE): BufferingResource
Wraps this resource in a BufferingResource to improve reading performances.
fallback [androidJvm]
fun Resource.fallback(fallbackResourceFactory: (Resource.Exception) -> Resource): Resource
Falls back to alternative resources when the receiver fails.
[androidJvm]
fun Resource.fallback(fallbackResource: Resource): Resource
Falls back to the given alternative resource when the receiver fails.
flatMapCatching [androidJvm]
inline fun <R, S> ResourceTry<S>.flatMapCatching(transform: (value: S) -> ResourceTry<R>): ResourceTry<R>
mapCatching [androidJvm]
inline fun <R, S> ResourceTry<S>.mapCatching(transform: (value: S) -> R): ResourceTry<R>
Maps the result with the given transform
synchronized [androidJvm]
fun Resource.synchronized(): SynchronizedResource
Wraps this resource in a SynchronizedResource to protect the access from multiple threads.