Пример #1
0
        public override void WriteData(FastBinaryWriter writer, Object additionalInfo)
        {
            base.WriteData(writer, additionalInfo);

            writer.Write(Expanded);
            writer.WriteSafeString(Caption);

            // write children
            writer.Write(Children.Count);
            foreach (RICustomDataElement element in Children)
            {
                Int32 elementTypeHash = RICustomDataFieldTypeHash;
                if (element.CustomDataType == RICustomDataElementType.Row)
                {
                    elementTypeHash = RICustomDataRowTypeHash;
                }
                else if (element.CustomDataType == RICustomDataElementType.Category)
                {
                    elementTypeHash = RICustomDataCategoryTypeHash;
                }
                else if (element.CustomDataType == RICustomDataElementType.Container)
                {
                    elementTypeHash = RICustomDataContainerTypeHash;
                }

                writer.Write(elementTypeHash);
                writer.Write(element);
            }
        }
Пример #2
0
 static void Write <R>(R reader, OutputStream output, string toProtocol)
 {
     if (toProtocol == "compact")
     {
         var writer = new CompactBinaryWriter <OutputStream>(output);
         Serialize.To(writer, Deserialize <Compat> .From(reader));
     }
     else if (toProtocol == "fast")
     {
         var writer = new FastBinaryWriter <OutputStream>(output);
         Serialize.To(writer, Deserialize <Compat> .From(reader));
     }
     else if (toProtocol == "simple")
     {
         var writer = new SimpleBinaryWriter <OutputStream>(output);
         Serialize.To(writer, Deserialize <Compat> .From(reader));
     }
     else if (toProtocol == "simple2")
     {
         var writer = new SimpleBinaryWriter <OutputStream>(output, 2);
         Serialize.To(writer, Deserialize <Compat> .From(reader));
     }
     else
     {
         Console.WriteLine("Unsupported output protocol {0}", toProtocol);
     }
     output.Flush();
 }
Пример #3
0
 public virtual void WriteData(FastBinaryWriter writer, Object additionalInfo)
 {
     writer.Write(SaveOnNewDay);
     writer.Write(SaveOnMsgLimit);
     writer.Write(RecycleFilesEvery);
     writer.Write(SaveOnSize);
 }
Пример #4
0
        public void Setup()
        {
            googleProtobufPersonBytes = BenchmarksData.ProtobufPerson().ToByteArray();

            var protobufNetStream = new MemoryStream();

            ProtoBuf.Serializer.Serialize(protobufNetStream, BenchmarksData.ProtobufNetPerson());
            protobufNetPersonBytes = protobufNetStream.ToArray();

            var bondPerson = BenchmarksData.BondPerson();

            var compactOutput         = new OutputBuffer(256);
            var compactWriter         = new CompactBinaryWriter <OutputBuffer>(compactOutput);
            var compactBondSerializer = new Serializer <CompactBinaryWriter <OutputBuffer> >(typeof(Bond.Person));

            compactBondSerializer.Serialize(bondPerson, compactWriter);
            compactBondPersonBytes = compactOutput.Data.ToArray();

            var fastOutput         = new OutputBuffer(256);
            var fastWriter         = new FastBinaryWriter <OutputBuffer>(fastOutput);
            var fastBondSerializer = new Serializer <FastBinaryWriter <OutputBuffer> >(typeof(Bond.Person));

            fastBondSerializer.Serialize(bondPerson, fastWriter);
            fastBondPersonBytes = fastOutput.Data.ToArray();
        }
