private bool DeserializeEntry(BinaryReader reader, out EaBufferEntry entry) { long start_position = reader.BaseStream.Position; int next_offset = reader.ReadInt32(); EaBufferEntryFlags flags = (EaBufferEntryFlags)reader.ReadByte(); int ea_name_length = reader.ReadByte(); int data_length = reader.ReadUInt16(); string name = Encoding.ASCII.GetString(reader.ReadAllBytes(ea_name_length)); reader.ReadByte(); byte[] data = reader.ReadAllBytes(data_length); entry = new EaBufferEntry(name, data, flags); if (next_offset == 0) { return(true); } reader.BaseStream.Position = start_position + next_offset; return(false); }
/// <summary> /// Constructor /// </summary> /// <param name="name">The name of the entry</param> /// <param name="data">Data associated with the entry</param> /// <param name="flags">Flags for entry.</param> public EaBufferEntry(string name, byte[] data, EaBufferEntryFlags flags) { Name = name; Data = data; }
/// <summary> /// Add a new EA entry /// </summary> /// <param name="name">The name of the entry</param> /// <param name="data">The associated data</param> /// <param name="flags">The entry flags.</param> public void AddEntry(string name, string data, EaBufferEntryFlags flags) { AddEntry(name, Encoding.Unicode.GetBytes(data), flags, false); }
/// <summary> /// Add a new EA entry /// </summary> /// <param name="name">The name of the entry</param> /// <param name="data">The associated data</param> /// <param name="flags">The entry flags.</param> public void AddEntry(string name, int data, EaBufferEntryFlags flags) { AddEntry(name, BitConverter.GetBytes(data), flags, false); }
/// <summary> /// Add a new EA entry /// </summary> /// <param name="name">The name of the entry</param> /// <param name="data">The associated data</param> /// <param name="flags">The entry flags.</param> public void AddEntry(string name, byte[] data, EaBufferEntryFlags flags) { AddEntry(name, data, flags, true); }
private void AddEntry(string name, byte[] data, EaBufferEntryFlags flags, bool clone) { _buffers.Add(new EaBufferEntry(name, clone ? (byte[])data.Clone() : data, flags)); }
/// <summary> /// Constructor /// </summary> /// <param name="name">The name of the entry</param> /// <param name="data">Data associated with the entry</param> /// <param name="flags">Flags for entry.</param> public EaBufferEntry(string name, string data, EaBufferEntryFlags flags) : this(name, Encoding.Unicode.GetBytes(data), flags) { }
/// <summary> /// Constructor /// </summary> /// <param name="name">The name of the entry</param> /// <param name="data">Data associated with the entry</param> /// <param name="flags">Flags for entry.</param> public EaBufferEntry(string name, int data, EaBufferEntryFlags flags) : this(name, BitConverter.GetBytes(data), flags) { }