Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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. //------------------------------------------------------------------------------ //// 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AppDomainInfo.cs
- UnitControl.cs
- externdll.cs
- BridgeDataReader.cs
- ControlBindingsCollection.cs
- AuthorizationSection.cs
- TextEditorDragDrop.cs
- Sql8ConformanceChecker.cs
- RepeaterItem.cs
- BaseParagraph.cs
- HideDisabledControlAdapter.cs
- GroupBoxDesigner.cs
- VectorAnimation.cs
- GridViewAutomationPeer.cs
- Preprocessor.cs
- SqlMethodTransformer.cs
- InputReport.cs
- Double.cs
- RoleManagerSection.cs
- Profiler.cs
- WebPartsPersonalization.cs
- ConfigurationCollectionAttribute.cs
- ParameterElementCollection.cs
- ExtenderProviderService.cs
- EmbeddedObject.cs
- FormViewUpdateEventArgs.cs
- BitSet.cs
- FreezableCollection.cs
- QilInvokeEarlyBound.cs
- SqlTopReducer.cs
- SystemInfo.cs
- UndoManager.cs
- CodeBinaryOperatorExpression.cs
- PersonalizablePropertyEntry.cs
- CompoundFileStreamReference.cs
- HashAlgorithm.cs
- OleDbWrapper.cs
- Rect.cs
- XmlSerializerFormatAttribute.cs
- SettingsPropertyIsReadOnlyException.cs
- ResetableIterator.cs
- PenContext.cs
- FtpWebRequest.cs
- EntryIndex.cs
- IgnorePropertiesAttribute.cs
- AppDomain.cs
- HotCommands.cs
- RuntimeWrappedException.cs
- ArgumentReference.cs
- TargetException.cs
- Item.cs
- ErrorWrapper.cs
- BitmapMetadata.cs
- UDPClient.cs
- TrackingMemoryStream.cs
- HtmlToClrEventProxy.cs
- WindowsFormsHostPropertyMap.cs
- ResourceReferenceExpression.cs
- PageAdapter.cs
- SqlFormatter.cs
- WindowsFont.cs
- XmlHierarchyData.cs
- PenThread.cs
- EventTrigger.cs
- Line.cs
- ErrorsHelper.cs
- ServiceSecurityAuditElement.cs
- TypedDataSetSchemaImporterExtension.cs
- DeploymentExceptionMapper.cs
- OleDbReferenceCollection.cs
- MouseEvent.cs
- FrameworkObject.cs
- Point3DIndependentAnimationStorage.cs
- Convert.cs
- StreamInfo.cs
- PointValueSerializer.cs
- HttpProfileBase.cs
- BinaryFormatter.cs
- BamlLocalizableResourceKey.cs
- PeerObject.cs
- IdleTimeoutMonitor.cs
- DependencyPropertyConverter.cs
- FloatAverageAggregationOperator.cs
- EditorPartDesigner.cs
- CombinedGeometry.cs
- XXXOnTypeBuilderInstantiation.cs
- RemoteX509Token.cs
- TextComposition.cs
- XmlSerializerAssemblyAttribute.cs
- ResolveCompletedEventArgs.cs
- FontInfo.cs
- SQLCharsStorage.cs
- BufferedMessageWriter.cs
- PageTheme.cs
- DefaultObjectMappingItemCollection.cs
- ColorContextHelper.cs
- MenuItemStyle.cs
- Exceptions.cs
- XmlSchemaValidator.cs
- PipelineModuleStepContainer.cs