private void SetVolumeDescriptor( byte[] systemId, byte[] volumeId, UInt64 volumeSpaceSize, UInt64 pathTableSize, UInt32 typeLPathTable, UInt32 typeMPathTable, DirectoryRecord rootDirRecord, byte[] volumeSetId, byte[] publisherId, byte[] preparerId, byte[] applicationId, byte[] copyrightFileId, byte[] abstractFileId, byte[] bibliographicFieldId, AsciiDateRecord creationDate, AsciiDateRecord modificationDate, AsciiDateRecord expirationDate, AsciiDateRecord effectiveDate ) { if ( m_volumeDescriptor == null ) { m_volumeDescriptor = new VolumeDescriptor(); } volumeSetId.CopyTo( m_volumeDescriptor.VolumeSetId, 0 ); publisherId.CopyTo( m_volumeDescriptor.PublisherId, 0 ); preparerId.CopyTo( m_volumeDescriptor.PreparerId, 0 ); applicationId.CopyTo( m_volumeDescriptor.ApplicationId, 0 ); copyrightFileId.CopyTo( m_volumeDescriptor.CopyrightFileId, 0 ); abstractFileId.CopyTo( m_volumeDescriptor.AbstractFileId, 0 ); bibliographicFieldId.CopyTo( m_volumeDescriptor.BibliographicFileId, 0 ); this.SetVolumeDescriptor( systemId, volumeId, volumeSpaceSize, pathTableSize, typeLPathTable, typeMPathTable, rootDirRecord, creationDate, modificationDate, expirationDate, effectiveDate ); }
private void SetVolumeDescriptor( string systemId, string volumeId, UInt32 volumeSpaceSize, UInt32 pathTableSize, UInt32 typeLPathTable, UInt32 typeMPathTable, DirectoryRecordWrapper rootDir, DateTime creationDate, DateTime modificationDate, sbyte timeZone ) { byte[] lSystemId; byte[] lVolumeId; if ( VolumeDescriptorType == VolumeType.Primary ) { lSystemId = IsoAlgorithm.StringToByteArray( systemId, IsoAlgorithm.SystemIdLength ); lVolumeId = IsoAlgorithm.StringToByteArray( volumeId, IsoAlgorithm.VolumeIdLength ); } else if ( VolumeDescriptorType == VolumeType.Suplementary ) { lSystemId = IsoAlgorithm.AsciiToUnicode( systemId, IsoAlgorithm.SystemIdLength ); lVolumeId = IsoAlgorithm.AsciiToUnicode( volumeId, IsoAlgorithm.VolumeIdLength ); } else { if ( m_volumeDescriptor == null ) { m_volumeDescriptor = new VolumeDescriptor(); } m_volumeDescriptor.VolumeDescType = (byte)m_volumeDescriptorType; return; } UInt64 lVolumeSpaceSize = IsoAlgorithm.BothEndian( volumeSpaceSize ); UInt64 lPathTableSize = IsoAlgorithm.BothEndian( pathTableSize ); // typeLPathTable remains unchanged, but typeMPathTable has to change byte order. UInt32 lTypeMPathTable = IsoAlgorithm.ChangeEndian( typeMPathTable ); DateWrapper lCreationDate = new DateWrapper( creationDate, timeZone ); DateWrapper lModificationDate = new DateWrapper( modificationDate, timeZone ); DateWrapper bufferDate = new DateWrapper( IsoAlgorithm.NoDate ); this.SetVolumeDescriptor( lSystemId, lVolumeId, lVolumeSpaceSize, lPathTableSize, typeLPathTable, lTypeMPathTable, rootDir.Record, lCreationDate.AsciiDateRecord, lModificationDate.AsciiDateRecord, bufferDate.AsciiDateRecord, bufferDate.AsciiDateRecord ); }
private void SetVolumeDescriptor( byte[] systemId, byte[] volumeId, UInt64 volumeSpaceSize, UInt64 pathTableSize, UInt32 typeLPathTable, UInt32 typeMPathTable, DirectoryRecord rootDirRecord, AsciiDateRecord creationDate, AsciiDateRecord modificationDate, AsciiDateRecord expirationDate, AsciiDateRecord effectiveDate ) { if ( m_volumeDescriptor == null ) { m_volumeDescriptor = new VolumeDescriptor(); } m_volumeDescriptor.VolumeDescType = (byte)m_volumeDescriptorType; systemId.CopyTo( m_volumeDescriptor.SystemId, 0 ); volumeId.CopyTo( m_volumeDescriptor.VolumeId, 0 ); m_volumeDescriptor.VolumeSpaceSize = volumeSpaceSize; m_volumeDescriptor.PathTableSize = pathTableSize; m_volumeDescriptor.TypeLPathTable = typeLPathTable; m_volumeDescriptor.TypeMPathTable = typeMPathTable; m_volumeDescriptor.RootDirRecord = rootDirRecord; m_rootDirRecord = new DirectoryRecordWrapper( rootDirRecord ); m_volumeDescriptor.CreationDate = creationDate; m_creationDate = new DateWrapper( creationDate ); m_volumeDescriptor.ModificationDate = modificationDate; m_modificationDate = new DateWrapper( modificationDate ); m_volumeDescriptor.ExpirationDate = expirationDate; m_expirationDate = new DateWrapper( expirationDate ); m_volumeDescriptor.EffectiveDate = effectiveDate; m_effectiveDate = new DateWrapper( effectiveDate ); }