示例#1
0
        /// <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());
            }
        }
示例#2
0
        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"));
        }
示例#3
0
        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();
            }
        }
示例#4
0
        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();
            }
        }