Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Log / System / IO / Log / FileLogRecordHeader.cs / 1305376 / FileLogRecordHeader.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IO.Log { using System.IO; using System.Diagnostics; internal struct FileLogRecordHeader { [Flags] enum LowFlags : byte { RestartArea = 0x01 } internal const int Size = 20; internal const byte MAJORVER = 1; internal const byte MINORVER = 0; const int MajorVersionOffset = 0; const int MinorVersionOffset = 1; const int LowFlagsOffset = 2; const int HighFlagsOffset = 3; const int PreviousLsnOffsetHigh = 4; const int NextUndoLsnOffsetHigh = 12; byte[] bits; internal FileLogRecordHeader(byte[] bits) { if (bits == null) { this.bits = new Byte[Size]; this.bits[MajorVersionOffset] = MAJORVER; this.bits[MinorVersionOffset] = MINORVER; } else { if (bits.Length < Size) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.LogCorrupt()); } // if version not supported then ??? if (bits[MajorVersionOffset] != MAJORVER) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.IncompatibleVersion()); this.bits = bits; } } internal bool IsRestartArea { get { return (((LowFlags)bits[LowFlagsOffset] & LowFlags.RestartArea) != 0); } set { LowFlags flags = (LowFlags)bits[LowFlagsOffset]; if (value) flags |= LowFlags.RestartArea; else flags &= ~LowFlags.RestartArea; bits[LowFlagsOffset] = (byte)(flags); } } internal SequenceNumber PreviousLsn { get { return new SequenceNumber( BitConverter.ToUInt64(this.bits, PreviousLsnOffsetHigh)); } set { SequenceNumber.WriteUInt64(value.High, this.bits, PreviousLsnOffsetHigh); } } internal SequenceNumber NextUndoLsn { get { return new SequenceNumber(BitConverter.ToUInt64(this.bits, NextUndoLsnOffsetHigh)); } set { SequenceNumber.WriteUInt64(value.High, this.bits, NextUndoLsnOffsetHigh); } } internal byte[] Bits { get { return this.bits; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IO.Log { using System.IO; using System.Diagnostics; internal struct FileLogRecordHeader { [Flags] enum LowFlags : byte { RestartArea = 0x01 } internal const int Size = 20; internal const byte MAJORVER = 1; internal const byte MINORVER = 0; const int MajorVersionOffset = 0; const int MinorVersionOffset = 1; const int LowFlagsOffset = 2; const int HighFlagsOffset = 3; const int PreviousLsnOffsetHigh = 4; const int NextUndoLsnOffsetHigh = 12; byte[] bits; internal FileLogRecordHeader(byte[] bits) { if (bits == null) { this.bits = new Byte[Size]; this.bits[MajorVersionOffset] = MAJORVER; this.bits[MinorVersionOffset] = MINORVER; } else { if (bits.Length < Size) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.LogCorrupt()); } // if version not supported then ??? if (bits[MajorVersionOffset] != MAJORVER) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(Error.IncompatibleVersion()); this.bits = bits; } } internal bool IsRestartArea { get { return (((LowFlags)bits[LowFlagsOffset] & LowFlags.RestartArea) != 0); } set { LowFlags flags = (LowFlags)bits[LowFlagsOffset]; if (value) flags |= LowFlags.RestartArea; else flags &= ~LowFlags.RestartArea; bits[LowFlagsOffset] = (byte)(flags); } } internal SequenceNumber PreviousLsn { get { return new SequenceNumber( BitConverter.ToUInt64(this.bits, PreviousLsnOffsetHigh)); } set { SequenceNumber.WriteUInt64(value.High, this.bits, PreviousLsnOffsetHigh); } } internal SequenceNumber NextUndoLsn { get { return new SequenceNumber(BitConverter.ToUInt64(this.bits, NextUndoLsnOffsetHigh)); } set { SequenceNumber.WriteUInt64(value.High, this.bits, NextUndoLsnOffsetHigh); } } internal byte[] Bits { get { return this.bits; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ListDataBindEventArgs.cs
- SapiRecognizer.cs
- OleDbDataAdapter.cs
- MetadataPropertyvalue.cs
- ImageDrawing.cs
- DependencyPropertyKey.cs
- WindowsRegion.cs
- KeyPullup.cs
- Pen.cs
- DataGridParentRows.cs
- AddInController.cs
- Literal.cs
- IssuedTokenServiceCredential.cs
- webclient.cs
- Environment.cs
- RuleSetBrowserDialog.cs
- StrokeDescriptor.cs
- BaseResourcesBuildProvider.cs
- Form.cs
- basenumberconverter.cs
- HtmlGenericControl.cs
- DataGridLinkButton.cs
- MailMessageEventArgs.cs
- Section.cs
- CipherData.cs
- webbrowsersite.cs
- Helper.cs
- XmlDigitalSignatureProcessor.cs
- BmpBitmapDecoder.cs
- EditingMode.cs
- ForAllOperator.cs
- HttpStreamFormatter.cs
- odbcmetadatafactory.cs
- PublisherMembershipCondition.cs
- reliableinputsessionchannel.cs
- TransportConfigurationTypeElement.cs
- JsonXmlDataContract.cs
- CodeComment.cs
- EventBindingService.cs
- ConnectorMovedEventArgs.cs
- ProcessInfo.cs
- XmlUTF8TextReader.cs
- SizeConverter.cs
- SqlReorderer.cs
- RecognitionEventArgs.cs
- Viewport3DAutomationPeer.cs
- SqlGatherConsumedAliases.cs
- XmlObjectSerializerReadContextComplex.cs
- WindowsFont.cs
- DoubleLinkListEnumerator.cs
- ListSortDescription.cs
- UnsafeNativeMethods.cs
- PropertyReference.cs
- GenericXmlSecurityToken.cs
- CompilerScopeManager.cs
- X509ChainElement.cs
- ZipPackagePart.cs
- OdbcConnectionFactory.cs
- ConnectionStringSettings.cs
- GradientBrush.cs
- GenericTypeParameterBuilder.cs
- RtfToXamlReader.cs
- ValueProviderWrapper.cs
- NativeCppClassAttribute.cs
- ServiceNotStartedException.cs
- Utilities.cs
- GroupItem.cs
- AssociationSetMetadata.cs
- DesigntimeLicenseContext.cs
- TextOnlyOutput.cs
- ADRoleFactory.cs
- Site.cs
- JournalNavigationScope.cs
- TypedElement.cs
- InputScopeAttribute.cs
- RegexFCD.cs
- TextTreeRootTextBlock.cs
- DataSourceHelper.cs
- RemotingAttributes.cs
- SqlHelper.cs
- TransportContext.cs
- PersonalizationProviderHelper.cs
- ArgumentOutOfRangeException.cs
- WasHostedComPlusFactory.cs
- HttpBufferlessInputStream.cs
- NumberSubstitution.cs
- PasswordRecovery.cs
- Focus.cs
- SectionXmlInfo.cs
- X500Name.cs
- XmlSchemas.cs
- SqlDesignerDataSourceView.cs
- fixedPageContentExtractor.cs
- DaylightTime.cs
- DataErrorValidationRule.cs
- XsltQilFactory.cs
- RedistVersionInfo.cs
- SafeTokenHandle.cs
- AccessedThroughPropertyAttribute.cs
- PersonalizationState.cs