Ejemplo n.º 1
0
 /// <inheritdoc/>
 public override string ToString()
 {
     return(MessagePackFormatter.ToString(new
     {
         id = this.Id,
     }));
 }
Ejemplo n.º 2
0
    public async Task BasicJsonRpc()
    {
        var(clientStream, serverStream) = FullDuplexStream.CreatePair();
        var clientFormatter = new MessagePackFormatter();
        var serverFormatter = new MessagePackFormatter();

        var clientHandler = new LengthHeaderMessageHandler(clientStream.UsePipe(), clientFormatter);
        var serverHandler = new LengthHeaderMessageHandler(serverStream.UsePipe(), serverFormatter);

        var clientRpc = new JsonRpc(clientHandler);
        var serverRpc = new JsonRpc(serverHandler, new Server());

        serverRpc.TraceSource = new TraceSource("Server", SourceLevels.Verbose);
        clientRpc.TraceSource = new TraceSource("Client", SourceLevels.Verbose);

        serverRpc.TraceSource.Listeners.Add(new XunitTraceListener(this.Logger));
        clientRpc.TraceSource.Listeners.Add(new XunitTraceListener(this.Logger));

        clientRpc.StartListening();
        serverRpc.StartListening();

        int result = await clientRpc.InvokeAsync <int>(nameof(Server.Add), 3, 5).WithCancellation(this.TimeoutToken);

        Assert.Equal(8, result);
    }
        public static ArraySegment <Byte> SerializeToMessagePack <T>(this SerializerBase <T> s, T o)
        {
            var f = new MessagePackFormatter();

            s.Serialize(o, f);
            return(f.GetStore().Bytes);
        }
        public static ArraySegment <Byte> ToMessagePack <PARSER>(this PARSER parser)
            where PARSER : IParser <PARSER>
        {
            var formatter = new MessagePackFormatter();

            parser.Convert(formatter);
            return(formatter.GetStore().Bytes);
        }
Ejemplo n.º 5
0
            public override T Serialize <T>(T value)
            {
                var formatter = new MessagePackFormatter();

                return(Serialize(m_r
                                 , formatter
                                 , MessagePackParser.Parse
                                 , value));
            }
        protected override IJsonRpcMessageFormatter CreateFormatter()
        {
            Assumes.True(Formatter == Formatters.MessagePack);

            MessagePackFormatter formatter = base.CreateFormatter() as MessagePackFormatter ?? new MessagePackFormatter();

            formatter.SetMessagePackSerializerOptions(MessagePackSerializerOptions);
            return(formatter);
        }
Ejemplo n.º 7
0
 /// <inheritdoc/>
 public override string ToString()
 {
     return(MessagePackFormatter.ToString(new
     {
         id = this.Id,
         error = new
         {
             code = this.Error?.Code,
             message = this.Error?.Message,
         },
     }));
 }
Ejemplo n.º 8
0
        public void PackMultipleTimes()
        {
            var    formatter = new MessagePackFormatter();
            string value1    = new String('A', 65);
            string value2    = new String('B', 5);

            byte[] data1   = formatter.Serialize(value1);
            byte[] data2   = formatter.Serialize(value2);
            string result1 = formatter.Deserialize <string>(data1);
            string result2 = formatter.Deserialize <string>(data2);

            Assert.AreEqual(value1, result1);
            Assert.AreEqual(value2, result2);
        }
Ejemplo n.º 9
0
    protected override void InitializeFormattersAndHandlers()
    {
        var serverMessageFormatter = new MessagePackFormatter();
        var clientMessageFormatter = new MessagePackFormatter();

        var options = MessagePackFormatter.DefaultUserDataSerializationOptions
                      .WithResolver(CompositeResolver.Create(
                                        new IMessagePackFormatter[] { },
                                        new IFormatterResolver[] { StandardResolverAllowPrivate.Instance }));

        serverMessageFormatter.SetMessagePackSerializerOptions(options);
        clientMessageFormatter.SetMessagePackSerializerOptions(options);

        this.serverMessageHandler = new LengthHeaderMessageHandler(this.serverStream, this.serverStream, serverMessageFormatter);
        this.clientMessageHandler = new LengthHeaderMessageHandler(this.clientStream, this.clientStream, clientMessageFormatter);
    }
