private void WriteNewHeader(FileDescriptor descriptor) { var header = new NewHeader { ResourcesCount = descriptor.ResourcesCount.Value, Version = descriptor.Version.Value, Unknown = descriptor.Unknown.Value }; Logger.Trace("Writing resources header..."); Logger.Trace("Signature: {0}, Version: {1}, ResourcesCount: {2}, Unknown: {3}", header.Signature, header.Version, header.ResourcesCount, header.Unknown ); header.WriteTo(_binaryWriter); }
private void WriteNewHeader(FileDescriptor descriptor) { var header = new NewHeader { ResourcesCount = descriptor.ResourcesCount.Value, Version = descriptor.Version.Value, Unknown = descriptor.Unknown.Value }; Logger.Trace("写入头文件..."); Logger.Trace("已签名: {0}, 版本: {1}, 资源数目: {2}, 错误(未知: {3})", header.Signature, header.Version, header.ResourcesCount, header.Unknown ); header.WriteTo(_binaryWriter); }
public static FileDescriptor Read(Stream stream) { var binaryReader = new BinaryReader(stream); var signature = Encoding.ASCII.GetString(binaryReader.ReadBytes(5)); Logger.Trace("Resources signature was read:"); stream.Seek(0, SeekOrigin.Begin); Logger.Trace("Signature: {0}", signature); Header header; switch (signature) { case Header.ResSignature: header = Header.ReadFrom(binaryReader); break; case NewHeader.ResSignature: header = NewHeader.ReadFrom(binaryReader); break; default: throw new ArgumentException($"Signature '{signature}' is no recognized."); } Logger.Trace("Resources header was read:"); Logger.Trace("Version: {0}, ResourcesCount: {1}", header.Version, header.ResourcesCount); return(new FileDescriptor { HasNewHeader = header is NewHeader, ResourcesCount = header.ResourcesCount, Version = header.Version, Unknown = (header as NewHeader)?.Unknown, Resources = new Reader(stream).Read(header.ResourcesCount) }); }
private void OnHeader(Header Head, Message Message) { NewHeader?.Invoke(Head, Message); }