Example #1
0
        private void SetVolumeDescriptor(byte[] systemId, byte[] volumeId, ulong volumeSpaceSize, ulong pathTableSize,
                                         uint typeLPathTable, uint 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);
        }
Example #2
0
        public DateWrapper(AsciiDateRecord dateRecord)
        {
            AsciiDateRecord = dateRecord;

            byte year        = (byte)(Convert.ToInt32(IsoAlgorithm.ByteArrayToString(dateRecord.Year)) - 1900);
            byte month       = Convert.ToByte(IsoAlgorithm.ByteArrayToString(dateRecord.Month));
            byte dayOfMonth  = Convert.ToByte(IsoAlgorithm.ByteArrayToString(dateRecord.DayOfMonth));
            byte hour        = Convert.ToByte(IsoAlgorithm.ByteArrayToString(dateRecord.Hour));
            byte minute      = Convert.ToByte(IsoAlgorithm.ByteArrayToString(dateRecord.Minute));
            byte second      = Convert.ToByte(IsoAlgorithm.ByteArrayToString(dateRecord.Second));
            int  millisecond = Convert.ToInt32(IsoAlgorithm.ByteArrayToString(dateRecord.HundredthsOfSecond)) * 10;

            SetBinaryDateRecord(year, month, dayOfMonth, hour, minute, second);
            m_date = new DateTime(1900 + year, month, dayOfMonth, hour, minute, second, millisecond);
        }
        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);
        }
Example #4
0
        private void SetAsciiDateRecord(int year, int month, int dayOfMonth, int hour, int minute, int second, int hundredthsOfSecond, sbyte timeZone)
        {
            if (AsciiDateRecord == null)
            {
                AsciiDateRecord = new AsciiDateRecord();
            }

            string sYear       = string.Format("{0:D4}", year % 10000);
            string sMonth      = string.Format("{0:D2}", month);
            string sDay        = string.Format("{0:D2}", dayOfMonth);
            string sHour       = string.Format("{0:D2}", hour);
            string sMinute     = string.Format("{0:D2}", minute);
            string sSecond     = string.Format("{0:D2}", second);
            string sHundredths = string.Format("{0:D2}", hundredthsOfSecond);

            AsciiDateRecord.Year               = IsoAlgorithm.StringToByteArray(sYear);
            AsciiDateRecord.Month              = IsoAlgorithm.StringToByteArray(sMonth);
            AsciiDateRecord.DayOfMonth         = IsoAlgorithm.StringToByteArray(sDay);
            AsciiDateRecord.Hour               = IsoAlgorithm.StringToByteArray(sHour);
            AsciiDateRecord.Minute             = IsoAlgorithm.StringToByteArray(sMinute);
            AsciiDateRecord.Second             = IsoAlgorithm.StringToByteArray(sSecond);
            AsciiDateRecord.HundredthsOfSecond = IsoAlgorithm.StringToByteArray(sHundredths);
            AsciiDateRecord.TimeZone           = timeZone;
        }