Пример #5
0
        public static void SetupBondBinary(
            out Action <object, ChunkedMemoryStream> serialize,
            out Func <ChunkedMemoryStream, Type, object> deserialize)
        {
            var serializers   = new Dictionary <Type, Bond.Serializer <FastBinaryWriter <OutputStream> > >();
            var deserializers = new Dictionary <Type, Bond.Deserializer <FastBinaryReader <InputStream> > >();

            serialize = (obj, stream) =>
            {
                var output = new OutputStream(stream, 512);
                var writer = new FastBinaryWriter <OutputStream>(output);
                Bond.Serializer <FastBinaryWriter <OutputStream> > serializer;
                var type = obj.GetType();
                if (!serializers.TryGetValue(type, out serializer))
                {
                    serializers[type] = serializer = new Bond.Serializer <FastBinaryWriter <OutputStream> >(type);
                }
                serializer.Serialize(obj, writer);
                output.Flush();
            };
            deserialize = (stream, type) =>
            {
                var input  = new InputStream(stream, 512);
                var reader = new FastBinaryReader <InputStream>(input);
                Bond.Deserializer <FastBinaryReader <InputStream> > deserializer;
                if (!deserializers.TryGetValue(type, out deserializer))
                {
                    deserializers[type] = deserializer = new Bond.Deserializer <FastBinaryReader <InputStream> >(type);
                }
                return(deserializer.Deserialize(reader));
            };
        }
 public override void Serialize(object serializable, Stream outputStream)
 {
     Initialize();
     var output = new OutputStream(outputStream);
     var writer = new FastBinaryWriter<OutputStream>(output);
     _serializerStream.Serialize(serializable, writer);
 }
Пример #7
0
 public void Store(FastBinaryWriter writer)
 {
     writer.WriteByte((byte)TraceEntryTypes.HeapAllocation);
     writer.WriteInt32(Id);
     writer.WriteUInt32(Size);
     writer.WriteUInt64(Address);
 }
Пример #8
0
 public virtual void WriteData(FastBinaryWriter writer, Object additionalInfo)
 {
     writer.Write(SessionId);
     writer.Write(RequestId);
     writer.Write(Sequence);
     writer.WriteByteArray(Chunk);
 }
Пример #9
0
        public override void WriteData(FastBinaryWriter writer, Object additionalInfo)
        {
            base.WriteData(writer, additionalInfo);

            // Hint is no longer used. This line is left here for backward compatibility
            writer.WriteSafeString(null);

            writer.Write(ColumnPos);

            if (writer.WriteNullState(Value))
            {
                switch (Column.FieldTypeId)
                {
                case RICustomDataFieldIdType.Decimal: writer.Write(Decimal.Parse(Value.ToString())); break;

                case RICustomDataFieldIdType.Integer: writer.Write(Int64.Parse(Value.ToString())); break;

                case RICustomDataFieldIdType.DateTime: writer.Write((DateTime)Value); break;

                case RICustomDataFieldIdType.Boolean: writer.Write((Boolean)Value); break;

                case RICustomDataFieldIdType.String: writer.Write(Value.ToString()); break;

                case RICustomDataFieldIdType.Object: writer.Write(Value.ToString()); break;

                case RICustomDataFieldIdType.Unknown: writer.Write(Value.ToString()); break;
                }
            }
        }
 public virtual void WriteData(FastBinaryWriter writer, Object additionalInfo)
 {
     writer.Write(FColor);
     writer.Write(FHue);
     writer.Write(FSaturation);
     writer.Write(FBrightness);
 }
 public virtual void WriteData(FastBinaryWriter writer, Object additionalInfo)
 {
     // Version 5.0 data types
     writer.Write(FSequenceID);
     writer.Write(FSessionID);
     writer.Write(FRequestID);
     writer.Write(FSourceUtcOffset);
     writer.Write(FDateTime);
     writer.Write(FDomainID);
     writer.Write(FProcessID);
     writer.Write(FThreadID);
     writer.Write(FCategory);
     writer.Write(FApplication);
     writer.Write(FMachineName);
     writer.Write(FUserDomainName);
     writer.Write(FUserName);
     writer.Write(FIndentLevel);
     writer.Write(FBkColor.ToArgb());
     writer.Write(FMessageType.GetHashCode());
     writer.Write(FMessageSubType);
     writer.Write(FMessage);
     writer.Write(FDetailType);
     writer.Write(FExtPropertyContainer);
     writer.Write(FSubDetails);
     writer.Write(FDetails);
 }
Пример #12
0
        public static int FastBondSize <T>(this T data)
        {
            var output = new OutputBuffer();
            var writer = new FastBinaryWriter <OutputBuffer>(output);

            Serialize.To(writer, data);
            return(output.Data.Count);
        }
