Exemplo n.º 1
0
        public bool TryParse(byte[] payload, out T parsedLog)
        {
            parsedLog = default(T);

            if (payload != null)
            {
                try
                {
                    using (var ms = new MemoryStream(payload))
                    {
                        // 12 bytes of meta data
                        ms.Seek(12, SeekOrigin.Begin);

                        using (var protocolReader = new CompactBinaryProtocolReader(ms))
                        {
                            T log = new T();
                            log.Read(protocolReader);
                            parsedLog = log;

                            return(true);
                        }
                    }
                }
                catch { }
            }

            return(false);
        }
Exemplo n.º 2
0
        public static T DeserializeBondObject <T>(this string line) where T : IBondSerializable, new()
        {
            T   a       = new T();
            var payload = Convert.FromBase64String(line);

            using (var ms = new MemoryStream(payload))
            {
                using (var protocolReader = new CompactBinaryProtocolReader(ms))
                {
                    a.Read(protocolReader);
                }
            }
            return(a);
        }
Exemplo n.º 3
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType != JsonToken.String)
            {
                return(null);
            }

            var payload           = Convert.FromBase64String(reader.Value.ToString());
            IBondSerializable scd = (IBondSerializable)Activator.CreateInstance(objectType);

            using (var ms = new MemoryStream(payload))
            {
                using (var protocolReader = new CompactBinaryProtocolReader(ms))
                {
                    scd.Read(protocolReader);
                }
            }
            return(scd);
        }