コード例 #1
0
        public void TestIndices()
        {
            var map = new KeyIndexMap(Keys);

            int index;

            Assert.IsTrue(map.TryGetIndex(Utf8Keys[0], out index));
            Assert.AreEqual(0, index);
            Assert.IsTrue(map.TryGetIndex(Utf8Keys[2], out index));
            Assert.AreEqual(2, index);
            Assert.IsFalse(map.TryGetIndex(Utf8Keys[3], out index));
        }
コード例 #2
0
            global::BattleMechs.Messages.InnerMessage global::Pixonic.MsgPack.IFormatter <global::BattleMechs.Messages.InnerMessage> .Read(
                global::Pixonic.MsgPack.MsgPackStream stream,
                global::Pixonic.MsgPack.IContext context)
            {
                if (global::Pixonic.MsgPack.StreamReader.TryReadNil(stream))
                {
                    return(null);
                }

                var __value0__ = default(float);
                var __value1__ = default(global::BattleMechs.Messages.OneTwoThree);

                context.Trace("global::BattleMechs.Messages.InnerMessage header");
                var length = global::Pixonic.MsgPack.StreamReader.ReadMapHeader(stream);

                for (var i = 0; i < length; ++i)
                {
                    context.Trace("global::BattleMechs.Messages.InnerMessage next");
                    var key = global::Pixonic.MsgPack.StreamReader.ReadUtf8(stream);
                    int index;
                    if (!KeyIndexMap.TryGetIndex(key, out index))
                    {
                        global::Pixonic.MsgPack.StreamReader.Skip(stream);
                        continue;
                    }

                    switch (index)
                    {
                    case 0:
                        context.Trace("global::BattleMechs.Messages.InnerMessage::X>");
                        __value0__ = context.ResolveFormatter <float>().Read(stream, context);
                        break;

                    case 1:
                        context.Trace("global::BattleMechs.Messages.InnerMessage::OneTwoThree>");
                        __value1__ = context.ResolveFormatter <global::BattleMechs.Messages.OneTwoThree>().Read(stream, context);
                        break;

                    default:
                        global::Pixonic.MsgPack.StreamReader.Skip(stream);
                        break;
                    }
                }

                var __result__ = new global::BattleMechs.Messages.InnerMessage();

                __result__.X           = __value0__;
                __result__.OneTwoThree = __value1__;

                var afterDeserializeListener = __result__ as global::Pixonic.MsgPack.IAfterDeserializeListener;

                if (afterDeserializeListener != null)
                {
                    afterDeserializeListener.OnAfterDeserialize();
                }

                return(__result__);
            }
コード例 #3
0
        TEnum IFormatter <TEnum> .Read(MsgPackStream stream, IContext context)
        {
            var key = StreamReader.ReadUtf8(stream);
            int index;

            if (_keyIndexMap.TryGetIndex(key, out index))
            {
                return(_values[index]);
            }

            try
            {
                return((TEnum)System.Enum.Parse(typeof(TEnum), key.ToString()));
            }
            catch (System.Exception ex)
            {
                throw new MsgPackException(ex.Message);
            }
        }
