Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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. // //----------------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Point3D.cs
- EntityCollection.cs
- TagElement.cs
- RuntimeIdentifierPropertyAttribute.cs
- UIElement3D.cs
- Style.cs
- FloatMinMaxAggregationOperator.cs
- WebPartTracker.cs
- SplashScreen.cs
- DropDownHolder.cs
- StateManagedCollection.cs
- ReflectionTypeLoadException.cs
- WorkflowStateRollbackService.cs
- AccessText.cs
- BoolExpr.cs
- DbMetaDataCollectionNames.cs
- StyleCollection.cs
- XslTransform.cs
- DesignerDataStoredProcedure.cs
- TreeNodeBindingCollection.cs
- CopyOnWriteList.cs
- MobileListItemCollection.cs
- TypeResolvingOptions.cs
- CollectionMarkupSerializer.cs
- XmlWhitespace.cs
- DiscardableAttribute.cs
- WebBrowserEvent.cs
- ToolStripLocationCancelEventArgs.cs
- BamlRecordReader.cs
- BrowserInteropHelper.cs
- BamlCollectionHolder.cs
- WebPartChrome.cs
- SecurityKeyEntropyMode.cs
- MatrixIndependentAnimationStorage.cs
- LogicalExpressionTypeConverter.cs
- MailMessageEventArgs.cs
- WebPartManagerInternals.cs
- MsmqTransportElement.cs
- GestureRecognizer.cs
- WrappedIUnknown.cs
- AxisAngleRotation3D.cs
- _Win32.cs
- GridViewAutomationPeer.cs
- ListViewDataItem.cs
- BaseCollection.cs
- CompilerCollection.cs
- DataViewManagerListItemTypeDescriptor.cs
- CurrentChangedEventManager.cs
- FileIOPermission.cs
- oledbmetadatacollectionnames.cs
- OdbcStatementHandle.cs
- CapabilitiesAssignment.cs
- UnsafeNativeMethodsPenimc.cs
- SamlNameIdentifierClaimResource.cs
- RepeaterItemCollection.cs
- wgx_render.cs
- CqlWriter.cs
- oledbmetadatacolumnnames.cs
- FindRequestContext.cs
- ObjectAnimationBase.cs
- FilterUserControlBase.cs
- Misc.cs
- TextRenderingModeValidation.cs
- WindowsTokenRoleProvider.cs
- IList.cs
- EventSetter.cs
- safemediahandle.cs
- SymmetricAlgorithm.cs
- XXXOnTypeBuilderInstantiation.cs
- LinkedResource.cs
- _NativeSSPI.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- AmbientLight.cs
- LayoutTable.cs
- DeploymentSectionCache.cs
- pingexception.cs
- DeferrableContentConverter.cs
- PreviewPrintController.cs
- QueryOptionExpression.cs
- DbTypeMap.cs
- SafeRightsManagementEnvironmentHandle.cs
- JumpList.cs
- RbTree.cs
- EntityDesignerDataSourceView.cs
- MobileListItemCollection.cs
- ListViewItem.cs
- XPathBinder.cs
- XmlWrappingWriter.cs
- glyphs.cs
- TreeViewItem.cs
- RangeValuePatternIdentifiers.cs
- ListViewDataItem.cs
- IncrementalReadDecoders.cs
- OleStrCAMarshaler.cs
- RootBuilder.cs
- X509ClientCertificateCredentialsElement.cs
- __Filters.cs
- IntSecurity.cs
- ServiceOperationParameter.cs
- SafeFileMappingHandle.cs