public object Deserialize(JsonNode json)
 {
     return(Expression.Bind(
                serializer.Read <MemberInfo>(json["member"]),
                serializer.Read <Expression>(json["expression"])
                ));
 }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Goto(
                serializer.Read <LabelTarget>(json["target"]),
                serializer.Read <Expression>(json["value"])
                ));
 }
Example #3
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.TypeIs(
                serializer.Read <Expression>(json["expression"]),
                serializer.Read <Type>(json["operand"])
                ));
 }
Example #4
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Label(
                serializer.Read <LabelTarget>(json["target"]),
                serializer.Read <Expression>(json["default"])
                ));
 }
Example #5
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Condition(
                serializer.Read <Expression>(json["test"] as JsonNode),
                serializer.Read <Expression>(json["iftrue"] as JsonNode),
                serializer.Read <Expression>(json["iffalse"] as JsonNode)
                ));
 }
Example #6
0
 public object Deserialize(JsonNode json)
 {
     return(Expression.Catch(
                serializer.Read <ParameterExpression>(json["variable"]),
                serializer.Read <Expression>(json["body"]),
                serializer.Read <Expression>(json["filter"])
                ));
 }
Example #7
0
 public object Deserialize(JsonNode json)
 {
     return(Expression.Catch(
                serializer.Read <ParameterExpression>(json.SelectNode("variable")),
                serializer.Read <Expression>(json.SelectNode("body")),
                serializer.Read <Expression>(json.SelectNode("filter"))
                ));
 }
Example #8
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Loop(
                serializer.Read <Expression>(json["body"]),
                serializer.Read <LabelTarget>(json["break"]),
                serializer.Read <LabelTarget>(json["continue"])
                ));
 }
Example #9
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.MakeIndex(
                serializer.Read <Expression>(json["object"]),
                serializer.Read <PropertyInfo>(json["indexer"]),
                json["arguments"].Select(serializer.Read <Expression>).ToArray()
                ));
 }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Call(
                serializer.Read <Expression>(json["host"]),
                serializer.Read <MethodInfo>(json["method"]),
                json["arguments"].Select(serializer.Read <Expression>)
                ));
 }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Switch(
                serializer.Read <Expression>(json["value"]),
                serializer.Read <Expression>(json["default"]),
                serializer.Read <MethodInfo>(json["comparison"]),
                json["cases"].Select(serializer.Read <SwitchCase>)
                ));
 }
 public object Deserialize(JsonNode json)
 {
     return(Expression.SymbolDocument(
                json.SelectValue <string>("filename"),
                serializer.Read <Guid>(json["language"]),
                serializer.Read <Guid>(json["languagevendor"]),
                serializer.Read <Guid>(json["documenttype"])
                ));
 }
Example #13
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.MakeUnary(
                json.SelectValue <ExpressionType>("type"),
                serializer.Read <Expression>(json["operand"]),
                serializer.Read <Type>(json["unarytype"]),
                serializer.Read <MethodInfo>(json["method"])
                ));
 }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.MakeTry(
                serializer.Read <Type>(json["trytype"]),
                serializer.Read <Expression>(json["body"]),
                serializer.Read <Expression>(json["finally"]),
                serializer.Read <Expression>(json["fault"]),
                json["handlers"].Select(serializer.Read <CatchBlock>)
                ));
 }
 /// <summary>
 /// deserializes an expression from json
 /// </summary>
 /// <param name="json"></param>
 /// <returns></returns>
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.MakeBinary(
                json.SelectValue <ExpressionType>("type"),
                serializer.Read <Expression>(json["left"] as JsonNode),
                serializer.Read <Expression>(json["right"] as JsonNode),
                json.SelectValue <bool>("isliftedtonull"),
                serializer.Read <MethodInfo>(json["method"] as JsonNode),
                serializer.Read <LambdaExpression>(json["conversion"] as JsonNode)
                ));
 }
