aboutsummaryrefslogtreecommitdiff
path: root/vfd-backend
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-10-04 00:44:02 +0200
committerJakob Odersky <jodersky@gmail.com>2014-10-04 00:44:02 +0200
commit4045f81da1f1c3bd527eb3a2d8fff732893587fb (patch)
tree5cfc6b78f3a40fe5d2588738103e81b53176256b /vfd-backend
parent3a8b5c036aa12b8e75abf2cb5f98ff7a5668ff51 (diff)
downloadmavigator-4045f81da1f1c3bd527eb3a2d8fff732893587fb.tar.gz
mavigator-4045f81da1f1c3bd527eb3a2d8fff732893587fb.tar.bz2
mavigator-4045f81da1f1c3bd527eb3a2d8fff732893587fb.zip
use scalajs pickling
Diffstat (limited to 'vfd-backend')
-rw-r--r--vfd-backend/app/controllers/Application.scala18
1 files changed, 16 insertions, 2 deletions
diff --git a/vfd-backend/app/controllers/Application.scala b/vfd-backend/app/controllers/Application.scala
index 5a473b4..f048a07 100644
--- a/vfd-backend/app/controllers/Application.scala
+++ b/vfd-backend/app/controllers/Application.scala
@@ -5,7 +5,6 @@ import play.api.mvc._
import play.api.Play.current
import play.api.mvc.WebSocket.FrameFormatter
-import play.api.libs.functional.syntax._
import play.api.libs.json._
import vfd.uav.DataFrame
@@ -22,7 +21,22 @@ object Application extends Controller {
Ok(views.html.index())
}
- implicit val dataFrameFormat = Json.format[DataFrame]
+ implicit object DataFrameFormat extends Format[DataFrame] {
+ import org.scalajs.spickling._
+ import org.scalajs.spickling.playjson._
+ import play.api.data.validation.ValidationError
+
+ PicklerRegistry.register[DataFrame]
+
+ def writes(o: DataFrame): JsValue = PicklerRegistry.pickle(o)
+
+ def reads(j: JsValue): JsResult[DataFrame] = PicklerRegistry.unpickle(j) match {
+ case df: DataFrame => JsSuccess(df)
+ case _ => JsError("unpickling yielded wrong type")
+ }
+ }
+
+ //implicit val dataFrameFormat = Json.format[DataFrame]
implicit val dataFrameFormatter = FrameFormatter.jsonFrame[DataFrame]
def socket = WebSocket.acceptWithActor[String, DataFrame] { request =>