Packages

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

    The data source's identifier.

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

    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
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def batchN(n: Int): DataSource[R, A]

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

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

    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 contramapZIO[R1 <: R, B](f: Described[(B) ⇒ ZIO[R1, Nothing, A]]): DataSource[R1, B]

    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]

    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
    Definition Classes
    AnyRef
  11. final def equals(that: Any): Boolean
    Definition Classes
    DataSource → AnyRef → Any
  12. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def hashCode(): Int
    Definition Classes
    DataSource → AnyRef → Any
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def provideEnvironment(r: Described[ZEnvironment[R]]): DataSource[Any, A]

    Provides this data source with its required environment.

  20. final def provideSomeEnvironment[R0](f: Described[(ZEnvironment[R0]) ⇒ ZEnvironment[R]]): DataSource[R0, A]

    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]

    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
    Definition Classes
    AnyRef
  23. final def toString(): String
    Definition Classes
    DataSource → AnyRef → Any
  24. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped