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
- VideoDrawing.cs
- IdSpace.cs
- RootProjectionNode.cs
- SqlResolver.cs
- Sql8ConformanceChecker.cs
- TextTrailingWordEllipsis.cs
- DNS.cs
- MsmqInputMessagePool.cs
- TypeUnloadedException.cs
- FloatUtil.cs
- validation.cs
- IsolationInterop.cs
- TriggerBase.cs
- MSAAEventDispatcher.cs
- RegexReplacement.cs
- TerminatorSinks.cs
- Method.cs
- HttpCapabilitiesEvaluator.cs
- EraserBehavior.cs
- BindToObject.cs
- WeakEventManager.cs
- CounterCreationData.cs
- WinInet.cs
- XmlCharType.cs
- DataTrigger.cs
- MarkupCompilePass2.cs
- ObjectDataSourceSelectingEventArgs.cs
- TextServicesCompartmentContext.cs
- TdsParameterSetter.cs
- StorageRoot.cs
- ComplexObject.cs
- AttachedPropertyDescriptor.cs
- DataServiceBehavior.cs
- RootDesignerSerializerAttribute.cs
- HtmlTitle.cs
- ResourceCodeDomSerializer.cs
- XmlSiteMapProvider.cs
- QuaternionAnimationBase.cs
- OleDbException.cs
- DataFieldConverter.cs
- CacheAxisQuery.cs
- HostedElements.cs
- ListViewInsertionMark.cs
- remotingproxy.cs
- DiagnosticTrace.cs
- BindingCompleteEventArgs.cs
- Utils.cs
- SetStoryboardSpeedRatio.cs
- UnmanagedMemoryStreamWrapper.cs
- MenuItemStyle.cs
- ThreadNeutralSemaphore.cs
- Int16Storage.cs
- TreeBuilderXamlTranslator.cs
- NetCodeGroup.cs
- Image.cs
- FileInfo.cs
- CuspData.cs
- TextTreeRootNode.cs
- ObjectSet.cs
- WindowsToolbarAsMenu.cs
- SspiHelper.cs
- SelectionHighlightInfo.cs
- MasterPage.cs
- NotifyIcon.cs
- NetWebProxyFinder.cs
- DataServiceRequestException.cs
- Geometry.cs
- FolderBrowserDialog.cs
- StreamingContext.cs
- MemoryFailPoint.cs
- Int64.cs
- FilterUserControlBase.cs
- COSERVERINFO.cs
- EntryIndex.cs
- BaseResourcesBuildProvider.cs
- StrokeIntersection.cs
- TriggerAction.cs
- RectangleHotSpot.cs
- EntityTypeEmitter.cs
- TableChangeProcessor.cs
- CallSiteHelpers.cs
- UInt32.cs
- SmtpMail.cs
- PreviewPrintController.cs
- SlotInfo.cs
- DataGridColumnHeaderCollection.cs
- ObjectRef.cs
- DropTarget.cs
- DebuggerAttributes.cs
- SrgsGrammarCompiler.cs
- EventHandlerList.cs
- QilGeneratorEnv.cs
- RequestQueue.cs
- CacheRequest.cs
- AddIn.cs
- RowParagraph.cs
- XmlSchemaAttributeGroupRef.cs
- InfiniteTimeSpanConverter.cs
- BufferedGraphicsContext.cs
- SmiEventSink_Default.cs