Example #16
0
 public object Deserialize(JsonNode json)
 {
     return(Expression.SwitchCase(
                serializer.Read <Expression>(json["body"]),
                json["values"].Select(serializer.Read <Expression>)
                ));
 }
Example #17
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.ListInit(
                serializer.Read <NewExpression>(json["new"]),
                json["initializers"].Select(serializer.Read <ElementInit>)
                ));
 }
Example #18
0
 public object Deserialize(JsonNode json)
 {
     return(Expression.Label(
                serializer.Read <Type>(json.SelectNode("type")),
                json.SelectValue <string>("name")
                ));
 }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Invoke(
                serializer.Read <Expression>(json["expression"]),
                json["arguments"].Select(serializer.Read <Expression>)
                ));
 }
Example #20
0
        public object Deserialize(JsonNode json)
        {
            Type   host = serializer.Read <Type>(json["host"]);
            string name = json.SelectValue <string>("name");

            return(host.GetProperties().First(h => h.Name == name));
        }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.New(
                serializer.Read <ConstructorInfo>(json["constructor"]),
                json["arguments"].Select(serializer.Read <Expression>)
                ));
 }
Example #22
0
 public object Deserialize(JsonNode json)
 {
     return(Expression.ListBind(
                serializer.Read <MemberInfo>(json["member"]),
                json["initializers"].Select(serializer.Read <ElementInit>)
                ));
 }
        public Expression Deserialize(JsonObject json)
        {
#if FRAMEWORK35
            return(Expression.Lambda(
                       serializer.Read <Expression>(json["body"]),
                       json["parameters"].Select(serializer.Read <ParameterExpression>).ToArray()
                       ));
#else
            return(Expression.Lambda(
                       serializer.Read <Expression>(json["body"]),
                       json.SelectValue <string>("name"),
                       json.SelectValue <bool>("tail"),
                       json["parameters"].Select(serializer.Read <ParameterExpression>)
                       ));
#endif
        }
        private bool ReceivedPollResponse(IJsonSerializer jsonReader, CancellationToken token, ref bool timedOut)
        {
            bool started = false;
            var  start   = DateTime.Now;

            token.Register(() =>
            {
                jsonReader.StopIncrementalParse();
            });

            try {
                while (jsonReader.Read() && !token.IsCancellationRequested)
                {
                    _pauseWait.Wait();
                    if (jsonReader.CurrentToken == JsonToken.StartArray)
                    {
                        timedOut = true;
                        started  = true;
                    }
                    else if (jsonReader.CurrentToken == JsonToken.EndArray)
                    {
                        started = false;
                    }
                    else if (started)
                    {
                        IDictionary <string, object> change;
                        try {
                            change = jsonReader.DeserializeNextObject <IDictionary <string, object> >();
                        } catch (Exception e) {
                            var ex = e as CouchbaseLiteException;
                            if (ex == null || ex.Code != StatusCode.BadJson)
                            {
                                Log.To.ChangeTracker.W(Tag, "Failure during change tracker JSON parsing", e);
                                throw;
                            }

                            return(false);
                        }

                        if (OnChangeFound != null)
                        {
                            OnChangeFound(change);
                        }

                        timedOut = false;
                    }
                }
            } catch (CouchbaseLiteException e) {
                var elapsed = DateTime.Now - start;
                timedOut = timedOut && elapsed.TotalSeconds >= 30;
                if (e.CBLStatus.Code == StatusCode.BadJson && timedOut)
                {
                    return(false);
                }

                throw;
            }

            return(true);
        }
Example #25
0
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Parameter(
                serializer.Read <Type>(json["paramtype"]),
                json.SelectValue <string>("name")
                ));
 }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.MemberInit(
                serializer.Read <NewExpression>(json["new"]),
                json["bindings"].Select(serializer.Read <MemberBinding>).ToArray()
                ));
 }
 public object Deserialize(JsonNode json)
 {
     return(Expression.MemberBind(
                serializer.Read <MemberInfo>(json["member"]),
                json["bindings"].Select(serializer.Read <MemberBinding>)
                ));
 }
