Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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. //------------------------------------------------------------------------------ //// 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RandomNumberGenerator.cs
- AddressingProperty.cs
- GridPatternIdentifiers.cs
- SafeRightsManagementHandle.cs
- RSAProtectedConfigurationProvider.cs
- HttpWriter.cs
- PageResolution.cs
- XmlDataProvider.cs
- UIElementPropertyUndoUnit.cs
- sqlpipe.cs
- CollectionViewGroup.cs
- TextControlDesigner.cs
- ProviderUtil.cs
- AssociatedControlConverter.cs
- Border.cs
- ImageButton.cs
- ValueCollectionParameterReader.cs
- TabControl.cs
- InfoCardBaseException.cs
- IsolatedStoragePermission.cs
- ConstraintConverter.cs
- DocumentManager.cs
- ParallelActivityDesigner.cs
- FilterableAttribute.cs
- ProjectionPruner.cs
- DrawListViewItemEventArgs.cs
- XPathMultyIterator.cs
- Rules.cs
- QueryCacheKey.cs
- ConfigurationPropertyAttribute.cs
- ColumnMapTranslator.cs
- OperatingSystem.cs
- RepeatInfo.cs
- SqlConnectionString.cs
- InputDevice.cs
- FamilyMap.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- _UriSyntax.cs
- PropertyTab.cs
- XmlName.cs
- ProcessThread.cs
- QuaternionAnimation.cs
- PageCache.cs
- ToolboxCategoryItems.cs
- TransformGroup.cs
- Hashtable.cs
- HtmlTableCellCollection.cs
- ToolStripContentPanel.cs
- WindowsIPAddress.cs
- WebBrowserPermission.cs
- HitTestFilterBehavior.cs
- StringStorage.cs
- UseAttributeSetsAction.cs
- FastPropertyAccessor.cs
- ChangeBlockUndoRecord.cs
- DataTemplate.cs
- KeyEvent.cs
- smtpconnection.cs
- OptionalColumn.cs
- GeneralTransform.cs
- WSIdentityFaultException.cs
- WebBrowserPermission.cs
- WebRequestModulesSection.cs
- InstanceKeyView.cs
- ActionFrame.cs
- XmlSchemaType.cs
- TcpProcessProtocolHandler.cs
- DataBoundControlHelper.cs
- AliasGenerator.cs
- FormsAuthenticationTicket.cs
- WebContext.cs
- CodeSnippetStatement.cs
- __Filters.cs
- Single.cs
- CachedTypeface.cs
- TrackBar.cs
- XslException.cs
- PeerFlooder.cs
- DispatchWrapper.cs
- SetterBase.cs
- SystemWebCachingSectionGroup.cs
- SoapEnumAttribute.cs
- PackagePartCollection.cs
- QilReference.cs
- Quad.cs
- Msmq4PoisonHandler.cs
- CacheManager.cs
- ConnectionManagementElementCollection.cs
- KerberosReceiverSecurityToken.cs
- MenuRenderer.cs
- SvcMapFileLoader.cs
- SafeHandles.cs
- DatatypeImplementation.cs
- SessionEndedEventArgs.cs
- DataGridView.cs
- CompilerErrorCollection.cs
- EnvironmentPermission.cs
- SocketPermission.cs
- InstanceNameConverter.cs
- FileAuthorizationModule.cs