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); } }
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); }
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); }