2015-04-16 02:24:01 +02:00
|
|
|
/*
|
2016-01-25 10:16:14 +01:00
|
|
|
* Copyright (C) 2015-2016 Typesafe Inc. <http://www.typesafe.com>
|
2015-04-16 02:24:01 +02:00
|
|
|
*/
|
|
|
|
|
package docs.stream.io
|
|
|
|
|
|
|
|
|
|
import java.io.File
|
|
|
|
|
|
|
|
|
|
import akka.stream._
|
2015-12-08 18:47:58 +01:00
|
|
|
import akka.stream.scaladsl.{ FileIO, Sink, Source }
|
2015-04-24 11:45:03 +03:00
|
|
|
import akka.stream.testkit.Utils._
|
2015-04-24 15:52:27 +02:00
|
|
|
import akka.stream.testkit._
|
2015-04-16 02:24:01 +02:00
|
|
|
import akka.util.ByteString
|
|
|
|
|
|
2015-04-24 20:22:16 +02:00
|
|
|
import scala.concurrent.Future
|
|
|
|
|
|
2015-04-24 11:45:03 +03:00
|
|
|
class StreamFileDocSpec extends AkkaSpec(UnboundedMailboxConfig) {
|
2015-04-16 02:24:01 +02:00
|
|
|
|
|
|
|
|
implicit val ec = system.dispatcher
|
2015-12-11 14:45:24 +01:00
|
|
|
implicit val materializer = ActorMaterializer()
|
2015-04-16 02:24:01 +02:00
|
|
|
|
|
|
|
|
// silence sysout
|
|
|
|
|
def println(s: String) = ()
|
|
|
|
|
|
|
|
|
|
val file = File.createTempFile(getClass.getName, ".tmp")
|
|
|
|
|
|
|
|
|
|
override def afterTermination() = file.delete()
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
//#file-source
|
|
|
|
|
import akka.stream.io._
|
|
|
|
|
//#file-source
|
2015-09-25 12:51:55 +02:00
|
|
|
Thread.sleep(0) // needs a statement here for valid syntax and to avoid "unused" warnings
|
2015-04-16 02:24:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
//#file-source
|
|
|
|
|
val file = new File("example.csv")
|
|
|
|
|
//#file-source
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"read data from a file" in {
|
|
|
|
|
//#file-source
|
|
|
|
|
def handle(b: ByteString): Unit //#file-source
|
|
|
|
|
= ()
|
|
|
|
|
|
|
|
|
|
//#file-source
|
|
|
|
|
|
2016-01-21 18:06:42 +02:00
|
|
|
val foreach: Future[IOResult] = FileIO.fromFile(file)
|
2015-04-24 20:22:16 +02:00
|
|
|
.to(Sink.ignore)
|
|
|
|
|
.run()
|
2015-04-16 02:24:01 +02:00
|
|
|
//#file-source
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"configure dispatcher in code" in {
|
|
|
|
|
//#custom-dispatcher-code
|
2015-12-08 18:47:58 +01:00
|
|
|
FileIO.fromFile(file)
|
2015-07-12 23:04:26 -04:00
|
|
|
.withAttributes(ActorAttributes.dispatcher("custom-blocking-io-dispatcher"))
|
2015-04-16 02:24:01 +02:00
|
|
|
//#custom-dispatcher-code
|
|
|
|
|
}
|
|
|
|
|
}
|