in src/Servers/ShellServer.cs [164:225]
public virtual void OnKernelInfoRequest(Message message)
{
// Before handling the kernel info request, make sure to call any
// events for custom handling.
KernelInfoRequest?.Invoke(message);
try
{
// Tell the client we're about to handle their kernel_info_request.
this.SendIoPubMessage(
new Message
{
Header = new MessageHeader
{
MessageType = "status"
},
Content = new KernelStatusContent
{
ExecutionState = ExecutionState.Busy
}
}
.AsReplyTo(message)
);
this.SendShellMessage(
new Message
{
ZmqIdentities = message.ZmqIdentities,
ParentHeader = message.Header,
Metadata = null,
Content = this.context.Properties.AsKernelInfoReply(),
Header = new MessageHeader
{
MessageType = "kernel_info_reply",
Id = Guid.NewGuid().ToString(),
ProtocolVersion = "5.2.0"
}
}
);
// Once finished, have the shell server report that we are
// idle.
this.SendIoPubMessage(
new Message
{
Header = new MessageHeader
{
MessageType = "status"
},
Content = new KernelStatusContent
{
ExecutionState = ExecutionState.Idle
}
}
.AsReplyTo(message)
);
}
catch (Exception e)
{
this.logger?.LogError(e, "Unable to process KernelInfoRequest");
}
}