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
- MulticastDelegate.cs
- CallSiteBinder.cs
- SafeNativeMethods.cs
- RectAnimationBase.cs
- EntitySetBase.cs
- DataObjectEventArgs.cs
- IndexObject.cs
- WinFormsSecurity.cs
- ToolboxItemCollection.cs
- PartialToken.cs
- XmlSchemaInferenceException.cs
- WaitHandleCannotBeOpenedException.cs
- TimeManager.cs
- XPathSingletonIterator.cs
- SyndicationItemFormatter.cs
- GridSplitter.cs
- DataTableMapping.cs
- DataSourceView.cs
- DocumentAutomationPeer.cs
- HtmlControlPersistable.cs
- TextRunProperties.cs
- TableLayoutRowStyleCollection.cs
- ValueConversionAttribute.cs
- PrintPageEvent.cs
- ImageField.cs
- XhtmlBasicImageAdapter.cs
- ListViewUpdatedEventArgs.cs
- DesignTimeData.cs
- WrappedIUnknown.cs
- WithStatement.cs
- AndCondition.cs
- WindowsBrush.cs
- ReachPageContentSerializerAsync.cs
- PageParser.cs
- Brush.cs
- ZoneMembershipCondition.cs
- PointAnimationBase.cs
- CaseInsensitiveHashCodeProvider.cs
- EFColumnProvider.cs
- PropertyMappingExceptionEventArgs.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- TableLayoutStyleCollection.cs
- IndexedString.cs
- UseAttributeSetsAction.cs
- HttpHandlersSection.cs
- MobileErrorInfo.cs
- ApplicationManager.cs
- ExtendedTransformFactory.cs
- Condition.cs
- ServiceObjectContainer.cs
- basenumberconverter.cs
- WindowPatternIdentifiers.cs
- UnsafeNativeMethods.cs
- StylusEventArgs.cs
- ListenerAdaptersInstallComponent.cs
- XsdBuilder.cs
- SafeHandles.cs
- EntityDesignPluralizationHandler.cs
- DataControlCommands.cs
- InputScope.cs
- CollectionsUtil.cs
- UriScheme.cs
- MatrixAnimationBase.cs
- TripleDESCryptoServiceProvider.cs
- XsltInput.cs
- FreezableOperations.cs
- GeometryCombineModeValidation.cs
- HttpWebRequest.cs
- X509UI.cs
- SafePointer.cs
- CfgArc.cs
- SmtpFailedRecipientsException.cs
- cookieexception.cs
- KnownIds.cs
- SafeNativeMethods.cs
- AppDomainEvidenceFactory.cs
- BamlVersionHeader.cs
- ErrorWrapper.cs
- DateTimePicker.cs
- LinkTarget.cs
- SiteIdentityPermission.cs
- DataSvcMapFileSerializer.cs
- DataGridCommandEventArgs.cs
- InkCanvasAutomationPeer.cs
- Knowncolors.cs
- WebPartZoneCollection.cs
- SchemaMapping.cs
- HttpModulesSection.cs
- SkinBuilder.cs
- EventRecordWrittenEventArgs.cs
- Matrix3DConverter.cs
- HexParser.cs
- ClientRuntime.cs
- FilterableAttribute.cs
- AuthenticationModulesSection.cs
- SuppressMessageAttribute.cs
- SystemSounds.cs
- CurrentTimeZone.cs
- RTLAwareMessageBox.cs
- DependencySource.cs