Beispiel #1
0
        public static void WriteStructure(StructureValueCollection values, StructureLayout layout, IWriter writer)
        {
            var structWriter = new StructureWriter(values, writer);
            layout.Accept(structWriter);

            if (layout.Size > 0)
                structWriter.SeekWriter(layout.Size);
        }
Beispiel #2
0
        /// <summary>
        ///     Reads a structure from a stream by following a predefined structure layout.
        /// </summary>
        /// <param name="reader">The IReader to read the structure from.</param>
        /// <param name="layout">The structure layout to follow.</param>
        /// <returns>A collection of the values that were read.</returns>
        /// <seealso cref="StructureLayout" />
        public static StructureValueCollection ReadStructure(IReader reader, StructureLayout layout)
        {
            var structReader = new StructureReader(reader);
            layout.Accept(structReader);
            if (layout.Size > 0)
                structReader.SeekReader(layout.Size);

            return structReader._collection;
        }
Beispiel #3
0
        public static void WriteStructure(StructureValueCollection values, StructureLayout layout, IWriter writer)
        {
            var structWriter = new StructureWriter(values, writer);

            layout.Accept(structWriter);

            if (layout.Size > 0)
            {
                structWriter.SeekWriter(layout.Size);
            }
        }
Beispiel #4
0
        /// <summary>
        ///     Reads a structure from a stream by following a predefined structure layout.
        /// </summary>
        /// <param name="reader">The IReader to read the structure from.</param>
        /// <param name="layout">The structure layout to follow.</param>
        /// <returns>A collection of the values that were read.</returns>
        /// <seealso cref="StructureLayout" />
        public static StructureValueCollection ReadStructure(IReader reader, StructureLayout layout)
        {
            var structReader = new StructureReader(reader);

            layout.Accept(structReader);
            if (layout.Size > 0)
            {
                structReader.SeekReader(layout.Size);
            }

            return(structReader._collection);
        }
        /// <summary>
        ///     Reads a structure from a stream by following a predefined structure layout.
        /// </summary>
        /// <param name="reader">The IReader to read the structure from.</param>
        /// <param name="cache">The cache file to read from.</param>
        /// <param name="buildInfo"></param>
        /// <param name="layout">The structure layout to follow.</param>
        /// <returns>A collection of the values that were read.</returns>
        /// <seealso cref="StructureLayout" />
        public static StructureValueCollection ReadStructure(IReader reader, ICacheFile cache, EngineDescription buildInfo, StructureLayout layout)
        {
            var structReader = new CacheStructureReader(reader, cache, buildInfo);

            layout.Accept(structReader);
            if (layout.Size > 0)
            {
                structReader.SeekReader(layout.Size);
            }

            return(structReader._collection);
        }