Exemplo n.º 1
0
 public async Task Send(IPCMessage.IIPCMessage msg, CancellationToken cancellationToken)
 {
     RawIPCMessage rawMsg = new RawIPCMessage {
         MessageName = msg.MessageName, Contents = msg.Encode()
     };
     await upStream.Write(rawMsg, cancellationToken).ConfigureAwait(false);
 }
Exemplo n.º 2
0
        public async Task Write(RawIPCMessage msg, CancellationToken cancellationToken)
        {
            string[] texts     = new string[] { msg.MessageName };
            byte[]   dataBytes = encoding.GetBytes(string.Join("\u001F", texts.Concat(msg.Contents)) + '\u001E');

            await BaseStream.WriteAsync(dataBytes, 0, dataBytes.Length, cancellationToken).ConfigureAwait(false);

            await BaseStream.FlushAsync(cancellationToken).ConfigureAwait(false);
        }
Exemplo n.º 3
0
        public static IPCMessage.IIPCMessage FromRawIPCMessage(RawIPCMessage rawmsg)
        {
            IPCMessage.IIPCMessage ret;
            switch (rawmsg.MessageName)
            {
            case "Chat":
                ret = new IPCMessage.ChatIPCMessage();
                break;

            case "ChannelList":
                ret = new IPCMessage.ChannelListIPCMessage();
                break;

            case "ChannelSelect":
                ret = new IPCMessage.ChannelSelectIPCMessage();
                break;

            case "CurrentChannel":
                ret = new IPCMessage.CurrentChannelIPCMessage();
                break;

            case "Time":
                ret = new IPCMessage.TimeIPCMessage();
                break;

            case "Close":
                ret = new IPCMessage.CloseIPCMessage();
                break;

            case "SetChatOpacity":
                ret = new IPCMessage.SetChatOpacityIPCMessage();
                break;

            case "Command":
                ret = new IPCMessage.CommandIPCMessage();
                break;

            default:
                throw new IPCMessage.IPCMessageDecodeException("不明なMessageNameです: " + rawmsg.ToString());
            }
            ret.Decode(rawmsg.Contents);
            return(ret);
        }