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
- PauseStoryboard.cs
- RegistrationServices.cs
- InvalidWMPVersionException.cs
- SqlServer2KCompatibilityAnnotation.cs
- MasterPageCodeDomTreeGenerator.cs
- EncodingTable.cs
- SortableBindingList.cs
- BitmapEffectInputData.cs
- SByte.cs
- RequestCache.cs
- QueueException.cs
- SessionSwitchEventArgs.cs
- AmbientLight.cs
- PerformanceCounters.cs
- externdll.cs
- DefaultEventAttribute.cs
- Command.cs
- ImageCodecInfo.cs
- VisualStyleInformation.cs
- DefaultWorkflowLoaderService.cs
- SqlDataSourceSummaryPanel.cs
- DataRelationPropertyDescriptor.cs
- ColorIndependentAnimationStorage.cs
- CqlWriter.cs
- KoreanCalendar.cs
- CodeAttributeDeclaration.cs
- sapiproxy.cs
- ProjectionCamera.cs
- JulianCalendar.cs
- XmlWriterSettings.cs
- ThreadExceptionEvent.cs
- BitmapDownload.cs
- ConfigXmlElement.cs
- EndpointReference.cs
- BindingRestrictions.cs
- UpDownBase.cs
- QueryOutputWriter.cs
- SystemWebSectionGroup.cs
- DeferredElementTreeState.cs
- BindingCompleteEventArgs.cs
- HandleCollector.cs
- TemplateColumn.cs
- NTAccount.cs
- Schema.cs
- XPathNodeList.cs
- ModelItemDictionaryImpl.cs
- TextUtf8RawTextWriter.cs
- CodeExpressionStatement.cs
- MissingSatelliteAssemblyException.cs
- GetWinFXPath.cs
- TypeToArgumentTypeConverter.cs
- TemplateColumn.cs
- TransformPattern.cs
- VarInfo.cs
- HyperLinkColumn.cs
- ApplicationInfo.cs
- CompositeFontFamily.cs
- IntMinMaxAggregationOperator.cs
- Mouse.cs
- TagElement.cs
- Win32PrintDialog.cs
- QueryOutputWriter.cs
- StatusBarAutomationPeer.cs
- CqlLexerHelpers.cs
- WCFServiceClientProxyGenerator.cs
- HashMembershipCondition.cs
- NetCodeGroup.cs
- FormsAuthenticationUser.cs
- UIPermission.cs
- DBConnection.cs
- LogRecordSequence.cs
- XmlEncoding.cs
- HyperLink.cs
- DocumentPropertiesDialog.cs
- ConstraintCollection.cs
- LambdaCompiler.Address.cs
- RectangleHotSpot.cs
- FileVersionInfo.cs
- UpdatePanelControlTrigger.cs
- TextMarkerSource.cs
- SignatureHelper.cs
- WorkflowDefinitionDispenser.cs
- EdmConstants.cs
- FileRecordSequenceHelper.cs
- RemotingConfiguration.cs
- SeekableMessageNavigator.cs
- Process.cs
- MetafileHeaderEmf.cs
- ComponentDispatcherThread.cs
- UpdatePanelTrigger.cs
- CompiledXpathExpr.cs
- ResponseStream.cs
- UpdateException.cs
- CreateRefExpr.cs
- TagPrefixAttribute.cs
- Errors.cs
- DBCSCodePageEncoding.cs
- FormViewPageEventArgs.cs
- RootProfilePropertySettingsCollection.cs
- XmlTextEncoder.cs