private String DecodeHeader()

in src/main/csharp/Protocol/StompFrame.cs [330:375]


        private String DecodeHeader(String header)
        {
            MemoryStream decoded = new MemoryStream();

            int value = -1;
            byte[] utf8buf = this.encoding.GetBytes(header);
            MemoryStream stream = new MemoryStream(utf8buf);

            while((value = stream.ReadByte()) != -1)
            {
                if(value == 92)
                {
                    int next = stream.ReadByte();
                    if (next != -1)
                    {
                        switch(next) {
                        case 110:
                            decoded.WriteByte(BREAK);
                            break;
                        case 99:
                            decoded.WriteByte(COLON);
                            break;
                        case 92:
                            decoded.WriteByte(ESCAPE);
                            break;
                        default:
                            stream.Seek(-1, SeekOrigin.Current);
                            decoded.WriteByte((byte)value);
                            break;
                        }
                    }
                    else
                    {
                        decoded.WriteByte((byte)value);
                    }

                }
                else
                {
                    decoded.WriteByte((byte)value);
                }
            }

            byte[] data = decoded.ToArray();
            return encoding.GetString(data, 0, data.Length);
        }