public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
        {
            var type = TypeSimplifier.SimplifyType((Type)subject);
            var typeBinaryRepresentation = fullTypeBinaryRepresentationCache.GetOrCompute(type);

            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(typeof(Type)));
            dest.Write(typeBinaryRepresentation);
        }
        private void HandleWriteThingInt8(SomeMemoryStreamWrapperThing dest, sbyte subject)
        {
            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(typeof(sbyte)));
            var buffer = GetWriterBuffer();

            buffer[0] = (byte)subject;
            dest.Write(buffer, 0, sizeof(sbyte));
        }
Ejemplo n.º 3
0
        public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
        {
            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(simplifiedKvpType));

            using (dest.ReserveLength()) {
                dynamic s = subject;
                thisIsTotesTheRealLegitThingReaderWriterThing.WriteThing(dest, s.Key);
                thisIsTotesTheRealLegitThingReaderWriterThing.WriteThing(dest, s.Value);
            }
        }
        public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
        {
            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(typeof(string)));

            var str = (string)subject;

            using (dest.ReserveLength()) {
                var bytes = Encoding.UTF8.GetBytes(str);
                dest.Write(bytes);
            }
        }
        public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
        {
            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(simplifiedType));

            using (dest.ReserveLength())
                using (var slotCountReservation = dest.ReserveCount()) {
                    var writer = new WriterThing(thisIsTotesTheRealLegitThingReaderWriterThing, dest);
                    userTypeSerializer.Serialize(writer, (TUserType)subject);
                    slotCountReservation.SetValue(writer.SlotCount);
                }
        }
        public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
        {
            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(typeof(float)));

            var buffer = GetWriterBuffer();

            fixed(byte *pBuffer = buffer)
            {
                *(float *)pBuffer = (float)subject;
            }

            dest.Write(buffer);
        }
        public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
        {
            var byteArraySlice = (ByteArraySlice)subject;

            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(typeof(byte[])));

            using (dest.ReserveLength())
                using (var countReservation = dest.ReserveCount()) {
                    for (var i = 0; i < byteArraySlice.Length; i++)
                    {
                        byteReaderWriter.WriteThing(dest, byteArraySlice.Buffer[i + byteArraySlice.Offset]);
                    }
                    countReservation.SetValue(byteArraySlice.Length);
                }
        }
        public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
        {
            dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(simplifiedCollectionType));

            using (dest.ReserveLength())
                using (var countReservation = dest.ReserveCount()) {
                    int count = 0;
                    foreach (var x in (IEnumerable)subject)
                    {
                        count++;
                        thingReaderWriterDispatcherThing.WriteThing(dest, x);
                    }
                    countReservation.SetValue(count);
                }
        }
 public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
 {
     dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(typeof(TBoolTrue)));
 }
Ejemplo n.º 10
0
 public void WriteThing(SomeMemoryStreamWrapperThing dest, object subject)
 {
     dest.Write(fullTypeBinaryRepresentationCache.GetOrCompute(typeof(Guid)));
     dest.Write(((Guid)subject).ToByteArray());
 }