Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / Util / SimpleBitVector32.cs / 1 / SimpleBitVector32.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Util { using System; // // This is a cut down copy of System.Collections.Specialized.BitVector32. The // reason this is here is because it is used rather intensively by Control and // WebControl. As a result, being able to inline this operations results in a // measurable performance gain, at the expense of some maintainability. // [Serializable] internal struct SimpleBitVector32 { private int data; internal SimpleBitVector32(int data) { this.data = data; } internal int IntegerValue { get { return data; } set { data = value; } } internal bool this[int bit] { get { return (data & bit) == bit; } set { int _data = data; if(value) { data = _data | bit; } else { data = _data & ~bit; } } } internal void Set(int bit) { data |= bit; } internal void Clear(int bit) { data &= ~bit; } #if UNUSED_CODE internal void Toggle(int bit) { data ^= bit; } /* * COPY_FLAG copies the value of flags from a source field * into a destination field. * * In the macro: * + "&flag" limits the outer xor operation to just the flag we're interested in. * + These are the results of the two xor operations: * * fieldDst fieldSrc inner xor outer xor * 0 0 0 0 * 0 1 1 1 * 1 0 1 0 * 1 1 0 1 */ internal void Copy(SimpleBitVector32 src, int bit) { data ^= (data ^ src.data) & bit; } internal int Data { get { return data; } set { data = value; } } #endif } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Util { using System; // // This is a cut down copy of System.Collections.Specialized.BitVector32. The // reason this is here is because it is used rather intensively by Control and // WebControl. As a result, being able to inline this operations results in a // measurable performance gain, at the expense of some maintainability. // [Serializable] internal struct SimpleBitVector32 { private int data; internal SimpleBitVector32(int data) { this.data = data; } internal int IntegerValue { get { return data; } set { data = value; } } internal bool this[int bit] { get { return (data & bit) == bit; } set { int _data = data; if(value) { data = _data | bit; } else { data = _data & ~bit; } } } internal void Set(int bit) { data |= bit; } internal void Clear(int bit) { data &= ~bit; } #if UNUSED_CODE internal void Toggle(int bit) { data ^= bit; } /* * COPY_FLAG copies the value of flags from a source field * into a destination field. * * In the macro: * + "&flag" limits the outer xor operation to just the flag we're interested in. * + These are the results of the two xor operations: * * fieldDst fieldSrc inner xor outer xor * 0 0 0 0 * 0 1 1 1 * 1 0 1 0 * 1 1 0 1 */ internal void Copy(SimpleBitVector32 src, int bit) { data ^= (data ^ src.data) & bit; } internal int Data { get { return data; } set { data = value; } } #endif } } // 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
- SmiMetaDataProperty.cs
- AssemblyBuilder.cs
- WebPartUserCapability.cs
- VisualStyleInformation.cs
- CollectionBase.cs
- SafeFileMappingHandle.cs
- LocatorBase.cs
- VectorConverter.cs
- PackageProperties.cs
- HitTestResult.cs
- MULTI_QI.cs
- XmlExtensionFunction.cs
- ToolStripItemImageRenderEventArgs.cs
- SignatureDescription.cs
- ToolStripPanelRow.cs
- ResXFileRef.cs
- XmlSchemaProviderAttribute.cs
- TreeChangeInfo.cs
- MatrixConverter.cs
- EndpointNotFoundException.cs
- ByteStream.cs
- CompilationSection.cs
- Transform.cs
- UniqueID.cs
- NavigationProperty.cs
- Style.cs
- MemberHolder.cs
- DBNull.cs
- TaskFormBase.cs
- DataControlButton.cs
- CannotUnloadAppDomainException.cs
- ConfigXmlComment.cs
- PerformanceCounterCategory.cs
- CachedBitmap.cs
- TrackingValidationObjectDictionary.cs
- RtfFormatStack.cs
- EncoderExceptionFallback.cs
- ControlAdapter.cs
- VersionPair.cs
- BStrWrapper.cs
- HwndSourceKeyboardInputSite.cs
- StagingAreaInputItem.cs
- WindowsRichEditRange.cs
- DataBindEngine.cs
- WindowsRichEdit.cs
- ServiceBehaviorElement.cs
- IndexingContentUnit.cs
- XmlSerializerOperationGenerator.cs
- ListSortDescriptionCollection.cs
- ListItemsCollectionEditor.cs
- PerfService.cs
- XmlSchemaGroupRef.cs
- SolidColorBrush.cs
- ActivityExecutorDelegateInfo.cs
- RawMouseInputReport.cs
- DecimalConverter.cs
- ServicePointManagerElement.cs
- ImpersonationContext.cs
- ListViewItemSelectionChangedEvent.cs
- GetPolicyDetailsRequest.cs
- DetailsViewPagerRow.cs
- FrameDimension.cs
- TextParagraphProperties.cs
- ButtonBaseAdapter.cs
- documentation.cs
- ServiceTimeoutsElement.cs
- HwndPanningFeedback.cs
- Select.cs
- MemberProjectionIndex.cs
- ContractReference.cs
- SessionStateUtil.cs
- InitializationEventAttribute.cs
- SpellerError.cs
- InputScopeNameConverter.cs
- ComponentManagerBroker.cs
- DesignTimeTemplateParser.cs
- __ComObject.cs
- basecomparevalidator.cs
- LabelExpression.cs
- AttributeQuery.cs
- Atom10FormatterFactory.cs
- Application.cs
- Errors.cs
- DetailsViewUpdateEventArgs.cs
- TextEncodedRawTextWriter.cs
- SmtpClient.cs
- __TransparentProxy.cs
- TemplateBaseAction.cs
- UnhandledExceptionEventArgs.cs
- HashStream.cs
- RestClientProxyHandler.cs
- DbProviderFactoriesConfigurationHandler.cs
- ScrollChrome.cs
- Types.cs
- CodeDefaultValueExpression.cs
- CultureInfoConverter.cs
- SingleKeyFrameCollection.cs
- OleDragDropHandler.cs
- ConfigurationProviderException.cs
- Scene3D.cs