Package com.io7m.coffeepick.repository.spi

# Interface RuntimeRepositoryType

All Known Implementing Classes:
  `AOJRepository`, `ASRepository`, `OJNRepository`

    @ThreadSafe
    @ProviderType
    public interface RuntimeRepositoryType

A repository of runtimes. Implementations are required to be thread-safe.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `RuntimeRepositoryDescription` | `description()` |
  `io.reactivex.rxjava3.core.Observable<RuntimeRepositoryEventType>` | `events()` |
  `RuntimeRepositoryProviderType` | `provider()` |
  `java.util.Map<java.lang.String,​RuntimeDescription>` | `runtimes()` | Obtain a read-only map of the available runtimes in the repository.
  `void` | `update​(java.util.function.BooleanSupplier cancelled)` | Update the repository.

- ## Method Details

  - ### events

    io.reactivex.rxjava3.core.Observable<RuntimeRepositoryEventType> events()
    Returns:
      A stream of events from the repository

  - ### provider

    RuntimeRepositoryProviderType provider()
    Returns:
      The repository provider

  - ### update

    void update​(java.util.function.BooleanSupplier cancelled) throws java.lang.Exception, java.util.concurrent.CancellationException
    Update the repository.
    Parameters:
      `cancelled` - A function that returns `true` if the update should be cancelled
    Throws:
      `java.lang.Exception` - On errors
      `java.util.concurrent.CancellationException` - If `cancelled` returns `true`

  - ### runtimes

    java.util.Map<java.lang.String,​RuntimeDescription> runtimes()
    Obtain a read-only map of the available runtimes in the repository.
    Returns:
      The available runtimes

  - ### description

    RuntimeRepositoryDescription description()
    Returns:
      The current repository description