/// <summary> /// Creates a new ExportDataBlob. /// </summary> /// <param name="dataBlob">Unmanaged structure.</param> internal ExportDataBlob(ref AiExportDataBlob dataBlob) { m_name = dataBlob.Name.GetString(); m_data = MemoryHelper.MarshalArray<byte>(dataBlob.Data, dataBlob.Size.ToInt32()); m_next = null; if(dataBlob.NextBlob != IntPtr.Zero) { AiExportDataBlob nextBlob = MemoryHelper.MarshalStructure<AiExportDataBlob>(dataBlob.NextBlob); m_next = new ExportDataBlob(ref nextBlob); } }
private static void WriteBlob(ExportDataBlob blob, BinaryWriter writer) { if(blob == null || writer == null) return; bool hasNext = blob.NextBlob != null; writer.Write(blob.Name); writer.Write(blob.Data.Length); writer.Write(blob.Data); writer.Write(hasNext); if(hasNext) WriteBlob(blob.NextBlob, writer); }
/// <summary> /// Creates a new ExportDataBlob. /// </summary> /// <param name="dataBlob">Unmanaged structure.</param> internal ExportDataBlob(ref AiExportDataBlob dataBlob) { m_name = dataBlob.Name.GetString(); if(dataBlob.Size.ToUInt32() > 0 && dataBlob.Data != IntPtr.Zero) m_data = MemoryHelper.FromNativeArray<byte>(dataBlob.Data, (int) dataBlob.Size.ToUInt32()); m_next = null; if(dataBlob.NextBlob != IntPtr.Zero) { AiExportDataBlob nextBlob = MemoryHelper.MarshalStructure<AiExportDataBlob>(dataBlob.NextBlob); m_next = new ExportDataBlob(ref nextBlob); } }
private static ExportDataBlob ReadBlob(BinaryReader reader) { if(reader == null) return null; String name = reader.ReadString(); int count = reader.ReadInt32(); byte[] data = reader.ReadBytes(count); bool hasNext = reader.ReadBoolean(); ExportDataBlob blob = new ExportDataBlob(name, data); if(hasNext) blob.m_next = ReadBlob(reader); return blob; }
private static ExportDataBlob ReadBlob(BinaryReader reader) { if(reader == null) return null; String name = reader.ReadString(); int count = reader.ReadInt32(); byte[] data = reader.ReadBytes(count); bool hasNext = reader.ReadBoolean(); ExportDataBlob blob = new ExportDataBlob(name, data); if(hasNext) blob.m_next = ReadBlob(reader); return blob; }
private static void WriteBlob(ExportDataBlob blob, BinaryWriter writer) { if(blob == null || writer == null) return; bool hasNext = blob.NextBlob != null; writer.Write(blob.Name); writer.Write(blob.Data.Length); writer.Write(blob.Data); writer.Write(hasNext); if(hasNext) WriteBlob(blob.NextBlob, writer); }
/// <summary> /// Creates a new ExportDataBlob. /// </summary> /// <param name="name">Name</param> /// <param name="data">Data</param> internal ExportDataBlob(String name, byte[] data) { m_name = name; m_data = data; m_next = null; }
/// <summary> /// Creates a new ExportDataBlob. /// </summary> /// <param name="name">Name</param> /// <param name="data">Data</param> internal ExportDataBlob(String name, byte[] data) { m_name = name; m_data = data; m_next = null; }