type ResourceT[F[+_], +A] = covariant.OpacityTypes.ResourceT[F, A]
The data structure that provides automatic resource management.
- Source
- covariant.scala
ResourceTcan be used as a monad transformer for scalaz.Nameimport scalaz.Name import com.thoughtworks.raii.covariant._ type RAII[A] = ResourceT[Name, A]
Given a resource that creates temporary files
import java.io.File val resource: RAII[File] = ResourceT(Name(new Releasable[Name, File] { override val value: File = File.createTempFile("test", ".tmp"); override val release: Name[Unit] = Name { val isDeleted = value.delete() } }))
when using temporary file created by
resoucein afor/yieldblock, those temporary files should be available.import scalaz.syntax.all._ val usingResouce = for { tmpFile1 <- resource tmpFile2 <- resource } yield { tmpFile1 shouldNot be(tmpFile2) tmpFile1 should exist tmpFile2 should exist (tmpFile1, tmpFile2) }
and those files should have been deleted after the
for/yieldblock.val (tmpFile1, tmpFile2) = usingResouce.run.value tmpFile1 shouldNot exist tmpFile2 shouldNot exist- Note
This
ResourceTtype is an opacity alias toF[Releasable[F, A]]. All type classes and helper functions for thisResourceTtype are defined in the companion object ResourceT
Example:
Ordering
- Alphabetic
Visibility
- Public
- All
Abstract Value Members
-
abstract
def
getClass(): Class[_]
- Definition Classes
- Any
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- Any
-
final
def
##(): Int
- Definition Classes
- Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
equals(arg0: Any): Boolean
- Definition Classes
- Any
-
def
hashCode(): Int
- Definition Classes
- Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
toString(): String
- Definition Classes
- Any