public IDictionary <K, V> PopMap <K, V>() { long len = 0; if (!unpacker.ReadMapLength(out len)) { return(null); } IDictionary <K, V> dict = new Dictionary <K, V>(); for (int i = 0; i < len; i++) { dict.Add(Pop <K>(), Pop <V>()); } return(dict); }
public IDictionary <K, V> GetMapt <K, V>(int index) { MemoryStream s = new MemoryStream(buff); Unpacker _unpacker = Unpacker.Create(s); for (int i = 0; i < index; i++) { _unpacker.Skip(); } long len = 0; if (!_unpacker.ReadMapLength(out len)) { return(null); } IDictionary <K, V> dict = new Dictionary <K, V>(); for (int i = 0; i < len; i++) { dict.Add(_unpacker.Unpack <K>(), _unpacker.Unpack <V>()); } _unpacker.Dispose(); s.Close(); return(dict); }
public void UnpackTo(Unpacker unpacker, IDictionary <string, object> collection) { long mapLength; if (!unpacker.ReadMapLength(out mapLength)) { throw new InvalidMessagePackStreamException("map header expected"); } UnpackTo(unpacker, collection, mapLength); }
public ProtocolMessage DeserializeProtocolMessage(object value) { ProtocolMessage message = new ProtocolMessage(); using (MemoryStream stream = new MemoryStream((byte[])value)) { using (Unpacker unpacker = Unpacker.Create(stream)) { long fieldCount = 0; unpacker.ReadMapLength(out fieldCount); for (int i = 0; i < fieldCount; i++) { string fieldName; unpacker.ReadString(out fieldName); unpackActions[fieldName](unpacker, message); } } } return(message); }
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); }