Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- BezierSegment.cs
- XsdDataContractExporter.cs
- Int32Collection.cs
- PersonalizableTypeEntry.cs
- DataGridViewButtonColumn.cs
- TextBoxAutoCompleteSourceConverter.cs
- DefaultTypeArgumentAttribute.cs
- CodeTryCatchFinallyStatement.cs
- Msec.cs
- SendKeys.cs
- SqlVisitor.cs
- VisualStyleInformation.cs
- WebPartUserCapability.cs
- DragCompletedEventArgs.cs
- OdbcConnectionString.cs
- ElementHost.cs
- ConstructorBuilder.cs
- SettingsSection.cs
- CaseStatementProjectedSlot.cs
- ObfuscationAttribute.cs
- QuadraticEase.cs
- ProjectionPlan.cs
- StyleHelper.cs
- ButtonColumn.cs
- ObservableDictionary.cs
- TextTreeFixupNode.cs
- TemplateModeChangedEventArgs.cs
- AnnotationStore.cs
- WindowsRebar.cs
- TableColumnCollectionInternal.cs
- TextTreeDeleteContentUndoUnit.cs
- UInt32Storage.cs
- FormViewDesigner.cs
- Stylesheet.cs
- NativeMethods.cs
- CapabilitiesPattern.cs
- FilterQuery.cs
- StorageFunctionMapping.cs
- RuleAction.cs
- PackUriHelper.cs
- SoapExtensionTypeElement.cs
- SortDescription.cs
- DataRowComparer.cs
- LinearKeyFrames.cs
- AuthorizationRule.cs
- PathNode.cs
- SqlCommandBuilder.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- CdpEqualityComparer.cs
- HttpProfileGroupBase.cs
- ExpressionBindingCollection.cs
- MethodExecutor.cs
- WindowsPen.cs
- DesignerAttribute.cs
- GradientStopCollection.cs
- BasePattern.cs
- ProcessThread.cs
- WebPartDescription.cs
- BitmapCacheBrush.cs
- GestureRecognitionResult.cs
- _LocalDataStore.cs
- DESCryptoServiceProvider.cs
- ProxyGenerationError.cs
- EventLogPermissionEntry.cs
- Inline.cs
- ScrollChrome.cs
- UnsafeNativeMethods.cs
- DescendantBaseQuery.cs
- TemplateColumn.cs
- UnsafeNativeMethods.cs
- SvcMapFile.cs
- VarRefManager.cs
- XmlNullResolver.cs
- RenderingBiasValidation.cs
- CellIdBoolean.cs
- ListViewUpdateEventArgs.cs
- DependencyProperty.cs
- XMLSyntaxException.cs
- prefixendpointaddressmessagefiltertable.cs
- TextParaLineResult.cs
- MenuItemCollectionEditorDialog.cs
- DataSourceXmlAttributeAttribute.cs
- DataBindingExpressionBuilder.cs
- GroupQuery.cs
- FixedPageStructure.cs
- FontStyle.cs
- COM2ExtendedTypeConverter.cs
- PieceDirectory.cs
- DesignTimeParseData.cs
- PolyLineSegmentFigureLogic.cs
- JsonServiceDocumentSerializer.cs
- DataTableTypeConverter.cs
- TemplateControlParser.cs
- FixedStringLookup.cs
- RecommendedAsConfigurableAttribute.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ChangePassword.cs
- ArgumentException.cs
- WhitespaceRuleReader.cs
- ListSortDescriptionCollection.cs