Trait/Object

zio.query

DataSource

Related Docs: object DataSource | package query

Permalink

trait DataSource[-R, -A] extends AnyRef

A DataSource[R, A] requires an environment R and is capable of executing requests of type A.

Data sources must implement the method runAll which takes a collection of requests and returns an effect with a CompletedRequestMap containing a mapping from requests to results. The type of the collection of requests is a Chunk[Chunk[A]]. The outer Chunk represents batches of requests that must be performed sequentially. The inner Chunk represents a batch of requests that can be performed in parallel. This allows data sources to introspect on all the requests being executed and optimize the query.

Data sources will typically be parameterized on a subtype of Request[A], though that is not strictly necessarily as long as the data source can map the request type to a Request[A]. Data sources can then pattern match on the collection of requests to determine the information requested, execute the query, and place the results into the CompletedRequestsMap using CompletedRequestMap.empty and CompletedRequestMap.insert. Data sources must provide results for all requests received. Failure to do so will cause a query to die with a QueryFailure when run.

Self Type
DataSource[R, A]
Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DataSource
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract val identifier: String

    Permalink

    The data source's identifier.

  2. abstract def runAll(requests: Chunk[Chunk[A]]): ZIO[R, Nothing, CompletedRequestMap]

    Permalink

    Execute a collection of requests.

    Execute a collection of requests. The outer Chunk represents batches of requests that must be performed sequentially. The inner Chunk represents a batch of requests that can be performed in parallel.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def batchN(n: Int): DataSource[R, A]

    Permalink

    Returns a data source that executes at most n requests in parallel.

  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def contramap[B](f: Described[(B) ⇒ A]): DataSource[R, B]

    Permalink

    Returns a new data source that executes requests of type B using the specified function to transform B requests into requests that this data source can execute.

  8. final def contramapM[R1 <: R, B](f: Described[(B) ⇒ ZIO[R1, Nothing, A]]): DataSource[R1, B]

    Permalink

    Returns a new data source that executes requests of type B using the specified effectual function to transform B requests into requests that this data source can execute.

  9. final def eitherWith[R1 <: R, B, C](that: DataSource[R1, B])(f: Described[(C) ⇒ Either[A, B]]): DataSource[R1, C]

    Permalink

    Returns a new data source that executes requests of type C using the specified function to transform C requests into requests that either this data source or that data source can execute.

  10. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  11. final def equals(that: Any): Boolean

    Permalink
    Definition Classes
    DataSource → AnyRef → Any
  12. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  14. final def hashCode(): Int

    Permalink
    Definition Classes
    DataSource → AnyRef → Any
  15. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  17. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. final def provide(r: Described[R])(implicit ev: NeedsEnv[R]): DataSource[Any, A]

    Permalink

    Provides this data source with its required environment.

  20. final def provideSome[R0](f: Described[(R0) ⇒ R])(implicit ev: NeedsEnv[R]): DataSource[R0, A]

    Permalink

    Provides this data source with part of its required environment.

  21. final def race[R1 <: R, A1 <: A](that: DataSource[R1, A1]): DataSource[R1, A1]

    Permalink

    Returns a new data source that executes requests by sending them to this data source and that data source, returning the results from the first data source to complete and safely interrupting the loser.

  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  23. final def toString(): String

    Permalink
    Definition Classes
    DataSource → AnyRef → Any
  24. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped