public Jsonable Save() { Jsonable rv = new Jsonable(); vectors.GetJsonables(ref rv.vectorIds, ref rv.vectorValues); return(rv); }
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); }
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. }
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]); } }
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); }
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."); } } }
public void Load(Jsonable saved) { vectors.LoadJsonables(saved.vectorIds, saved.vectorValues); }