public int ReadFrom(byte[] buffer, int offset) { this.RecordType = (CatalogRecordType)EndianUtilities.ToInt16BigEndian(buffer, offset + 0); this.ParentId = EndianUtilities.ToUInt32BigEndian(buffer, offset + 4); this.Name = HfsPlusUtilities.ReadUniStr255(buffer, offset + 8); return(this.Size); }
public int ReadFrom(byte[] buffer, int offset) { RecordType = (CatalogRecordType)Utilities.ToInt16BigEndian(buffer, offset + 0); ParentId = Utilities.ToUInt32BigEndian(buffer, offset + 4); Name = HfsPlusUtilities.ReadUniStr255(buffer, offset + 8); return(0); }
public override int ReadFrom(byte[] buffer, int offset) { _keyLength = EndianUtilities.ToUInt16BigEndian(buffer, offset + 0); NodeId = new CatalogNodeId(EndianUtilities.ToUInt32BigEndian(buffer, offset + 2)); Name = HfsPlusUtilities.ReadUniStr255(buffer, offset + 6); return(_keyLength + 2); }
public override int ReadFrom(byte[] buffer, int offset) { this.keyLength = EndianUtilities.ToUInt16BigEndian(buffer, offset + 0); this.pad = EndianUtilities.ToUInt16BigEndian(buffer, offset + 2); this.FileId = new CatalogNodeId(EndianUtilities.ToUInt32BigEndian(buffer, offset + 4)); this.startBlock = EndianUtilities.ToUInt32BigEndian(buffer, offset + 8); this.Name = HfsPlusUtilities.ReadUniStr255(buffer, offset + 12); return(this.keyLength + 2); }
public override int ReadFrom(byte[] buffer, int offset) { _keyLength = Utilities.ToUInt16BigEndian(buffer, offset + 0); _pad = Utilities.ToUInt16BigEndian(buffer, offset + 2); _fileId = new CatalogNodeId(Utilities.ToUInt32BigEndian(buffer, offset + 4)); _startBlock = Utilities.ToUInt32BigEndian(buffer, offset + 8); _name = HfsPlusUtilities.ReadUniStr255(buffer, offset + 12); return(_keyLength + 2); }
public int CompareTo(CatalogKey other) { if (other == null) { throw new ArgumentNullException(nameof(other)); } if (NodeId != other.NodeId) { return(NodeId < other.NodeId ? -1 : 1); } return(HfsPlusUtilities.FastUnicodeCompare(Name, other.Name)); }
public int CompareTo(AttributeKey other) { if (other == null) { throw new ArgumentNullException("other"); } if (_fileId != other._fileId) { return(_fileId < other._fileId ? -1 : 1); } return(HfsPlusUtilities.FastUnicodeCompare(_name, other._name)); }
public override int CompareTo(BTreeKey other) { var attributeKey = other as AttributeKey; if (attributeKey == null) { throw new ArgumentNullException(nameof(other)); } if (this.FileId != attributeKey.FileId) { return(this.FileId < attributeKey.FileId ? -1 : 1); } return(HfsPlusUtilities.FastUnicodeCompare(this.Name, attributeKey.Name)); }
public int ReadFrom(byte[] buffer, int offset) { Signature = EndianUtilities.ToUInt16BigEndian(buffer, offset + 0); if (!IsValid) { return(Size); } Version = EndianUtilities.ToUInt16BigEndian(buffer, offset + 2); Attributes = (VolumeAttributes)EndianUtilities.ToUInt32BigEndian(buffer, offset + 4); LastMountedVersion = EndianUtilities.ToUInt32BigEndian(buffer, offset + 8); JournalInfoBlock = EndianUtilities.ToUInt32BigEndian(buffer, offset + 12); CreateDate = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Local, buffer, offset + 16); ModifyDate = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 20); BackupDate = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 24); CheckedDate = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 28); FileCount = EndianUtilities.ToUInt32BigEndian(buffer, offset + 32); FolderCount = EndianUtilities.ToUInt32BigEndian(buffer, offset + 36); BlockSize = EndianUtilities.ToUInt32BigEndian(buffer, offset + 40); TotalBlocks = EndianUtilities.ToUInt32BigEndian(buffer, offset + 44); FreeBlocks = EndianUtilities.ToUInt32BigEndian(buffer, offset + 48); NextAllocation = EndianUtilities.ToUInt32BigEndian(buffer, offset + 52); ResourceClumpSize = EndianUtilities.ToUInt32BigEndian(buffer, offset + 56); DataClumpSize = EndianUtilities.ToUInt32BigEndian(buffer, offset + 60); NextCatalogId = new CatalogNodeId(EndianUtilities.ToUInt32BigEndian(buffer, offset + 64)); WriteCount = EndianUtilities.ToUInt32BigEndian(buffer, offset + 68); EncodingsBitmap = EndianUtilities.ToUInt64BigEndian(buffer, offset + 72); FinderInfo = new uint[8]; for (int i = 0; i < 8; ++i) { FinderInfo[i] = EndianUtilities.ToUInt32BigEndian(buffer, offset + 80 + i * 4); } AllocationFile = EndianUtilities.ToStruct <ForkData>(buffer, offset + 112); ExtentsFile = EndianUtilities.ToStruct <ForkData>(buffer, offset + 192); CatalogFile = EndianUtilities.ToStruct <ForkData>(buffer, offset + 272); AttributesFile = EndianUtilities.ToStruct <ForkData>(buffer, offset + 352); StartupFile = EndianUtilities.ToStruct <ForkData>(buffer, offset + 432); return(512); }
public virtual int ReadFrom(byte[] buffer, int offset) { RecordType = (CatalogRecordType)EndianUtilities.ToInt16BigEndian(buffer, offset + 0); FileId = EndianUtilities.ToUInt32BigEndian(buffer, offset + 8); CreateTime = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 12); ContentModifyTime = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 16); AttributeModifyTime = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 20); AccessTime = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 24); BackupTime = HfsPlusUtilities.ReadHFSPlusDate(DateTimeKind.Utc, buffer, offset + 28); uint special; FileSystemInfo = HfsPlusUtilities.ReadBsdInfo(buffer, offset + 32, out special); UnixSpecialField = special; return(0); }