Example #1
0
        public Jsonable Save()
        {
            Jsonable rv = new Jsonable();

            vectors.GetJsonables(ref rv.vectorIds, ref rv.vectorValues);
            return(rv);
        }
Example #2
0
 public void Load(Jsonable saved, bool removeUnusedBehaviors, HashSet <string> usedBrainIds)
 {
     saved.PerformUpgrades(usedBrainIds);
     saved.AssertValid();
     behaviors.LoadJsonables(saved.behaviorIds, saved.behaviors);
     brains.LoadJsonables(saved.brainIds, saved.brains);
     GarbageCollect(removeUnusedBehaviors, usedBrainIds);
 }
Example #3
0
 public void LoadForNetworkInit(Jsonable saved)
 {
     Debug.Assert(saved.version == Jsonable.CurrentVersionNumber, "LoadForNetworkInit: Received wrong version number!");
     saved.AssertValid();
     behaviors.LoadJsonables(saved.behaviorIds, saved.behaviors);
     brains.LoadJsonables(saved.brainIds, saved.brains);
     // Assume the host already GC'd, so no need to call it here.
 }
Example #4
0
        public Jsonable Save()
        {
            Jsonable rv = new Jsonable();

            rv.version = Jsonable.CurrentVersionNumber;
            behaviors.GetJsonables(ref rv.behaviorIds, ref rv.behaviors);
            brains.GetJsonables(ref rv.brainIds, ref rv.brains);

            return(rv);
        }
    protected override void SetupFromSplitJsonString(string[] splitJsonString)
    {
        name          = splitJsonString[0];
        m_EnumSetting = EnumSetting.Load(splitJsonString[1]);

        m_EnumedJsonables = new TEnumedJsonables[splitJsonString.Length - 2];
        for (int i = 0; i < m_EnumedJsonables.Length; i++)
        {
            m_EnumedJsonables[i] = Jsonable <TEnumedJsonables> .CreateFromJsonString(splitJsonString[i + 2]);
        }
    }
Example #6
0
        public UnknownResponse(params JObject[] contents) : this()
        {
            switch (contents.Length)
            {
            case 0: break;

            case 1: ResponseBody = new Jsonable(contents[0]); break;

            default: ResponseBody = new Jsonable(new JArray(contents)); break;
            }
        }
    protected override string ConvertToJsonString(string[] jsonSplitter)
    {
        string jsonString = "";

        jsonString += name + jsonSplitter[0];
        jsonString += m_EnumSetting.name + jsonSplitter[0];
        for (int i = 0; i < m_EnumedJsonables.Length; i++)
        {
            jsonString += Jsonable <TEnumedJsonables> .GetJsonString(m_EnumedJsonables[i]) + jsonSplitter[0];
        }

        return(jsonString);
    }
Example #8
0
        private void Parse(string req, Uri baseUri)
        {
            var lines     = new Queue <string>(req.Split(new[] { "\r\n" }, StringSplitOptions.None));
            var startLine = lines.Dequeue().Split(' ').ToArray();

            HttpVerb = startLine[0];
            var uri = new Uri(baseUri, startLine[1]);

            RequestPath = uri.LocalPath;
            Query       = uri.Query;
            string hdr;

            while (lines.Count > 0 && (hdr = lines.Dequeue()) != String.Empty && hdr != null)
            {
                RequestHeaders.ParseAndAdd(hdr);
            }
            var body = string.Join(Environment.NewLine, lines);

            if (!string.IsNullOrEmpty(body))
            {
                switch (RequestHeaders["Content-Type"]?.Split(new[] { ';' }).FirstOrDefault())
                {
                case "application/json":
                    RequestBody = new Jsonable(body);
                    break;

                case "application/x-www-form-urlencoded":
                case "":
                case null:
                    RequestBody = new UrlEncodedFormData(body);
                    break;

                default:
                    throw new NotImplementedException($"Content type {RequestHeaders["Content-Type"]} is not implemented.");
                }
            }
        }
Example #9
0
 public void Load(Jsonable saved)
 {
     vectors.LoadJsonables(saved.vectorIds, saved.vectorValues);
 }