コード例 #4
0
            global::BattleMechs.Messages.Message global::Pixonic.MsgPack.IFormatter <global::BattleMechs.Messages.Message> .Read(
                global::Pixonic.MsgPack.MsgPackStream stream,
                global::Pixonic.MsgPack.IContext context)
            {
                if (global::Pixonic.MsgPack.StreamReader.TryReadNil(stream))
                {
                    return(null);
                }

                var __value0__ = default(global::System.Collections.Generic.Dictionary <int, global::System.DateTime>);
                var __value1__ = default(global::BattleMechs.Messages.InnerMessage[]);
                var __value2__ = default(float);
                var __value3__ = default(float?);
                var __value4__ = default(byte[]);
                var __value5__ = default(string[]);
                var __value6__ = default(string[]);

                context.Trace("global::BattleMechs.Messages.Message header");
                var length = global::Pixonic.MsgPack.StreamReader.ReadMapHeader(stream);

                for (var i = 0; i < length; ++i)
                {
                    context.Trace("global::BattleMechs.Messages.Message next");
                    var key = global::Pixonic.MsgPack.StreamReader.ReadUtf8(stream);
                    int index;
                    if (!KeyIndexMap.TryGetIndex(key, out index))
                    {
                        global::Pixonic.MsgPack.StreamReader.Skip(stream);
                        continue;
                    }

                    switch (index)
                    {
                    case 0:
                        context.Trace("global::BattleMechs.Messages.Message::Times>");
                        __value0__ = context.ResolveFormatter <global::System.Collections.Generic.Dictionary <int, global::System.DateTime> >().Read(stream, context);
                        break;

                    case 1:
                        context.Trace("global::BattleMechs.Messages.Message::InnerMessages>");
                        __value1__ = context.ResolveFormatter <global::BattleMechs.Messages.InnerMessage[]>().Read(stream, context);
                        break;

                    case 2:
                        context.Trace("global::BattleMechs.Messages.Message::FloatValue>");
                        __value2__ = context.ResolveFormatter <float>().Read(stream, context);
                        break;

                    case 3:
                        context.Trace("global::BattleMechs.Messages.Message::NullableFloatValue>");
                        __value3__ = context.ResolveFormatter <float?>().Read(stream, context);
                        break;

                    case 4:
                        context.Trace("global::BattleMechs.Messages.Message::Bytes>");
                        __value4__ = context.ResolveFormatter <byte[]>().Read(stream, context);
                        break;

                    case 5:
                        context.Trace("global::BattleMechs.Messages.Message::ItemList>");
                        __value5__ = context.ResolveFormatter <string[]>().Read(stream, context);
                        break;

                    case 6:
                        context.Trace("global::BattleMechs.Messages.Message::SecondItemList>");
                        __value6__ = context.ResolveFormatter <string[]>().Read(stream, context);
                        break;

                    default:
                        global::Pixonic.MsgPack.StreamReader.Skip(stream);
                        break;
                    }
                }

                var __result__ = new global::BattleMechs.Messages.Message();

                __result__.Times              = __value0__;
                __result__.InnerMessages      = __value1__;
                __result__.FloatValue         = __value2__;
                __result__.NullableFloatValue = __value3__;
                __result__.Bytes              = __value4__;
                __result__.ItemList           = __value5__;
                __result__.SecondItemList     = __value6__;

                var afterDeserializeListener = __result__ as global::Pixonic.MsgPack.IAfterDeserializeListener;

                if (afterDeserializeListener != null)
                {
                    afterDeserializeListener.OnAfterDeserialize();
                }

                return(__result__);
            }
コード例 #5
0
            FlatMessage IFormatter <FlatMessage> .Read(MsgPackStream stream, IContext context)
            {
                if (StreamReader.TryReadNil(stream))
                {
                    return(null);
                }

                var __value0__ = default(string);
                var __value1__ = default(int);
                var __value2__ = default(bool?);
                var __value3__ = default(float);
                var __value4__ = default(Dictionary <int, System.DateTime>);
                var __value5__ = default(ValueEnum);
                var __value6__ = default(StringEnum);

                context.Trace("FlatMessage header");
                var length = StreamReader.ReadMapHeader(stream);

                for (var i = 0; i < length; ++i)
                {
                    context.Trace("FlatMessage next");
                    var key = StreamReader.ReadUtf8(stream);
                    int index;
                    if (!KeyIndexMap.TryGetIndex(key, out index))
                    {
                        StreamReader.Skip(stream);
                        continue;
                    }

                    switch (index)
                    {
                    case 0:
                        context.Trace("FlatMessage::Field1");
                        __value0__ = context.ResolveFormatter <string>().Read(stream, context);
                        break;

                    case 1:
                        context.Trace("FlatMessage::Field2");
                        __value1__ = context.ResolveFormatter <int>().Read(stream, context);
                        break;

                    case 2:
                        context.Trace("FlatMessage::Field3");
                        __value2__ = context.ResolveFormatter <bool?>().Read(stream, context);
                        break;

                    case 3:
                        context.Trace("FlatMessage::Field4");
                        __value3__ = context.ResolveFormatter <float>().Read(stream, context);
                        break;

                    case 4:
                        context.Trace("FlatMessage::Field5");
                        __value4__ = context.ResolveFormatter <Dictionary <int, System.DateTime> >().Read(stream, context);
                        break;

                    case 5:
                        context.Trace("FlatMessage::Field6");
                        __value5__ = context.ResolveFormatter <ValueEnum>().Read(stream, context);
                        break;

                    case 6:
                        context.Trace("FlatMessage::Field7");
                        __value6__ = context.ResolveFormatter <StringEnum>().Read(stream, context);
                        break;

                    default:
                        StreamReader.Skip(stream);
                        break;
                    }
                }

                var __result__ = new FlatMessage();

                __result__.Field1 = __value0__;
                __result__.Field2 = __value1__;
                __result__.Field3 = __value2__;
                __result__.Field4 = __value3__;
                __result__.Field5 = __value4__;
                __result__.Field6 = __value5__;
                __result__.Field7 = __value6__;

                var afterDeserializeListener = __result__ as IAfterDeserializeListener;

                if (afterDeserializeListener != null)
                {
                    afterDeserializeListener.OnAfterDeserialize();
                }

                return(__result__);
            }