示例#1
0
        public void Convert(String value, BinaryWriteBuffer writeBuffer)
        {
            var length = Encoding.GetByteCount(value);
            var offset = writeBuffer.Advance(length);

            Convert(value, writeBuffer.Buffer, offset);
        }
示例#2
0
 public void Convert(T value, BinaryWriteBuffer writeBuffer)
 {
     byte[] data;
     using (var stream = new MemoryStream())
     {
         _typeModel.Serialize(stream, value);
         data = stream.ToArray();
     }
     writeBuffer.Write(data, 0, data.Length);
 }
示例#3
0
 /// <summary>
 /// Used by unit tests to simulate the stack already been set.
 /// </summary>
 /// <param name="encoding"></param>
 /// <param name="fieldNameResolver"></param>
 /// <param name="writeBuffer"></param>
 /// <param name="stack"></param>
 public JsonWriteVisitor(JsonEncoding encoding,
                         IFieldNameResolver fieldNameResolver,
                         BinaryWriteBuffer writeBuffer,
                         Stack <bool> stack)
 {
     _encoding          = encoding;
     _fieldNameResolver = fieldNameResolver;
     _writeBuffer       = writeBuffer;
     _isFirsts          = stack;
 }
示例#4
0
 public void AssertWriteVisitorCall(string expected, Action <JsonWriteVisitor> action)
 {
     using (var memStream = new MemoryStream()) {
         var buffer       = new BinaryWriteBuffer(1024, memStream);
         var writeVisitor = new JsonWriteVisitor(_encoding, _fieldNameResolver, buffer, new Stack <bool>(new [] { true }));
         action(writeVisitor);
         buffer.Flush();
         var actual = _encoding.BaseEncoding.GetString(memStream.ToArray());
         Assert.Equal(expected, actual);
     }
 }
        public byte[] Pack <T>(T graph)
        {
            var stream = new MemoryStream();

            using (var buffer = new BinaryWriteBuffer(1024, stream)) {
                var visitor = new PackedDataWriteVisitor(buffer);

                var traveller = CreateTraveller <T>();
                traveller.Travel(visitor, graph);
            }
            return(stream.ToArray());
        }
        public static byte[] GetFilledDataBlockBlob()
        {
            var stream = new MemoryStream();

            using (var buffer = new BinaryWriteBuffer(1024, stream)) {
                var visitor   = new PackedDataWriteVisitor(buffer);
                var traveller = DataBlockHardCodedTraveller.Create();
                traveller.Travel(visitor, DataBlock.Filled());
            }

            var bytes = stream.ToArray();

            return(bytes);
        }
示例#7
0
        public void Convert(UInt64 value, BinaryWriteBuffer writeBuffer)
        {
            var offset = writeBuffer.Advance(8);

            Convert(value, writeBuffer.Buffer, offset);
        }
示例#8
0
 void IBinaryConverter.Convert(object value, BinaryWriteBuffer writeBuffer)
 {
     Convert((UInt64)value, writeBuffer);
 }
示例#9
0
 public ModelDataWriteVisitor(BinaryWriteBuffer writeBuffer)
 {
     _writeBuffer  = writeBuffer;
     _writer       = new BinaryDataWriter(_writeBuffer);
     _reservations = new Stack <BinaryBufferReservation>();
 }
示例#10
0
 public BinaryDataWriter(BinaryWriteBuffer writeBuffer, Encoding encoding)
 {
     _writeBuffer = writeBuffer;
     _encoding    = encoding;
 }
示例#11
0
 void IBinaryConverter.Convert(object value, BinaryWriteBuffer writeBuffer)
 {
     Convert((TimeSpan)value, writeBuffer);
 }
示例#12
0
        public void Convert(Decimal value, BinaryWriteBuffer writeBuffer)
        {
            var offset = writeBuffer.Advance(16);

            Convert(value, writeBuffer.Buffer, offset);
        }
示例#13
0
 public BinaryDataWriter(BinaryWriteBuffer writeBuffer)
     : this(writeBuffer, Encoding.UTF8)
 {
 }
示例#14
0
 public JsonWriteVisitor(JsonEncoding encoding,
                         IFieldNameResolver fieldNameResolver,
                         BinaryWriteBuffer writeBuffer)
     : this(encoding, fieldNameResolver, writeBuffer, new Stack <bool>())
 {
 }
示例#15
0
        public void Convert(SByte value, BinaryWriteBuffer writeBuffer)
        {
            var offset = writeBuffer.Advance(1);

            Convert(value, writeBuffer.Buffer, offset);
        }
示例#16
0
 void IBinaryConverter.Convert(object value, BinaryWriteBuffer writeBuffer)
 {
     Convert((Single)value, writeBuffer);
 }
示例#17
0
 void IBinaryConverter.Convert(object value, BinaryWriteBuffer writeBuffer)
 {
     Convert((Decimal)value, writeBuffer);
 }
示例#18
0
 void IBinaryConverter.Convert(object value, BinaryWriteBuffer writeBuffer)
 {
     Convert((DateTime)value, writeBuffer);
 }