Пример #13
0
        public static ArraySegment <byte> SerializeFB <T>(T obj)
        {
            var output = new OutputBuffer();
            var writer = new FastBinaryWriter <OutputBuffer>(output);

            Serialize.To(writer, obj);
            return(output.Data);
        }
 public override string Serialize(object serializable)
 {
     Initialize();
     var output = new OutputBuffer(2*1024);
     var writer = new FastBinaryWriter<OutputBuffer>(output);
     _serializer.Serialize(serializable, writer);
     return Convert.ToBase64String(output.Data.Array, output.Data.Offset, output.Data.Count);
 }
Пример #15
0
        public override void WriteData(FastBinaryWriter writer, Object additionalInfo)
        {
            base.WriteData(writer, additionalInfo);

            writer.Write(FExtraData);
            writer.Write(FExtraDataTypeHash);
            writer.Write(Fields.ToArray());
        }
Пример #16
0
 public virtual void WriteData(FastBinaryWriter writer, Object additionalInfo)
 {
     writer.Write(FieldTypeId.GetHashCode());
     writer.Write(Justification.GetHashCode());
     writer.WriteSafeString(Caption);
     writer.WriteSafeString(Format);
     writer.WriteSafeString(NullText);
 }
Пример #17
0
        public override void Serialize(object serializable, Stream outputStream)
        {
            Initialize();
            var output = new OutputStream(outputStream);
            var writer = new FastBinaryWriter <OutputStream>(output);

            _serializerStream.Serialize(serializable, writer);
        }
Пример #18
0
        public static void MarshalFB <T>(T obj, Stream stream)
        {
            var output = new OutputStream(stream, 11);
            var writer = new FastBinaryWriter <OutputStream>(output);

            Marshal.To(writer, obj);
            output.Flush();
        }
Пример #19
0
        public int FastBond()
        {
            var output = new OutputBuffer(256);
            var writer = new FastBinaryWriter <OutputBuffer>(output);

            fastBondSerializer.Serialize(BondPerson, writer);
            return(output.Data.Count);
        }
Пример #20
0
        public static void SerializeFB(IBonded obj, Stream stream)
        {
            var output = new OutputStream(stream, 11);
            var writer = new FastBinaryWriter <OutputStream>(output);

            Serialize.To(writer, obj);
            output.Flush();
        }
 private static void WriteBooleanArray(FastBinaryWriter writer, Boolean[] array)
 {
     writer.Write(array.Length);
     foreach (Boolean value in array)
     {
         writer.Write(value);
     }
 }
 public virtual void WriteData(FastBinaryWriter writer, Object additionalInfo)
 {
     writer.Write(FFilterInfo);
     writer.Write(FFilterDefined);
     WriteBooleanArray(writer, FMessages);
     WriteBooleanArray(writer, FCheckpoints);
     WriteBooleanArray(writer, FCheckmarks);
     WriteBooleanArray(writer, FLevels);
 }
Пример #23
0
 public void Store(FastBinaryWriter writer)
 {
     writer.WriteByte((byte)TraceEntryTypes.StackAllocation);
     writer.WriteInt32(Id);
     writer.WriteInt32(InstructionImageId);
     writer.WriteUInt32(InstructionRelativeAddress);
     writer.WriteUInt32(Size);
     writer.WriteUInt64(Address);
 }
Пример #24
0
        public static void SerializerMarshalFB <T>(T obj, Stream stream)
        {
            var output     = new OutputStream(stream, 11);
            var writer     = new FastBinaryWriter <OutputStream>(output);
            var serializer = new Serializer <FastBinaryWriter <OutputStream> >(typeof(T));

            serializer.Marshal(obj, writer);
            output.Flush();
        }
