@@ -5,9 +5,10 @@ define([
55 'base/js/namespace' ,
66 'jquery' ,
77 'base/js/utils' ,
8- 'services/kernels/js/comm' ,
9- 'widgets/js/init' ,
10- ] , function ( IPython , $ , utils , comm , widgetmanager ) {
8+ './comm' ,
9+ './serialize' ,
10+ 'widgets/js/init'
11+ ] , function ( IPython , $ , utils , comm , serialize , widgetmanager ) {
1112 "use strict" ;
1213
1314 /**
@@ -69,7 +70,7 @@ define([
6970 /**
7071 * @function _get_msg
7172 */
72- Kernel . prototype . _get_msg = function ( msg_type , content , metadata ) {
73+ Kernel . prototype . _get_msg = function ( msg_type , content , metadata , buffers ) {
7374 var msg = {
7475 header : {
7576 msg_id : utils . uuid ( ) ,
@@ -80,6 +81,7 @@ define([
8081 } ,
8182 metadata : metadata || { } ,
8283 content : content ,
84+ buffers : buffers || [ ] ,
8385 parent_header : { }
8486 } ;
8587 return msg ;
@@ -596,12 +598,12 @@ define([
596598 *
597599 * @function send_shell_message
598600 */
599- Kernel . prototype . send_shell_message = function ( msg_type , content , callbacks , metadata ) {
601+ Kernel . prototype . send_shell_message = function ( msg_type , content , callbacks , metadata , buffers ) {
600602 if ( ! this . is_connected ( ) ) {
601603 throw new Error ( "kernel is not connected" ) ;
602604 }
603- var msg = this . _get_msg ( msg_type , content , metadata ) ;
604- this . channels . shell . send ( JSON . stringify ( msg ) ) ;
605+ var msg = this . _get_msg ( msg_type , content , metadata , buffers ) ;
606+ this . channels . shell . send ( serialize . serialize ( msg ) ) ;
605607 this . set_callbacks_for_msg ( msg . header . msg_id , callbacks ) ;
606608 return msg . header . msg_id ;
607609 } ;
@@ -752,7 +754,7 @@ define([
752754 } ;
753755 this . events . trigger ( 'input_reply.Kernel' , { kernel : this , content : content } ) ;
754756 var msg = this . _get_msg ( "input_reply" , content ) ;
755- this . channels . stdin . send ( JSON . stringify ( msg ) ) ;
757+ this . channels . stdin . send ( serialize . serialize ( msg ) ) ;
756758 return msg . header . msg_id ;
757759 } ;
758760
@@ -850,8 +852,11 @@ define([
850852 * @function _handle_shell_reply
851853 */
852854 Kernel . prototype . _handle_shell_reply = function ( e ) {
853- var reply = $ . parseJSON ( e . data ) ;
854- this . events . trigger ( 'shell_reply.Kernel' , { kernel : this , reply : reply } ) ;
855+ serialize . deserialize ( e . data , $ . proxy ( this . _finish_shell_reply , this ) ) ;
856+ } ;
857+
858+ Kernel . prototype . _finish_shell_reply = function ( reply ) {
859+ this . events . trigger ( 'shell_reply.Kernel' , { kernel : this , reply :reply } ) ;
855860 var content = reply . content ;
856861 var metadata = reply . metadata ;
857862 var parent_id = reply . parent_header . msg_id ;
@@ -978,8 +983,11 @@ define([
978983 * @function _handle_iopub_message
979984 */
980985 Kernel . prototype . _handle_iopub_message = function ( e ) {
981- var msg = $ . parseJSON ( e . data ) ;
986+ serialize . deserialize ( e . data , $ . proxy ( this . _finish_iopub_message , this ) ) ;
987+ } ;
988+
982989
990+ Kernel . prototype . _finish_iopub_message = function ( msg ) {
983991 var handler = this . get_iopub_handler ( msg . header . msg_type ) ;
984992 if ( handler !== undefined ) {
985993 handler ( msg ) ;
@@ -990,7 +998,11 @@ define([
990998 * @function _handle_input_request
991999 */
9921000 Kernel . prototype . _handle_input_request = function ( e ) {
993- var request = $ . parseJSON ( e . data ) ;
1001+ serialize . deserialize ( e . data , $ . proxy ( this . _finish_input_request , this ) ) ;
1002+ } ;
1003+
1004+
1005+ Kernel . prototype . _finish_input_request = function ( request ) {
9941006 var header = request . header ;
9951007 var content = request . content ;
9961008 var metadata = request . metadata ;
0 commit comments