/// <summary> /// Reserializes a compiled script into a form again usable to pass over the wire or write to disk /// </summary> /// <param name="compiledScript"></param> /// <returns></returns> private byte[] ReserializeScript(CompiledScript compiledScript) { SerializedScript script = SerializedScript.FromCompiledScript(compiledScript); using (MemoryStream memStream = new MemoryStream()) { ProtoBuf.Serializer.Serialize(memStream, script); return(memStream.ToArray()); } }
public void TestLoadOldProtobuf1CompiledScript() { CompiledScript cs; using (var file = System.IO.File.OpenRead("StateTests\\v1script.plx")) { SerializedScript deser = ProtoBuf.Serializer.Deserialize <SerializedScript>(file); cs = deser.ToCompiledScript(); } Assert.AreEqual(cs.AssetId, UUID.Parse("e6225f55-5051-4949-95a4-688e86dec5e5")); }
private void CacheCompiledScript(CompiledScript comp) { string scriptCacheDir = this.LookupDirectoryFromId(PhloxConstants.COMPILE_CACHE_DIR, comp.AssetId); Directory.CreateDirectory(scriptCacheDir); string scriptPath = Path.Combine(scriptCacheDir, comp.AssetId.ToString() + PhloxConstants.COMPILED_SCRIPT_EXTENSION); SerializedScript script = SerializedScript.FromCompiledScript(comp); using (FileStream f = File.Open(scriptPath, FileMode.Create)) { ProtoBuf.Serializer.Serialize(f, script); f.Close(); } }
private static void SaveScript(CompiledScript script) { SerializedScript serScript = SerializedScript.FromCompiledScript(script); using (var file = File.Create("script.plx")) { ProtoBuf.Serializer.Serialize(file, serScript); } using (var file = File.OpenRead("script.plx")) { SerializedScript readscript = ProtoBuf.Serializer.Deserialize <SerializedScript>(file); CompiledScript compiled = readscript.ToCompiledScript(); } }