Commit 8de1a9e0 authored by Libby Horacek's avatar Libby Horacek Committed by Sumit Sahrawat

Add CommInfoRequest and CommInfoReply

parent 73791d37
...@@ -174,6 +174,12 @@ replyTo config _ _ KernelInfoRequest{} replyHeader = ...@@ -174,6 +174,12 @@ replyTo config _ _ KernelInfoRequest{} replyHeader =
, protocolVersion = kernelProtocolVersion config , protocolVersion = kernelProtocolVersion config
} }
replyTo config _ _ CommInfoRequest{} replyHeader =
return
CommInfoReply
{ header = replyHeader
, commInfo = [] }
replyTo config _ interface ShutdownRequest { restartPending = pending } replyHeader = do replyTo config _ interface ShutdownRequest { restartPending = pending } replyHeader = do
liftIO $ writeChan (shellReplyChannel interface) $ ShutdownReply replyHeader pending liftIO $ writeChan (shellReplyChannel interface) $ ShutdownReply replyHeader pending
liftIO exitSuccess liftIO exitSuccess
......
...@@ -90,6 +90,7 @@ parser ShutdownRequestMessage = shutdownRequestParser ...@@ -90,6 +90,7 @@ parser ShutdownRequestMessage = shutdownRequestParser
parser InputReplyMessage = inputReplyParser parser InputReplyMessage = inputReplyParser
parser CommOpenMessage = commOpenParser parser CommOpenMessage = commOpenParser
parser CommDataMessage = commDataParser parser CommDataMessage = commDataParser
parser CommInfoRequestMessage = commInfoRequestParser
parser CommCloseMessage = commCloseParser parser CommCloseMessage = commCloseParser
parser HistoryRequestMessage = historyRequestParser parser HistoryRequestMessage = historyRequestParser
parser StatusMessage = statusMessageParser parser StatusMessage = statusMessageParser
...@@ -104,6 +105,11 @@ parser other = error $ "Unknown message type " ++ show other ...@@ -104,6 +105,11 @@ parser other = error $ "Unknown message type " ++ show other
kernelInfoRequestParser :: LByteString -> Message kernelInfoRequestParser :: LByteString -> Message
kernelInfoRequestParser _ = KernelInfoRequest { header = noHeader } kernelInfoRequestParser _ = KernelInfoRequest { header = noHeader }
-- | Parse a comm info request. A comm info request has no auxiliary information, so ignore the
-- body.
commInfoRequestParser :: LByteString -> Message
commInfoRequestParser _ = CommInfoRequest { header = noHeader }
-- | Parse an execute_input response. Fields used are: -- | Parse an execute_input response. Fields used are:
executeInputParser :: LByteString -> Message executeInputParser :: LByteString -> Message
executeInputParser = requestParser $ \obj -> do executeInputParser = requestParser $ \obj -> do
......
...@@ -32,6 +32,13 @@ instance ToJSON Message where ...@@ -32,6 +32,13 @@ instance ToJSON Message where
, "language_info" .= languageInfo rep , "language_info" .= languageInfo rep
] ]
toJSON CommInfoReply
{ header = header
, commInfo = commInfo
} =
object
[ "comm_info" .= commInfo ]
toJSON ExecuteRequest toJSON ExecuteRequest
{ getCode = code { getCode = code
, getSilent = silent , getSilent = silent
......
...@@ -193,6 +193,8 @@ data MessageType = KernelInfoReplyMessage ...@@ -193,6 +193,8 @@ data MessageType = KernelInfoReplyMessage
| InputReplyMessage | InputReplyMessage
| CommOpenMessage | CommOpenMessage
| CommDataMessage | CommDataMessage
| CommInfoRequestMessage
| CommInfoReplyMessage
| CommCloseMessage | CommCloseMessage
| HistoryRequestMessage | HistoryRequestMessage
| HistoryReplyMessage | HistoryReplyMessage
...@@ -224,6 +226,8 @@ showMessageType InputRequestMessage = "input_request" ...@@ -224,6 +226,8 @@ showMessageType InputRequestMessage = "input_request"
showMessageType InputReplyMessage = "input_reply" showMessageType InputReplyMessage = "input_reply"
showMessageType CommOpenMessage = "comm_open" showMessageType CommOpenMessage = "comm_open"
showMessageType CommDataMessage = "comm_msg" showMessageType CommDataMessage = "comm_msg"
showMessageType CommInfoRequestMessage = "comm_info_request"
showMessageType CommInfoReplyMessage = "comm_info_reply"
showMessageType CommCloseMessage = "comm_close" showMessageType CommCloseMessage = "comm_close"
showMessageType HistoryRequestMessage = "history_request" showMessageType HistoryRequestMessage = "history_request"
showMessageType HistoryReplyMessage = "history_reply" showMessageType HistoryReplyMessage = "history_reply"
...@@ -256,6 +260,8 @@ instance FromJSON MessageType where ...@@ -256,6 +260,8 @@ instance FromJSON MessageType where
"input_reply" -> return InputReplyMessage "input_reply" -> return InputReplyMessage
"comm_open" -> return CommOpenMessage "comm_open" -> return CommOpenMessage
"comm_msg" -> return CommDataMessage "comm_msg" -> return CommDataMessage
"comm_info_request" -> return CommInfoRequestMessage
"comm_info_reply" -> return CommInfoReplyMessage
"comm_close" -> return CommCloseMessage "comm_close" -> return CommCloseMessage
"history_request" -> return HistoryRequestMessage "history_request" -> return HistoryRequestMessage
"history_reply" -> return HistoryReplyMessage "history_reply" -> return HistoryReplyMessage
...@@ -293,6 +299,14 @@ data Message = ...@@ -293,6 +299,14 @@ data Message =
, implementation :: String -- ^ e.g. IHaskell , implementation :: String -- ^ e.g. IHaskell
, implementationVersion :: String -- ^ The version of the implementation , implementationVersion :: String -- ^ The version of the implementation
, languageInfo :: LanguageInfo , languageInfo :: LanguageInfo
|
-- | A request from a frontend for information about the comms.
CommInfoRequest { header :: MessageHeader }
|
-- | A response to a CommInfoRequest.
CommInfoReply
{ header :: MessageHeader
, commInfo :: [(String, String)] -- ^ A dictionary of the comms, indexed by uuids.
} }
| |
-- | A request from a frontend to execute some code. -- | A request from a frontend to execute some code.
...@@ -519,6 +533,7 @@ replyType InspectRequestMessage = Just InspectReplyMessage ...@@ -519,6 +533,7 @@ replyType InspectRequestMessage = Just InspectReplyMessage
replyType ShutdownRequestMessage = Just ShutdownReplyMessage replyType ShutdownRequestMessage = Just ShutdownReplyMessage
replyType HistoryRequestMessage = Just HistoryReplyMessage replyType HistoryRequestMessage = Just HistoryReplyMessage
replyType CommOpenMessage = Just CommDataMessage replyType CommOpenMessage = Just CommDataMessage
replyType CommInfoRequestMessage = Just CommInfoReplyMessage
replyType _ = Nothing replyType _ = Nothing
-- | Data for display: a string with associated MIME type. -- | Data for display: a string with associated MIME type.
......
...@@ -263,6 +263,13 @@ replyTo _ KernelInfoRequest{} replyHeader state = ...@@ -263,6 +263,13 @@ replyTo _ KernelInfoRequest{} replyHeader state =
} }
}) })
replyTo _ CommInfoRequest{} replyHeader state =
return
(state, CommInfoReply
{ header = replyHeader
, commInfo = []
})
-- Reply to a shutdown request by exiting the main thread. Before shutdown, reply to the request to -- Reply to a shutdown request by exiting the main thread. Before shutdown, reply to the request to
-- let the frontend know shutdown is happening. -- let the frontend know shutdown is happening.
replyTo interface ShutdownRequest { restartPending = restartPending } replyHeader _ = liftIO $ do replyTo interface ShutdownRequest { restartPending = restartPending } replyHeader _ = liftIO $ do
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment