protected void ReadIngestListObject(LitJson.JsonReader reader, object context)
        {
            IngestListCallbackData data = context as IngestListCallbackData;

            switch (reader.Token)
            {
            case LitJson.JsonToken.PropertyName:
            {
                string key = reader.Value.ToString();
                switch (key)
                {
                case "Status":
                {
                    string val = JsonReadStringPropertyRHS(reader);
                    data.status = (ErrorCode)Enum.Parse(typeof(ErrorCode), val);
                    break;
                }

                case "List":
                {
                    reader.Read();
                    JsonReadArray(reader, context, this.BeginIngestServerObject, this.ReadIngestServerObject, null);
                    break;
                }
                }
                break;
            }

            default:
            {
                break;
            }
            }
        }
        protected void UnityIosIngestListCallback(string message)
        {
            LitJson.JsonReader reader = new LitJson.JsonReader(message);

            IngestListCallbackData data = new IngestListCallbackData();

            JsonReadObject(reader, data, this.ReadIngestServerObject);

            IngestList ingestList = new IngestList();

            ingestList.List = data.servers.ToArray();

            IngestListCallback(data.status, ingestList);
        }
        protected void ReadIngestServerObject(LitJson.JsonReader reader, object context)
        {
            IngestListCallbackData data   = context as IngestListCallbackData;
            IngestServer           server = data.servers.Last();

            switch (reader.Token)
            {
            case LitJson.JsonToken.PropertyName:
            {
                string key = reader.Value.ToString();
                string val = JsonReadStringPropertyRHS(reader);
                switch (key)
                {
                case "Name":
                {
                    server.ServerName = val;
                    break;
                }

                case "Url":
                {
                    server.ServerUrl = val;
                    break;
                }

                case "Default":
                {
                    server.DefaultServer = val != "0" && val.ToLower() != "false";
                    break;
                }
                }
                break;
            }

            default:
            {
                break;
            }
            }
        }
        protected void BeginIngestServerObject(object context)
        {
            IngestListCallbackData data = context as IngestListCallbackData;

            data.servers.Add(new IngestServer());
        }
        protected void UnityIosIngestListCallback(string message)
        {
            LitJson.JsonReader reader = new LitJson.JsonReader(message);

            IngestListCallbackData data = new IngestListCallbackData();
            JsonReadObject(reader, data, this.ReadIngestServerObject);

            IngestList ingestList = new IngestList();
            ingestList.List = data.servers.ToArray();

            IngestListCallback(data.status, ingestList);
        }