Exemplo n.º 1
0
        private BufferSlice EncodeMessage(Message msg)
        {
            if (msg.Body.Length != 0)
                msg.Headers["Content-Length"] = msg.Body.Length.ToString();

            var buffer = new byte[65535];
            long length = 0;
            using (var stream = new MemoryStream(buffer))
            {
                stream.SetLength(0);
                using (var writer = new StreamWriter(stream))
                {
                    foreach (string key in msg.Headers)
                    {
                        writer.Write("{0}: {1}\n".FormatWith(key, msg.Headers[key]));
                    }
                    writer.Write("\n");
                    msg.Body.CopyTo(stream);

                    writer.Flush();
                    length = stream.Length;
                }
            }

            string tmp = Encoding.ASCII.GetString(buffer, 0, (int) length);
            return new BufferSlice(buffer, 0, (int) length);
        }
Exemplo n.º 2
0
 public DecoderContext()
 {
     Message = new Message();
     CurrentHeaderName = "";
     IsComplete = false;
     Reader = new BufferSliceReader();
 }
Exemplo n.º 3
0
 private void OnCommand(Command cmd, Message reply)
 {
     switch (cmd.CommandName)
     {
         case "auth":
             SendCommand("events", "plain", "all");
             break;
         case "events":
             //SendBackgroundCommand("status");
             break;
         case "bgapi":
             HandleBgApiResponse(cmd, reply);
             break;
         default:
             Console.WriteLine("Unknown command: " + cmd.CommandName);
             break;
     }
 }
Exemplo n.º 4
0
 private void HandleBgApiResponse(Command cmd, Message reply)
 {
     string uid = reply.Headers["Job-UUID"];
     cmd.As<BackgroundCommand>().JobId = uid;
     _waitingCommands[uid] = cmd.As<BackgroundCommand>();
 }