Ejemplo n.º 10
0
        public static ArraySegment <Byte> SerializeToMessagePackMap <K0, T0, K1, T1>(this TypeRegistry r
                                                                                     , K0 key0, T0 value0
                                                                                     , K1 key1, T1 value1
                                                                                     )
        {
            var f = new MessagePackFormatter();

            f.BeginMap(2);
            r.GetSerializer <K0>().Serialize(key0, f);
            r.GetSerializer <T0>().Serialize(value0, f);
            r.GetSerializer <K1>().Serialize(key1, f);
            r.GetSerializer <T1>().Serialize(value1, f);
            f.EndMap();

            return(f.GetStore().Bytes);
        }
Ejemplo n.º 11
0
        public static bool Equals <TKey>(IDataReader <TKey> reader1, IDataReader <TKey> reader2)
        {
            try
            {
                using var keys1 = reader1.Keys.GetEnumerator();
                using var keys2 = reader2.Keys.GetEnumerator();

Loop:

                var m1 = keys1.MoveNext();
                var m2 = keys2.MoveNext();

                if (m1 != m2)
                {
                    return(false);
                }

                if (m1)
                {
                    var key1   = keys1.Current;
                    var key2   = keys1.Current;
                    var value1 = reader1[key1].DirectRead();
                    var value2 = reader2[key2].DirectRead();

                    if (Equals(key1, key2) && Equals(value1, value2))
                    {
                        goto Loop;
                    }

                    return(false);
                }

                return(true);
            }
            catch
            {
                var obj1 = MessagePackFormatter.DeserializeObject <object>(MessagePackFormatter.SerializeObject(reader1));
                var obj2 = MessagePackFormatter.DeserializeObject <object>(MessagePackFormatter.SerializeObject(reader2));

                return(Equals(obj1, obj2));
            }
        }
Ejemplo n.º 12
0
        public void nil()
        {
            {
                var w = new MessagePackFormatter();;
                w.Null();
                var bytes = w.GetStore().Bytes;
                Assert.AreEqual(new Byte[] { 0xC0 }, bytes.ToEnumerable());

                var parsed = MessagePackParser.Parse(bytes);
                Assert.True(parsed.IsNull);
            }

            {
                var bytes = m_r.SerializeToMessagePack((object)null);
                Assert.AreEqual(new Byte[] { (byte)MsgPackType.NIL }, bytes.ToEnumerable());

                var parsed = MessagePackParser.Parse(bytes);
                Assert.True(parsed.IsNull);
            }
        }
Ejemplo n.º 13
0
        public void map16()
        {
            var w    = new MessagePackFormatter();;
            int size = 18;

            w.BeginMap(size);
            for (int i = 0; i < size; ++i)
            {
                w.Value(i);
                w.Value(i + 5);
            }
            var bytes = w.GetStore().Bytes.ToEnumerable().ToArray();

            Assert.AreEqual(
                new Byte[] { 0xde, 0x0, 0x12, 0x0, 0x5, 0x1, 0x6, 0x2, 0x7, 0x3, 0x8, 0x4, 0x9, 0x5, 0xa, 0x6, 0xb, 0x7, 0xc, 0x8, 0xd, 0x9, 0xe, 0xa, 0xf, 0xb, 0x10, 0xc,
                             0x11, 0xd, 0x12, 0xe, 0x13, 0xf, 0x14, 0x10, 0x15, 0x11, 0x16 },
                bytes);


            var value = MessagePackParser.Parse(bytes);

            Assert.AreEqual(15, value.GetValueByIntKey(10).GetInt32());
        }
 public override byte[] Serialize <TObject>(TObject obj)
 {
     return(MessagePackFormatter.SerializeObject(obj));
 }
 public override TObject Deserialize <TObject>(byte[] symbols)
 {
     return(MessagePackFormatter.DeserializeObject <TObject>(symbols));
 }
Ejemplo n.º 16
0
 public override TObject Deserialize <TObject>(byte[] symbols)
 {
     return(MessagePackFormatter.DeserializeObject <TObject>(symbols, MessagePackFormatterOptions.IgnoreNull | MessagePackFormatterOptions.IgnoreZero));
 }
Ejemplo n.º 17
0
 private static MessagePackFormatter ConfigureFormatter(MessagePackFormatter formatter)
 {
     // See https://github.com/neuecc/messagepack-csharp.
     formatter.SetMessagePackSerializerOptions(s_options);
     return(formatter);
 }