Example #28
0
 public object Deserialize(JsonNode json)
 {
     return(Expression.ElementInit(
                serializer.Read <MethodInfo>(json.SelectNode("method")),
                json.SelectNodes("arguments").Select(serializer.Read <Expression>)
                ));
 }
Example #29
0
        public object Deserialize(JsonNode json)
        {
            switch (json.SelectValue <string>("type"))
            {
            case "assigment":
                return(serializer.Read <MemberAssignment>(json));

            case "member":
                return(serializer.Read <MemberMemberBinding>(json));

            case "list":
                return(serializer.Read <MemberListBinding>(json));

            default:
                throw new NotImplementedException();
            }
        }
 public Expression Deserialize(JsonObject json)
 {
     return(Expression.Dynamic(
                serializer.Read <CallSiteBinder>(json["binder"] as JsonNode),
                typeof(object),
                json["arguments"].Select(serializer.Read <Expression>)
                ));
 }
        private bool ReceivedPollResponse(IJsonSerializer jsonReader, CancellationToken token, ref bool timedOut)
        {
            bool started = false;
            var start = DateTime.Now;
            try {
                while (jsonReader.Read() && !token.IsCancellationRequested) {
                    _pauseWait.Wait();
                    if (jsonReader.CurrentToken == JsonToken.StartArray) {
                        timedOut = true;
                        started = true;
                    } else if (jsonReader.CurrentToken == JsonToken.EndArray) {
                        started = false;
                    } else if (started) {
                        IDictionary<string, object> change;
                        try {
                            change = jsonReader.DeserializeNextObject<IDictionary<string, object>>();
                        } catch(Exception e) {
                            var ex = e as CouchbaseLiteException;
                            if (ex == null || ex.Code != StatusCode.BadJson) {
                                Log.To.ChangeTracker.W(Tag, "Failure during change tracker JSON parsing", e);
                                throw;
                            }

                            return false;
                        }

                        if(OnChangeFound != null) {
                            OnChangeFound(change);
                        }

                        timedOut = false;
                    }
                }
            } catch (CouchbaseLiteException e) {
                var elapsed = DateTime.Now - start;
                timedOut = timedOut && elapsed.TotalSeconds >= 30;
                if (e.CBLStatus.Code == StatusCode.BadJson && timedOut) {
                    return false;
                }

                throw;
            }

            return true;
        }
        public bool ReceivedPollResponse(IJsonSerializer jsonReader, ref bool timedOut)
        {
            bool started = false;
            var start = DateTime.Now;
            try {
            while (jsonReader.Read()) {
                _pauseWait.Wait();
                if (jsonReader.CurrentToken == JsonToken.StartArray) {
                        timedOut = true;
                    started = true;
                } else if (jsonReader.CurrentToken == JsonToken.EndArray) {
                    started = false;
                } else if (started) {
                    IDictionary<string, object> change;
                    try {
                        change = jsonReader.DeserializeNextObject();
                    } catch(Exception e) {
                        var ex = e as CouchbaseLiteException;
                        if (ex == null || ex.Code != StatusCode.BadJson) {
                            Log.E(TAG, "Failure during change tracker JSON parsing", e);
                            throw;
                        }
                            
                        return false;
                    }

                    if (!ReceivedChange(change)) {
                        Log.W(TAG,  String.Format("Received unparseable change line from server: {0}", change));
                        return false;
                    }

                    timedOut = false;
                }
            }
            } catch (CouchbaseLiteException e) {
                var elapsed = DateTime.Now - start;
                timedOut = timedOut && elapsed.TotalSeconds >= 30;
                if (e.CBLStatus.Code == StatusCode.BadJson && timedOut) {
                    return false;
                }

                throw;
            }

            return true;
        }