/// <summary> /// Write the header of this chunk. /// Always call the base method first. /// </summary> protected sealed override void WriteHeader(ResWriter writer) { base.WriteHeader(writer); writer.WriteInt32(LineNumber); StringPoolRef.Write(writer, tree.StringPool, Comment); // Extended data (in derived types) is not part of the header }
/// <summary> /// Reading ctor /// </summary> protected Node(ResReader reader, XmlTree tree, ChunkTypes expectedType) : base(reader, expectedType) { this.tree = tree; LineNumber = reader.ReadInt32(); Comment = StringPoolRef.Read(reader, tree.StringPool); }
/// <summary> /// Read ctor /// </summary> internal Attribute(ResReader reader, XmlTree tree) { this.tree = tree; Namespace = StringPoolRef.Read(reader, tree.StringPool); Name = StringPoolRef.Read(reader, tree.StringPool); RawValue = StringPoolRef.Read(reader, tree.StringPool); TypedValue = new Value(reader); }
/// <summary> /// Write this attribute. /// </summary> internal void Write(ResWriter writer) { StringPoolRef.Write(writer, tree.StringPool, Namespace); StringPoolRef.Write(writer, tree.StringPool, Name, resourceId); StringPoolRef.Write(writer, tree.StringPool, RawValue); var value = TypedValue ?? new Value(Value.Types.TYPE_STRING, tree.StringPool.Get(RawValue, -1)); value.Write(writer); }
/// <summary> /// Read ctor /// </summary> protected EntryInstance(Type parent, ResReader reader) { this.parent = parent; // header var size = reader.ReadUInt16(); flags = (EntryFlags)reader.ReadUInt16(); key = StringPoolRef.Read(reader, parent.TypeSpec.Package.KeyStrings); }
/// <summary> /// Prepare this chunk for writing /// </summary> internal virtual void PrepareForWrite() { StringPoolRef.Prepare(parent.TypeSpec.Package.KeyStrings, key); }
/// <summary> /// Write this entry. /// </summary> internal virtual void Write(ResWriter writer) { writer.WriteUInt16(IsComplex ? 16 : 8); writer.WriteUInt16((int)flags); StringPoolRef.Write(writer, parent.TypeSpec.Package.KeyStrings, key); }
/// <summary> /// Write the data of this chunk. /// </summary> protected override void WriteData(ResWriter writer) { base.WriteData(writer); StringPoolRef.Write(writer, Tree.StringPool, Data); TypedData.Write(writer); }
/// <summary> /// Prepare this chunk for writing /// </summary> protected internal override void PrepareForWrite() { base.PrepareForWrite(); StringPoolRef.Prepare(Tree.StringPool, Data); }
/// <summary> /// Reading ctor /// </summary> internal CData(ResReader reader, XmlTree tree) : base(reader, tree, ChunkTypes.RES_XML_CDATA_TYPE) { Data = StringPoolRef.Read(reader, tree.StringPool); TypedData = new Value(reader); }
/// <summary> /// Prepare this chunk for writing /// </summary> internal void PrepareForWrite() { StringPoolRef.Prepare(tree.StringPool, Namespace); StringPoolRef.Prepare(tree.StringPool, Name, resourceId); StringPoolRef.Prepare(tree.StringPool, RawValue); }
/// <summary> /// Prepare this chunk for writing /// </summary> protected internal override void PrepareForWrite() { base.PrepareForWrite(); StringPoolRef.Prepare(tree.StringPool, Comment); }