Пример #25
0
        internal static Frame MessageToFrame(ulong conversationId, string methodName, PayloadType type, IMessage payload, IBonded layerData, Logger logger)
        {
            var frame = new Frame(logger);

            {
                var headers = new EpoxyHeaders
                {
                    conversation_id = conversationId,
                    payload_type    = type,
                    method_name     = methodName ?? string.Empty, // method_name is not nullable
                };

                if (payload.IsError)
                {
                    headers.error_code = payload.Error.Deserialize <Error>().error_code;
                }
                else
                {
                    headers.error_code = (int)ErrorCode.OK;
                }

                const int initialHeaderBufferSize = 150;
                var       outputBuffer            = new OutputBuffer(initialHeaderBufferSize);
                var       fastWriter = new FastBinaryWriter <OutputBuffer>(outputBuffer);
                Serialize.To(fastWriter, headers);

                frame.Add(new Framelet(FrameletType.EpoxyHeaders, outputBuffer.Data));
            }

            if (layerData != null)
            {
                const int initialLayerDataBufferSize = 150;
                var       outputBuffer  = new OutputBuffer(initialLayerDataBufferSize);
                var       compactWriter = new CompactBinaryWriter <OutputBuffer>(outputBuffer);
                // TODO: See TODO below about issues with IBonded Marshal.TO(...)
                compactWriter.WriteVersion();
                layerData.Serialize(compactWriter);
                frame.Add(new Framelet(FrameletType.LayerData, outputBuffer.Data));
            }

            {
                var userData = payload.IsError ? (IBonded)payload.Error : (IBonded)payload.RawPayload;


                const int initialPayloadBufferSize = 1024;
                var       outputBuffer             = new OutputBuffer(initialPayloadBufferSize);
                var       compactWriter            = new CompactBinaryWriter <OutputBuffer>(outputBuffer);
                // TODO: marshal dies on IBonded Marshal.To(compactWriter, request)
                // understand more deeply why and consider fixing
                compactWriter.WriteVersion();
                userData.Serialize(compactWriter);

                frame.Add(new Framelet(FrameletType.PayloadData, outputBuffer.Data));
            }

            return(frame);
        }
Пример #26
0
        public override string Serialize(object serializable)
        {
            Initialize();
            var output = new OutputBuffer(2 * 1024);
            var writer = new FastBinaryWriter <OutputBuffer>(output);

            _serializer.Serialize(serializable, writer);
            return(Convert.ToBase64String(output.Data.Array, output.Data.Offset, output.Data.Count));
        }
Пример #27
0
 /// <summary>
 /// Saves image file data.
 /// </summary>
 /// <param name="writer">Binary writer.</param>
 public void Store(FastBinaryWriter writer)
 {
     writer.WriteInt32(Id);
     writer.WriteUInt64(StartAddress);
     writer.WriteUInt64(EndAddress);
     writer.WriteInt32(Name.Length);
     writer.WriteChars(Name.ToCharArray());
     writer.WriteBoolean(Interesting);
 }
        public override void Serialize(object serializable, Stream outputStream)
        {
            Initialize();
            //outputStream.Seek(0, SeekOrigin.Begin);
            var output = new OutputStream(outputStream);
            var writer = new FastBinaryWriter <OutputStream>(output);

            _serializerStream.Serialize(serializable, writer);
            output.Flush();
        }
 public virtual void WriteData(FastBinaryWriter writer, Object additionalInfo)
 {
     writer.Write(Caption ?? String.Empty);
     writer.Write((Int16)Properties.Count);
     foreach (String key in Properties.AllKeys)
     {
         writer.Write(key ?? String.Empty);
         writer.Write(Properties[key] ?? String.Empty);
     }
 }
Пример #30
0
 public void Store(FastBinaryWriter writer)
 {
     writer.WriteByte((byte)TraceEntryTypes.Branch);
     writer.WriteInt32(SourceImageId);
     writer.WriteUInt32(SourceInstructionRelativeAddress);
     writer.WriteInt32(DestinationImageId);
     writer.WriteUInt32(DestinationInstructionRelativeAddress);
     writer.WriteBoolean(Taken);
     writer.WriteByte((byte)BranchType);
 }
Пример #31
0
        public static byte[] Serialize <T>(T message)
        {
            var sizeOfMessage = SizeMapperManager.SizeOfMessage(message, true);
            var fbw           = new FastBinaryWriter(sizeOfMessage);

            fbw.CreateContext(
                ctx => Serialize(message, ctx));

            return(fbw.Buffer);
        }
Пример #32
0
 public void Store(FastBinaryWriter writer)
 {
     writer.WriteByte((byte)TraceEntryTypes.HeapMemoryAccess);
     writer.WriteBoolean(IsWrite);
     writer.WriteInt16(Size);
     writer.WriteInt32(InstructionImageId);
     writer.WriteUInt32(InstructionRelativeAddress);
     writer.WriteInt32(HeapAllocationBlockId);
     writer.WriteUInt32(MemoryRelativeAddress);
 }