diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-10-04 00:44:02 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-10-04 00:44:02 +0200 |
commit | 4045f81da1f1c3bd527eb3a2d8fff732893587fb (patch) | |
tree | 5cfc6b78f3a40fe5d2588738103e81b53176256b /vfd-backend | |
parent | 3a8b5c036aa12b8e75abf2cb5f98ff7a5668ff51 (diff) | |
download | mavigator-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.scala | 18 |
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 => |