Fanx.Fcode.FPod.readFully C# (CSharp) Méthode

readFully() public méthode

Read from an input stream (used for loading scripts from memory)
public readFully ( ZipInputStream zip ) : void
zip ICSharpCode.SharpZipLib.Zip.ZipInputStream
Résultat void
        public void readFully(ZipInputStream zip)
        {
            FStore.Input ins = new ReadFullyInput(this, zip);
              ZipEntry entry;
              m_literals = new FLiterals(this);
              while ((entry = zip.GetNextEntry()) != null)
              {
            string name = entry.Name;

            if (name == "names.def") m_names.read(ins);
            else if (name == "typeRefs.def") m_typeRefs.read(ins);
            else if (name == "fieldRefs.def") m_fieldRefs.read(ins);
            else if (name == "methodRefs.def") m_methodRefs.read(ins);
            else if (name == "pod.def") readPodMeta(ins);
            else if (name == "types.def") readTypeMeta(ins);
            else if (name.EndsWith(".fcode")) readType(name, ins);
            else if (name == "ints.def") m_literals.m_ints.read(ins);
            else if (name == "floats.def") m_literals.m_floats.read(ins);
            else if (name == "decimals.def") m_literals.m_decimals.read(ins);
            else if (name == "strs.def") m_literals.m_strs.read(ins);
            else if (name == "durations.def") m_literals.m_durations.read(ins);
            else if (name == "uris.def") m_literals.m_uris.read(ins);
            else System.Console.WriteLine("WARNING: unexpected file in pod: " + name);
              }
        }

Usage Example

Exemple #1
0
        public static Pod load(InStream @in)
        {
            FPod fpod = null;
              try
              {
            fpod = new FPod(null, null);
            fpod.readFully(new ZipInputStream(SysInStream.dotnet(@in)));
              }
              catch (Exception e)
              {
            throw Err.make(e).val;
              }

              string name = fpod.m_podName;
              lock (m_podsByName)
              {
            // check for duplicate pod name
            if (m_podsByName[name] != null)
              throw Err.make("Duplicate pod name: " + name).val;

            // create Pod and add to master table
            Pod pod = new Pod(fpod);
            m_podsByName[name] = pod; //new SoftReference(pod);
            return pod;
              }
        }