ContainerResource

izumi.distage.docker.impl.ContainerResource
See theContainerResource companion object
open class ContainerResource[F[_], Tag](val config: ContainerConfig[Tag], val client: DockerClientWrapper[F], val logger: IzLogger, val deps: Set[DockerContainer[Any]])(implicit val F: QuasiIO[F], val P: QuasiAsync[F], val T: QuasiTemporal[F]) extends Basic[F, DockerContainer[Tag]]

Attributes

Companion
object
Graph
Supertypes
trait Basic[F, DockerContainer[Tag]]
trait Lifecycle[F, DockerContainer[Tag]]
class Object
trait Matchable
class Any

Members list

Type members

Inherited types

final override type InnerResource = DockerContainer[Tag]

Attributes

Inherited from:
Basic

Value members

Concrete methods

override def acquire: F[DockerContainer[Tag]]

The action in F used to acquire the resource.

The action in F used to acquire the resource.

Attributes

Note

the acquire action is performed uninterruptibly by Lifecycle.SyntaxUse#use and other interpreters, when F is an effect type that supports interruption/cancellation.

Definition Classes
def copy(config: ContainerConfig[Tag] = ..., client: DockerClientWrapper[F] = ..., logger: IzLogger = ..., deps: Set[DockerContainer[Any]] = ..., F: QuasiIO[F] = ..., P: QuasiAsync[F] = ..., T: QuasiTemporal[F] = ...): ContainerResource[F, Tag]
override def release(container: DockerContainer[Tag]): F[Unit]

The action in F used to release, close or deallocate the resource after it has been acquired and used through Lifecycle.SyntaxUse#use.

The action in F used to release, close or deallocate the resource after it has been acquired and used through Lifecycle.SyntaxUse#use.

Attributes

Note

the release action is performed uninterruptibly by Lifecycle.SyntaxUse#use and other interpreters, when F is an effect type that supports interruption/cancellation.

Definition Classes

Inherited methods

final def beforeAcquire[G[x] : QuasiApplicative](f: => G[Unit]): Lifecycle[G, DockerContainer[Tag]]

Attributes

Inherited from:
Lifecycle
final def beforeRelease[G[x] : QuasiApplicative](f: InnerResource => G[Unit]): Lifecycle[G, DockerContainer[Tag]]

Prepend release action to existing

Prepend release action to existing

Attributes

Inherited from:
Lifecycle
final def catchAll[G[x] : QuasiIO, B >: DockerContainer[Tag]](recover: Throwable => Lifecycle[G, B]): Lifecycle[G, B]

Attributes

Inherited from:
Lifecycle
final def catchSome[G[x] : QuasiIO, B >: DockerContainer[Tag]](recover: PartialFunction[Throwable, Lifecycle[G, B]]): Lifecycle[G, B]

Attributes

Inherited from:
Lifecycle
final def evalMap[G[x] : QuasiPrimitives, B](f: DockerContainer[Tag] => G[B]): Lifecycle[G, B]

Attributes

Inherited from:
Lifecycle
final def evalTap[G[x] : QuasiPrimitives](f: DockerContainer[Tag] => G[Unit]): Lifecycle[G, DockerContainer[Tag]]

Attributes

Inherited from:
Lifecycle
final override def extract[B >: DockerContainer[Tag]](resource: DockerContainer[Tag]): Right[Nothing, DockerContainer[Tag]]

Either an action in F or a pure function used to extract the A from the InnerResource

Either an action in F or a pure function used to extract the A from the InnerResource

The effect in the Left branch will be performed interruptibly, it is not afforded the same kind of safety as acquire and release actions when F is an effect type that supports interruption/cancellation.

When F is Identity, it doesn't matter whether the output is a Left or Right branch.

When consuming the output of extract you can use _.fold(identity, F.pure) to convert the Either to F[B]

Attributes

See also

Lifecycle.Basic extract doesn't have to be defined when inheriting from Lifecycle.Basic

Note

the extract action is performed interruptibly by Lifecycle.SyntaxUse#use and other interpreters

Definition Classes
Inherited from:
Basic
final def flatMap[G[x] : QuasiPrimitives, B](f: DockerContainer[Tag] => Lifecycle[G, B]): Lifecycle[G, B]

Attributes

Inherited from:
Lifecycle
final def flatten[G[x], B](implicit evidence$1: QuasiPrimitives[G], ev: DockerContainer[Tag] <:< Lifecycle[G, B]): Lifecycle[G, B]

Attributes

Inherited from:
Lifecycle
final def map[G[x] : QuasiFunctor, B](f: DockerContainer[Tag] => B): Lifecycle[G, B]

Attributes

Inherited from:
Lifecycle
final def mapK[G[x], H[_]](f: Morphism1[G, H]): Lifecycle[H, DockerContainer[Tag]]

Attributes

Inherited from:
Lifecycle
final def redeem[G[x] : QuasiIO, B](onFailure: Throwable => Lifecycle[G, B], onSuccess: DockerContainer[Tag] => Lifecycle[G, B]): Lifecycle[G, B]

Attributes

Inherited from:
Lifecycle
final def void[G[x] : QuasiFunctor]: Lifecycle[G, Unit]

Attributes

Inherited from:
Lifecycle
final def widen[B](implicit ev: DockerContainer[Tag] <:< B): Lifecycle[F, B]

Attributes

Inherited from:
Lifecycle
final def widen[B >: DockerContainer[Tag]]: Lifecycle[F, B]

Attributes

Inherited from:
Lifecycle
final def widenF[G[_]](implicit ev: F[Unit] <:< G[Unit]): Lifecycle[G, DockerContainer[Tag]]

Attributes

Inherited from:
Lifecycle
final def widenF[G[x]]: Lifecycle[G, DockerContainer[Tag]]

Attributes

Inherited from:
Lifecycle
final def wrapAcquire[G[x]](f: (=> G[InnerResource]) => G[InnerResource]): Lifecycle[G, DockerContainer[Tag]]

Wrap acquire action of this resource in another effect, e.g. for logging purposes

Wrap acquire action of this resource in another effect, e.g. for logging purposes

Attributes

Inherited from:
Lifecycle
final def wrapRelease[G[x]](f: (InnerResource => G[Unit], InnerResource) => G[Unit]): Lifecycle[G, DockerContainer[Tag]]

Wrap release action of this resource in another effect, e.g. for logging purposes

Wrap release action of this resource in another effect, e.g. for logging purposes

Attributes

Inherited from:
Lifecycle

Concrete fields

val deps: Set[DockerContainer[Any]]

Implicits

Implicits

implicit val F: QuasiIO[F]
implicit val P: QuasiAsync[F]
implicit val T: QuasiTemporal[F]