private static void UnpackToCore(Unpacker unpacker, IDictionary collection, int itemsCount)
        {
            for (int i = 0; i < itemsCount; i++)
            {
                MessagePackObject key;
                try
                {
                    key = unpacker.ReadItemData();
                }
                catch (InvalidMessagePackStreamException)
                {
                    throw SerializationExceptions.NewMissingItem(i);
                }

                MessagePackObject value;
                try
                {
                    value = unpacker.ReadItemData();
                }
                catch (InvalidMessagePackStreamException)
                {
                    throw SerializationExceptions.NewMissingItem(i);
                }
                collection.Add(key, value);
            }
        }
        protected void UnpackToCore(Unpacker unpacker, T collection, int itemsCount)
        {
            for (int i = 0; i < itemsCount; i++)
            {
                MessagePackObject item;
                try
                {
                    item = unpacker.ReadItemData();
                }
                catch (InvalidMessagePackStreamException)
                {
                    throw SerializationExceptions.NewMissingItem(i);
                }

                this.AddItem(collection, item);
            }
        }
Example #3
0
        private static Message DeserializeMessage(Unpacker unpacker)
        {
            Message message = new Message();

            long fields;

            unpacker.ReadMapLength(out fields);
            string fieldName;

            for (int i = 0; i < fields; i++)
            {
                unpacker.ReadString(out fieldName);
                switch (fieldName)
                {
                case Message.NamePropertyName:
                {
                    string result;
                    unpacker.ReadString(out result);
                    message.Name = result;
                }
                break;

                case Message.TimestampPropertyName:
                {
                    long result;
                    unpacker.ReadInt64(out result);
                    message.Timestamp = result.FromUnixTimeInMilliseconds();
                }
                break;

                case Message.DataPropertyName:
                {
                    MessagePackObject result = unpacker.ReadItemData();
                    message.Data = ParseResult(result);
                }
                break;
                }
            }

            return(message);
        }
Example #4
0
        private static PresenceMessage DeserializePresenceMessage(Unpacker unpacker)
        {
            PresenceMessage message = new PresenceMessage();

            long fields;

            unpacker.ReadMapLength(out fields);
            string fieldName;

            for (int i = 0; i < fields; i++)
            {
                unpacker.ReadString(out fieldName);
                switch (fieldName)
                {
                case PresenceMessage.ActionPropertyName:
                {
                    int result;
                    unpacker.ReadInt32(out result);
                    message.Action = (PresenceMessage.ActionType)result;
                }
                break;

                case PresenceMessage.IdPropertyName:
                {
                    string result;
                    unpacker.ReadString(out result);
                    message.Id = result;
                }
                break;

                case PresenceMessage.ClientIdPropertyName:
                {
                    string result;
                    unpacker.ReadString(out result);
                    message.ClientId = result;
                }
                break;

                case PresenceMessage.ConnectionIdPropertyName:
                {
                    string result;
                    unpacker.ReadString(out result);
                    message.ConnectionId = result;
                }
                break;

                case PresenceMessage.TimestampPropertyName:
                {
                    long result;
                    unpacker.ReadInt64(out result);
                    message.Timestamp = result.FromUnixTimeInMilliseconds();
                }
                break;

                case PresenceMessage.DataPropertyName:
                {
                    MessagePackObject result = unpacker.ReadItemData();
                    message.Data = ParseResult(result);
                }
                break;
                }
            }

            return(message);
        }