Esempio n. 1
0
 public static void Serialize(this IEnumerable <UxlDocument> list, SourcePackage upk, string filename)
 {
     using (var w = UxlDocument.CreateWriter(upk, filename))
         foreach (var e in list)
         {
             e.Write(w);
         }
 }
Esempio n. 2
0
        public static void Deserialize(SourcePackage upk, string filename, List <UxlDocument> resultAsync)
        {
            using (var r = UxlDocument.CreateReader(upk, filename))
            {
                while (r.BaseStream.Position < r.BaseStream.Length)
                {
                    var doc = UxlDocument.Read(r, upk);

                    lock (resultAsync)
                        resultAsync.Add(doc);
                }
            }
        }
Esempio n. 3
0
        public static UxlDocument Read(CacheReader f, SourcePackage upk)
        {
            var backend = (UxlBackendType)f.ReadByte();
            var flags   = (UxlDocumentFlags)f.ReadByte();

            SourceValue?cond = null;

            if (flags.HasFlag(UxlDocumentFlags.HasCondition))
            {
                cond = f.ReadGlobalValue();
            }

            var doc = new UxlDocument(upk, backend, cond);

            if (flags.HasFlag(UxlDocumentFlags.Defines))
            {
                f.ReadList(doc.Defines, UxlDefine.Read);
            }
            if (flags.HasFlag(UxlDocumentFlags.Usings))
            {
                f.ReadList(doc.Usings, r => r.ReadGlobalValue());
            }
            if (flags.HasFlag(UxlDocumentFlags.Declarations))
            {
                f.ReadList(doc.Declarations, UxlDeclare.Read);
            }
            if (flags.HasFlag(UxlDocumentFlags.Deprecations))
            {
                f.ReadList(doc.Deprecations, UxlDeprecate.Read);
            }
            if (flags.HasFlag(UxlDocumentFlags.Templates))
            {
                f.ReadList(doc.Templates, UxlTemplate.Read);
            }
            if (flags.HasFlag(UxlDocumentFlags.Types))
            {
                f.ReadList(doc.Types, UxlType.Read);
            }

            var entityFlags = (UxlEntityFlags)f.ReadByte();

            doc.ReadEntity(f, entityFlags);
            return(doc);
        }