Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Configuration / System / Configuration / SimpleBitVector32.cs / 1 / SimpleBitVector32.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { 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 Data { get { return data; } #if UNUSED_CODE set { data = value; } #endif } internal bool this[int bit] { get { return (data & bit) == bit; } set { int _data = data; if(value) { data = _data | bit; } else { data = _data & ~bit; } } } #if UNUSED_CODE internal void Set(int bit) { data |= bit; } internal void Clear(int bit) { data &= ~bit; } 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; } #endif } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { 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 Data { get { return data; } #if UNUSED_CODE set { data = value; } #endif } internal bool this[int bit] { get { return (data & bit) == bit; } set { int _data = data; if(value) { data = _data | bit; } else { data = _data & ~bit; } } } #if UNUSED_CODE internal void Set(int bit) { data |= bit; } internal void Clear(int bit) { data &= ~bit; } 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; } #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
- DrawingVisual.cs
- ParenthesizePropertyNameAttribute.cs
- ConfigurationProviderException.cs
- TypeLibConverter.cs
- DecimalAverageAggregationOperator.cs
- UiaCoreProviderApi.cs
- Rotation3DAnimationBase.cs
- GridPattern.cs
- BitmapEffect.cs
- ObjectMemberMapping.cs
- Cursor.cs
- DesignerGenericWebPart.cs
- Timer.cs
- ActivitySurrogate.cs
- StyleModeStack.cs
- AuthenticatedStream.cs
- ArrayEditor.cs
- SecurityMode.cs
- IOThreadTimer.cs
- AuthStoreRoleProvider.cs
- Dictionary.cs
- EventPropertyMap.cs
- Token.cs
- DynamicRenderer.cs
- DateTimeFormat.cs
- SignatureResourcePool.cs
- DataIdProcessor.cs
- Monitor.cs
- SecurityDocument.cs
- XmlDsigSep2000.cs
- DynamicResourceExtensionConverter.cs
- PingOptions.cs
- ScriptResourceInfo.cs
- DBSchemaRow.cs
- TextureBrush.cs
- ArrayHelper.cs
- MediaSystem.cs
- DataGridViewCheckBoxCell.cs
- SourceChangedEventArgs.cs
- URLIdentityPermission.cs
- PagesSection.cs
- HostProtectionException.cs
- KeyInfo.cs
- FormParameter.cs
- SequenceFullException.cs
- SafeNativeMethods.cs
- MethodImplAttribute.cs
- StrongNameMembershipCondition.cs
- WebPartUserCapability.cs
- WebPartsPersonalization.cs
- DataServiceHostFactory.cs
- TableItemPattern.cs
- TextBoxBase.cs
- Win32Exception.cs
- FileStream.cs
- PropertyTabAttribute.cs
- TreeNodeSelectionProcessor.cs
- ParameterToken.cs
- RelationshipEnd.cs
- SecurityTokenValidationException.cs
- UDPClient.cs
- BigInt.cs
- DeflateEmulationStream.cs
- Simplifier.cs
- ManipulationCompletedEventArgs.cs
- XsltSettings.cs
- SmiConnection.cs
- VectorKeyFrameCollection.cs
- Atom10FormatterFactory.cs
- Win32PrintDialog.cs
- ProcessModule.cs
- Axis.cs
- DialogResultConverter.cs
- CodeMemberMethod.cs
- Image.cs
- PatternMatcher.cs
- FileUtil.cs
- PathSegment.cs
- StorageBasedPackageProperties.cs
- SvcFileManager.cs
- VirtualDirectoryMapping.cs
- ToolStripItemGlyph.cs
- DocumentOrderComparer.cs
- XamlSerializerUtil.cs
- DetailsViewRowCollection.cs
- LocalizableResourceBuilder.cs
- entitydatasourceentitysetnameconverter.cs
- SBCSCodePageEncoding.cs
- ClientSponsor.cs
- FilterableAttribute.cs
- IItemProperties.cs
- VirtualDirectoryMappingCollection.cs
- UIElement.cs
- hwndwrapper.cs
- BaseValidator.cs
- RemoteWebConfigurationHost.cs
- DataRelation.cs
- CollectionContainer.cs
- StringConverter.cs
- CodeDomConfigurationHandler.cs