예제 #1
0
        // TODO -- should we be using some kind of memory pooling here?
        private void writeSingle(BinaryWriter writer)
        {
            writer.Write(EnvelopeVersionId.SourceInstanceId.ToByteArray());
            writer.Write(EnvelopeVersionId.MessageIdentifier.ToByteArray());
            writer.Write(Destination?.QueueName() ?? "");
            writer.Write(SubQueue ?? "");
            writer.Write(SentAt.ToBinary());

            writer.Flush();

            using (var headerData = new MemoryStream())
            {
                using (var headerWriter = new BinaryWriter(headerData))
                {
                    var count = writeHeaders(headerWriter);
                    headerWriter.Flush();

                    writer.Write(count);

                    headerData.Position = 0;
                    headerData.CopyTo(writer.BaseStream);
                }
            }

            writer.Write(Data.Length);
            writer.Write(Data);
        }
예제 #2
0
        private void writeSingle(BinaryWriter writer)
        {
            writer.Write(SentAt.ToBinary());

            writer.Flush();

            using (var headerData = new MemoryStream())
            {
                using (var headerWriter = new BinaryWriter(headerData))
                {
                    var count = writeHeaders(headerWriter);
                    headerWriter.Flush();

                    writer.Write(count);

                    headerData.Position = 0;
                    headerData.CopyTo(writer.BaseStream);
                }
            }

            writer.Write(Data.Length);
            writer.Write(Data);
        }