コード例 #1
0
        static MessageBenchmark()
        {
            var body = new Response("yess!");

            Value = (new Message
            {
                TargetActivation = ActivationId.NewId(),
                TargetSilo = SiloAddress.New(IPEndPoint.Parse("210.50.4.44:40902"), 5423123),
                TargetGrain = GrainId.Create("sys.mygrain", "borken_thee_doggo"),
                BodyObject = body,
                InterfaceType = GrainInterfaceType.Create("imygrain"),
                SendingActivation = ActivationId.NewId(),
                SendingSilo = SiloAddress.New(IPEndPoint.Parse("10.50.4.44:40902"), 5423123),
                SendingGrain = GrainId.Create("sys.mygrain", "fluffy_g"),
                TraceContext = new TraceContext {
                    ActivityId = Guid.NewGuid()
                },
                Id = CorrelationId.GetNext()
            }).Headers;

            //
            var services = new ServiceCollection()
                           .AddSerializer()
                           .BuildServiceProvider();

            Serializer = services.GetRequiredService <Serializer <Message.HeadersContainer> >();
            var bytes = new byte[4000];

            Session = services.GetRequiredService <SerializerSessionPool>().GetSession();
            var writer = new SingleSegmentBuffer(bytes).CreateWriter(Session);

            Serializer.Serialize(Value, ref writer);
            Input = bytes;
        }
コード例 #2
0
ファイル: MessageSerializer.cs プロジェクト: zpple/orleans
 public void Deserialize(ReadOnlySequence <byte> input, out Message.HeadersContainer value)
 {
     try
     {
         reader.PartialReset(input);
         value = (Message.HeadersContainer)Message.HeadersContainer.Deserializer(null, this.deserializationContext);
     }
     finally
     {
         this.deserializationContext.Reset();
     }
 }
コード例 #3
0
ファイル: MessageSerializer.cs プロジェクト: zpple/orleans
            public void Serialize <TBufferWriter>(TBufferWriter output, Message.HeadersContainer value) where TBufferWriter : IBufferWriter <byte>
            {
                var streamWriter = this.serializationContext.StreamWriter;

                if (streamWriter is BinaryTokenStreamWriter2 <TBufferWriter> writer)
                {
                    writer.PartialReset(output);
                }
                else
                {
                    this.serializationContext.StreamWriter = writer = new BinaryTokenStreamWriter2 <TBufferWriter>(output);
                }

                try
                {
                    Message.HeadersContainer.Serializer(value, this.serializationContext, null);
                }
                finally
                {
                    writer.Commit();
                    this.serializationContext.Reset();
                }
            }