Beispiel #1
0
        public static void Write(IPoint point, JsonTextWriter jwriter)
        {
            if (point == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("Point");

            jwriter.WriteMember("coordinates");
            jwriter.WriteStartArray();
            jwriter.WriteNumber(point.X);
            jwriter.WriteNumber(point.Y);
            if (!double.IsNaN(point.Z))
            {
                jwriter.WriteNumber(point.Z);
            }
            jwriter.WriteEndArray();

            jwriter.WriteEndObject();
        }
        public static void JayrockWriterObjects()
        {
            for (int j = 0; j < Common.Iterations; j++)
            {
                StringBuilder output = new StringBuilder();
                JsonWriter    writer = new JsonTextWriter(new StringWriter(output));

                int n = Common.SampleObject.Length;
                for (int i = 0; i < n; i += 2)
                {
                    switch ((char)Common.SampleObject[i])
                    {
                    case '{':
                        writer.WriteStartObject();
                        break;

                    case '}':
                        writer.WriteEndObject();
                        break;

                    case '[':
                        writer.WriteStartArray();
                        break;

                    case ']':
                        writer.WriteEndArray();
                        break;

                    case 'P':
                        writer.WriteMember(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'I':
                        writer.WriteNumber(
                            (int)Common.SampleObject[i + 1]);
                        break;

                    case 'D':
                        writer.WriteNumber(
                            (double)Common.SampleObject[i + 1]);
                        break;

                    case 'S':
                        writer.WriteString(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'B':
                        writer.WriteBoolean(
                            (bool)Common.SampleObject[i + 1]);
                        break;

                    case 'N':
                        writer.WriteNull();
                        break;
                    }
                }
            }
        }
Beispiel #3
0
 void WriteRestUsage(JsonTextWriter writer, TwitterAccount.RestUsage usage)
 {
     writer.WriteKey("interval");
     writer.WriteNumber(usage.Interval.TotalSeconds);
     writer.WriteKey("count");
     writer.WriteNumber(usage.Count);
 }
Beispiel #4
0
        private static void save_index()
        {
            lock (l)
            {
                using (TextWriter tw = File.CreateText(FileIndexSaveFile))
                {
                    using (JsonTextWriter jw = new JsonTextWriter(tw))
                    {
                        jw.PrettyPrint = false;

                        jw.WriteStartArray();

                        foreach (var kvp in file_index)
                        {
                            jw.WriteStartObject();

                            jw.WriteMember(FILE_HASH);
                            jw.WriteString(kvp.Key);

                            jw.WriteMember(DATA);

                            jw.WriteStartArray();

                            foreach (var i in kvp.Value.GetRepostsData())
                            {
                                jw.WriteStartObject();

                                jw.WriteMember(BOARD);
                                jw.WriteString(i.Board);

                                jw.WriteMember(FILE_NAME);
                                jw.WriteString(i.FileName);

                                jw.WriteMember(THREAD_ID);
                                jw.WriteNumber(i.ThreadID);

                                jw.WriteMember(POST_ID);
                                jw.WriteNumber(i.PostID);

                                jw.WriteEndObject();
                            }

                            jw.WriteEndArray();

                            jw.WriteEndObject();
                        }

                        jw.WriteEndArray();
                    }
                }
            }
            need_save = false;
        }
Beispiel #5
0
 void WriteList(JsonTextWriter writer, ListStatuses list)
 {
     writer.WriteStartObject();
     writer.WriteKey("id");
     writer.WriteNumber(list.List.ID);
     writer.WriteKey("username");
     writer.WriteString(list.Account.ScreenName);
     WriteRestUsage(writer, list.RestInfo);
     writer.WriteEndObject();
 }
Beispiel #6
0
        public static void Write(ICoordinate coordinate, JsonTextWriter jwriter)
        {
            if (coordinate == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartArray();
            jwriter.WriteNumber(coordinate.X);
            jwriter.WriteNumber(coordinate.Y);
            if (!double.IsNaN(coordinate.Z))
            {
                jwriter.WriteNumber(coordinate.Z);
            }
            jwriter.WriteEndArray();
        }
        public static void JayrockWriterNumbers()
        {
            for (int i = 0; i < Common.Iterations; i++)
            {
                StringBuilder output = new StringBuilder();
                JsonWriter    writer = new JsonTextWriter(new StringWriter(output));

                writer.WriteStartArray();

                foreach (int n in Common.SampleInts)
                {
                    writer.WriteNumber(n);
                }

                foreach (double n in Common.SampleDoubles)
                {
                    writer.WriteNumber(n);
                }

                writer.WriteEndArray();
            }
        }
Beispiel #8
0
 public override void WriteInteger(int number)
 {
     writer.WriteNumber(number);
 }
Beispiel #9
0
 void SaveConfigInternal(JsonTextWriter writer, TimelineBase timelines)
 {
     foreach (object item in timelines.TimeLines) {
         writer.WriteStartObject ();
         writer.WriteKey ("type");
         TimelineInfo tl = item as TimelineInfo;
         TabInfo tb = item as TabInfo;
         if (tl != null) {
             if (tl.Search != null) {
                 writer.WriteString ("search");
                 writer.WriteKey ("keywords");
                 writer.WriteString (tl.Search.Keyword);
             } else if (tl.List != null) {
                 writer.WriteString ("list");
                 writer.WriteKey ("id");
                 writer.WriteNumber (tl.List.List.ID);
             } else {
                 writer.WriteString ("account");
                 writer.WriteKey ("subtype");
                 if (tl.Statuses == tl.RestAccount.HomeTimeline)
                     writer.WriteString ("home");
                 else if (tl.Statuses == tl.RestAccount.Mentions)
                     writer.WriteString ("mentions");
                 else if (tl.Statuses == tl.RestAccount.DirectMessages)
                     writer.WriteString ("directmessages");
                 writer.WriteKey ("name");
                 writer.WriteString (tl.RestAccount.ScreenName);
             }
         } else if (tb != null) {
             writer.WriteString ("tab");
             writer.WriteKey ("title");
             writer.WriteString (tb.Title);
             writer.WriteKey ("windows");
             writer.WriteStartArray ();
             SaveConfigInternal (writer, tb);
             writer.WriteEndArray ();
         } else {
             writer.WriteNull ();
         }
         writer.WriteEndObject ();
     }
 }
Beispiel #10
0
 void WriteRestUsage(JsonTextWriter writer, TwitterAccount.RestUsage usage)
 {
     writer.WriteKey ("interval");
     writer.WriteNumber (usage.Interval.TotalSeconds);
     writer.WriteKey ("count");
     writer.WriteNumber (usage.Count);
 }
Beispiel #11
0
 void WriteList(JsonTextWriter writer, ListStatuses list)
 {
     writer.WriteStartObject ();
     writer.WriteKey ("id");
     writer.WriteNumber (list.List.ID);
     writer.WriteKey ("username");
     writer.WriteString (list.Account.ScreenName);
     WriteRestUsage (writer, list.RestInfo);
     writer.WriteEndObject ();
 }
Beispiel #12
0
 void WriteAccount(JsonTextWriter writer, TwitterAccount account)
 {
     writer.WriteStartObject ();
     if (account.Credential is NetworkCredential) {
         NetworkCredential nc = account.Credential as NetworkCredential;
         writer.WriteKey ("username");
         writer.WriteString (nc.UserName);
         writer.WriteKey ("password");
         writer.WriteString (nc.Password);
     } else if (account.Credential is OAuthPasswordCache) {
         OAuthPasswordCache pc = account.Credential as OAuthPasswordCache;
         writer.WriteKey ("username");
         writer.WriteString (pc.UserName);
         writer.WriteKey ("password");
         writer.WriteString (pc.Password);
         writer.WriteKey ("token");
         writer.WriteString (pc.AccessToken);
         writer.WriteKey ("secret");
         writer.WriteString (pc.AccessSecret);
     }
     if (account.SelfUserID > 0) {
         writer.WriteKey ("id");
         writer.WriteNumber (account.SelfUserID);
     }
     writer.WriteKey ("rest");
     writer.WriteStartObject ();
     string[] rest_keys = new string[] {"home", "mentions", "dm"};
     TwitterAccount.RestUsage[] rests = new TwitterAccount.RestUsage[] {account.RestHome, account.RestMentions, account.RestDirectMessages};
     for (int i = 0; i < rest_keys.Length; i ++) {
         writer.WriteKey (rest_keys[i]);
         writer.WriteStartObject ();
         writer.WriteKey ("enable");
         writer.WriteBoolean (rests[i].IsEnabled);
         writer.WriteKey ("count");
         writer.WriteNumber (rests[i].Count);
         writer.WriteKey ("interval");
         writer.WriteNumber ((int)rests[i].Interval.TotalSeconds);
         writer.WriteEndObject ();
     }
     writer.WriteEndObject ();
     writer.WriteKey ("streaming");
     if (account.StreamingClient == null) {
         writer.WriteNull ();
     } else {
         writer.WriteStartObject ();
         writer.WriteKey ("mode");
         if (account.StreamingClient.Target is TwitterAccount) {
             writer.WriteString ("follow");
             writer.WriteKey ("username");
             writer.WriteString ((account.StreamingClient.Target as TwitterAccount).ScreenName);
         } else if (account.StreamingClient.Target is SearchStatuses) {
             writer.WriteString ("track");
             writer.WriteKey ("keywords");
             writer.WriteString (account.StreamingClient.SearchKeywords);
         } else if (account.StreamingClient.Target is ListStatuses) {
             writer.WriteString ("list");
             writer.WriteKey ("id");
             writer.WriteNumber ((account.StreamingClient.Target as ListStatuses).List.ID);
         }
         writer.WriteEndObject ();
     }
     writer.WriteEndObject ();
 }
        protected override void ProcessRequest()
        {
            string httpMethod = Request.RequestType;

            if (!CaselessString.Equals(httpMethod, "GET") &&
                !CaselessString.Equals(httpMethod, "HEAD"))
            {
                throw new JsonRpcException(string.Format("HTTP {0} is not supported for RPC execution. Use HTTP GET or HEAD only.", httpMethod));
            }

            //
            // Response will be plain text, though it would have been nice to 
            // be more specific, like text/json.
            //

            Response.ContentType = "text/plain";
            
            //
            // Convert the query string into a call object.
            //

            JsonWriter writer = new JsonTextWriter();
            
            writer.WriteStartObject();
            
            writer.WriteMember("id");
            writer.WriteNumber(0);
            
            writer.WriteMember("method");
            string methodName = Mask.NullString(Request.PathInfo);
            if (methodName.Length == 0)
                writer.WriteNull();
            else
                writer.WriteString(methodName.Substring(1));
            
            writer.WriteMember("params");
            writer.WriteStartObject();

            NameValueCollection query = Request.QueryString;
            
            if (query.HasKeys())
            {
                foreach (string name in query)
                {
                    if (Mask.NullString(name).Length == 0)
                        continue;
                
                    writer.WriteMember(name);

                    string[] values = query.GetValues(name);                    
                    
                    if (values.Length == 0)
                        writer.WriteNull();
                    else if (values.Length == 1)
                        writer.WriteString(values[0]);
                    else 
                        writer.WriteArray(values);
                }
            }
            
            writer.WriteEndObject();
            
            writer.WriteEndObject();
            
            //
            // Delegate rest of the work to JsonRpcDispatcher.
            //

            JsonRpcDispatcher dispatcher = new JsonRpcDispatcher(Service);
            
            if (HttpRequestSecurity.IsLocal(Request))
                dispatcher.SetLocalExecution();
            
            dispatcher.Process(new StringReader(writer.ToString()), Response.Output);
        }
Beispiel #14
0
        void SaveConfigInternalStyles(JsonTextWriter writer)
        {
            writer.WriteStartObject ();

            writer.WriteKey ("colors");
            writer.WriteStartObject ();
            SaveConfigInternalColors (writer);
            writer.WriteEndObject ();

            writer.WriteKey ("fonts");
            writer.WriteStartObject ();
            SaveConfigInternalFonts (writer);
            writer.WriteEndObject ();

            writer.WriteKey ("icon_size");
            writer.WriteNumber (IconSize);

            writer.WriteEndObject ();
        }
Beispiel #15
0
 void SaveConfigInternalFonts(JsonTextWriter writer)
 {
     writer.WriteKey ("main-family");
     writer.WriteString (FontFamily.ToString ());
     writer.WriteKey ("main-size");
     writer.WriteNumber (FontSize);
 }
Beispiel #16
0
 void WriteAccount(JsonTextWriter writer, TwitterAccount account)
 {
     writer.WriteStartObject();
     if (account.Credential is NetworkCredential)
     {
         NetworkCredential nc = account.Credential as NetworkCredential;
         writer.WriteKey("username");
         writer.WriteString(nc.UserName);
         writer.WriteKey("password");
         writer.WriteString(nc.Password);
     }
     else if (account.Credential is OAuthPasswordCache)
     {
         OAuthPasswordCache pc = account.Credential as OAuthPasswordCache;
         writer.WriteKey("username");
         writer.WriteString(pc.UserName);
         writer.WriteKey("password");
         writer.WriteString(pc.Password);
         writer.WriteKey("token");
         writer.WriteString(pc.AccessToken);
         writer.WriteKey("secret");
         writer.WriteString(pc.AccessSecret);
     }
     if (account.SelfUserID > 0)
     {
         writer.WriteKey("id");
         writer.WriteNumber(account.SelfUserID);
     }
     writer.WriteKey("rest");
     writer.WriteStartObject();
     string[] rest_keys = new string[] { "home", "mentions", "dm" };
     TwitterAccount.RestUsage[] rests = new TwitterAccount.RestUsage[] { account.RestHome, account.RestMentions, account.RestDirectMessages };
     for (int i = 0; i < rest_keys.Length; i++)
     {
         writer.WriteKey(rest_keys[i]);
         writer.WriteStartObject();
         writer.WriteKey("enable");
         writer.WriteBoolean(rests[i].IsEnabled);
         writer.WriteKey("count");
         writer.WriteNumber(rests[i].Count);
         writer.WriteKey("interval");
         writer.WriteNumber((int)rests[i].Interval.TotalSeconds);
         writer.WriteEndObject();
     }
     writer.WriteEndObject();
     writer.WriteKey("streaming");
     if (account.StreamingClient == null)
     {
         writer.WriteNull();
     }
     else
     {
         writer.WriteStartObject();
         writer.WriteKey("mode");
         if (account.StreamingClient.Target is TwitterAccount)
         {
             writer.WriteString("follow");
             writer.WriteKey("username");
             writer.WriteString((account.StreamingClient.Target as TwitterAccount).ScreenName);
         }
         else if (account.StreamingClient.Target is SearchStatuses)
         {
             writer.WriteString("track");
             writer.WriteKey("keywords");
             writer.WriteString(account.StreamingClient.SearchKeywords);
         }
         else if (account.StreamingClient.Target is ListStatuses)
         {
             writer.WriteString("list");
             writer.WriteKey("id");
             writer.WriteNumber((account.StreamingClient.Target as ListStatuses).List.ID);
         }
         writer.WriteEndObject();
     }
     writer.WriteEndObject();
 }
Beispiel #17
0
        public static void JayrockOutputFile()
        {
            using (FileStream fs = new FileStream("jayrock_out.txt",
                                                  FileMode.Create)) {
                StreamWriter out_stream = new StreamWriter(fs);

                StringReader sr = new StringReader(Common.JsonText);

                JsonReader reader = new JsonTextReader(sr);


                out_stream.WriteLine(
                    "*** Reading with Jayrock.Json.JsonReader");

                while (reader.Read())
                {
                    out_stream.Write("Token: {0}", reader.TokenClass);

                    if (reader.Text != null)
                    {
                        out_stream.WriteLine(" Value: {0}", reader.Text);
                    }
                    else
                    {
                        out_stream.WriteLine("");
                    }
                }


                out_stream.WriteLine(
                    "\n*** Writing with Jayrock.Json.JsonWriter");

                JsonWriter writer = new JsonTextWriter(out_stream);
                int        n      = Common.SampleObject.Length;
                for (int i = 0; i < n; i += 2)
                {
                    switch ((char)Common.SampleObject[i])
                    {
                    case '{':
                        writer.WriteStartObject();
                        break;

                    case '}':
                        writer.WriteEndObject();
                        break;

                    case '[':
                        writer.WriteStartArray();
                        break;

                    case ']':
                        writer.WriteEndArray();
                        break;

                    case 'P':
                        writer.WriteMember(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'I':
                        writer.WriteNumber(
                            (int)Common.SampleObject[i + 1]);
                        break;

                    case 'D':
                        writer.WriteNumber(
                            (double)Common.SampleObject[i + 1]);
                        break;

                    case 'S':
                        writer.WriteString(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'B':
                        writer.WriteBoolean(
                            (bool)Common.SampleObject[i + 1]);
                        break;

                    case 'N':
                        writer.WriteNull();
                        break;
                    }
                }


                out_stream.WriteLine(
                    "\n\n*** Data imported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");

                Person art = (Person)JsonConvert.Import(typeof(Person),
                                                        Common.PersonJson);

                out_stream.Write(art.ToString());


                out_stream.WriteLine(
                    "\n\n*** Object exported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");

                out_stream.Write(JsonConvert.ExportToString(
                                     Common.SamplePerson));

                out_stream.WriteLine(
                    "\n\n*** Generic object exported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");
                JsonObject person = (JsonObject)JsonConvert.Import(
                    Common.PersonJson);

                out_stream.Write(JsonConvert.ExportToString(person));


                out_stream.WriteLine(
                    "\n\n*** Hashtable exported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");

                out_stream.Write(JsonConvert.ExportToString(
                                     Common.HashtablePerson));

                out_stream.Close();
            }
        }