Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- HtmlInputFile.cs
- addressfiltermode.cs
- login.cs
- CodeNamespaceImportCollection.cs
- CollectionContainer.cs
- TemplateControlBuildProvider.cs
- Int64.cs
- CodeSnippetTypeMember.cs
- IndexerNameAttribute.cs
- DataGridViewRowConverter.cs
- UserCancellationException.cs
- SqlDataReaderSmi.cs
- SubMenuStyleCollection.cs
- CapabilitiesRule.cs
- FixedTextView.cs
- ButtonChrome.cs
- RadioButtonRenderer.cs
- FlowDocumentReader.cs
- WindowsListViewItemCheckBox.cs
- CategoryGridEntry.cs
- RulePatternOps.cs
- LinkLabelLinkClickedEvent.cs
- ProjectionCamera.cs
- PerspectiveCamera.cs
- safemediahandle.cs
- SQLBoolean.cs
- JsonSerializer.cs
- MouseGestureConverter.cs
- DataBoundLiteralControl.cs
- FixedSOMImage.cs
- XmlArrayItemAttribute.cs
- HttpProfileGroupBase.cs
- EmissiveMaterial.cs
- InvalidProgramException.cs
- IApplicationTrustManager.cs
- Screen.cs
- DoubleConverter.cs
- DomainUpDown.cs
- DirectoryRedirect.cs
- FragmentQueryProcessor.cs
- TextBoxView.cs
- DisableDpiAwarenessAttribute.cs
- TreeViewTemplateSelector.cs
- TraceEventCache.cs
- SqlUserDefinedTypeAttribute.cs
- IndexExpression.cs
- StorageSetMapping.cs
- Event.cs
- EmptyCollection.cs
- TreeViewDesigner.cs
- WizardSideBarListControlItem.cs
- XmlWrappingReader.cs
- EntityTypeEmitter.cs
- ForeignConstraint.cs
- ReaderWriterLockSlim.cs
- Image.cs
- SizeKeyFrameCollection.cs
- WindowsListViewSubItem.cs
- XamlWrappingReader.cs
- SingleResultAttribute.cs
- DispatcherObject.cs
- ProjectionAnalyzer.cs
- SqlUdtInfo.cs
- Pointer.cs
- RawStylusInputReport.cs
- SchemaNames.cs
- HandleCollector.cs
- InkCanvasInnerCanvas.cs
- CuspData.cs
- FormViewCommandEventArgs.cs
- DefaultParameterValueAttribute.cs
- JobPageOrder.cs
- ClientUrlResolverWrapper.cs
- LocatorPart.cs
- FormViewDesigner.cs
- X509Chain.cs
- PinnedBufferMemoryStream.cs
- ApplicationCommands.cs
- Constant.cs
- SchemaMapping.cs
- FlowDecision.cs
- SpeakProgressEventArgs.cs
- HwndMouseInputProvider.cs
- UnsafeNativeMethods.cs
- PropertyIdentifier.cs
- UpdateTranslator.cs
- FormViewModeEventArgs.cs
- ServiceOperationInvoker.cs
- GiveFeedbackEvent.cs
- SqlStatistics.cs
- CqlQuery.cs
- CompressedStack.cs
- RbTree.cs
- Transform.cs
- ReaderWriterLockWrapper.cs
- HwndKeyboardInputProvider.cs
- SpeechRecognitionEngine.cs
- QuaternionAnimationBase.cs
- X509Utils.cs
- TypeConvertions.cs