Skip to content

Commit 2d8ac25

Browse files
committed
make downloadFileResult, downloadStreamResult explicit
1 parent ae75bc1 commit 2d8ac25

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

src/main/scala/com/sfxcode/nosql/mongo/gridfs/Base.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,21 @@ abstract class Base extends LazyLogging {
6969
def download(id: ObjectId, file: File): GridFSStreamObserver =
7070
download(id, file.newOutputStream)
7171

72+
def downloadFileResult(id: ObjectId, file: File): Long = streamObserverResult(download(id, file))
73+
7274
def download(oid: ObjectId, outputStream: OutputStream): GridFSStreamObserver = {
7375
val observable: GridFSDownloadObservable = gridfsBucket.downloadToObservable(oid)
7476
val observer = GridFSStreamObserver(outputStream)
7577
observable.subscribe(observer)
7678
observer
7779
}
7880

81+
def downloadStreamResult(id: ObjectId, outputStream: OutputStream): Long =
82+
streamObserverResult(download(id, outputStream))
83+
84+
protected def streamObserverResult(observer: GridFSStreamObserver): Long = {
85+
while (!observer.completed.get) {}
86+
observer.resultLength.get()
87+
}
88+
7989
}

src/main/scala/com/sfxcode/nosql/mongo/package.scala

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ package object mongo extends ObservableIncludes with DocumentIncludes {
7474
}
7575
}
7676

77-
trait MongoImplicits extends ObservableImplicits with ObservableIncludes {
77+
trait MongoImplicits extends ObservableIncludes with ObservableImplicits {
7878

7979
implicit def observableToResult[T](obs: Observable[T]): T = obs.result()
8080

@@ -93,11 +93,6 @@ trait MongoImplicits extends ObservableImplicits with ObservableIncludes {
9393

9494
implicit def gridFSFileToBSonIdValue(file: GridFSFile): BsonValue = file.getId
9595

96-
implicit def observerToResultLength(observer: GridFSStreamObserver): Long = {
97-
while (!observer.completed.get) {}
98-
observer.resultLength.get()
99-
}
100-
10196
}
10297

10398
trait DocumentIncludes {

src/test/scala/com/sfxcode/nosql/mongo/gridfs/GridfsDatabaseFunctions.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ trait GridfsDatabaseFunctions extends MongoImplicits {
3232
def downloadImage(id: ObjectId, path: String): Long = {
3333
val file = File(path)
3434
val start = System.currentTimeMillis()
35-
val size: Long = ImageFilesDAO.download(id, file)
35+
val size: Long = ImageFilesDAO.downloadFileResult(id, file)
3636

3737
println(
3838
"file: %s with size %s Bytes written in %s ms "

0 commit comments

Comments
 (0)