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
- JsonWriterDelegator.cs
- ControlPropertyNameConverter.cs
- CodeExpressionStatement.cs
- CurrencyManager.cs
- objectquery_tresulttype.cs
- XPathConvert.cs
- MatrixUtil.cs
- ProfileProvider.cs
- InputLanguage.cs
- BamlBinaryReader.cs
- ComponentResourceManager.cs
- WebBrowserDocumentCompletedEventHandler.cs
- XPathAncestorQuery.cs
- TableRowCollection.cs
- SystemWebSectionGroup.cs
- SqlDelegatedTransaction.cs
- SequenceRangeCollection.cs
- APCustomTypeDescriptor.cs
- StoragePropertyMapping.cs
- HostProtectionPermission.cs
- Container.cs
- ListViewInsertEventArgs.cs
- TranslateTransform3D.cs
- SafeProcessHandle.cs
- ListViewPagedDataSource.cs
- TrustLevel.cs
- MarginCollapsingState.cs
- SqlPersistenceProviderFactory.cs
- ConsoleKeyInfo.cs
- RuntimeDelegateArgument.cs
- SkinBuilder.cs
- SoapFault.cs
- DataGridViewRowEventArgs.cs
- XmlNamespaceMappingCollection.cs
- COM2PictureConverter.cs
- ISAPIWorkerRequest.cs
- Cursors.cs
- SQLConvert.cs
- SafePEFileHandle.cs
- IImplicitResourceProvider.cs
- LinkedList.cs
- UniformGrid.cs
- DocumentViewerAutomationPeer.cs
- XmlTypeMapping.cs
- XmlDataSource.cs
- IndexedEnumerable.cs
- ThousandthOfEmRealDoubles.cs
- AstTree.cs
- ActivityDesignerResources.cs
- ContextMarshalException.cs
- MetadataItemSerializer.cs
- SimpleTableProvider.cs
- Drawing.cs
- AutoResizedEvent.cs
- MethodBuilder.cs
- FilteredAttributeCollection.cs
- _FtpControlStream.cs
- StateElementCollection.cs
- ConnectionStringsSection.cs
- Material.cs
- DefaultEventAttribute.cs
- VideoDrawing.cs
- manifestimages.cs
- DataContractJsonSerializer.cs
- DataContractSet.cs
- Cursors.cs
- TokenBasedSet.cs
- TimeStampChecker.cs
- MsmqEncryptionAlgorithm.cs
- UInt32Converter.cs
- SafeNativeMethods.cs
- ListViewGroup.cs
- SortableBindingList.cs
- MobileUserControl.cs
- Boolean.cs
- ListSourceHelper.cs
- IListConverters.cs
- LogAppendAsyncResult.cs
- Rectangle.cs
- ImageMapEventArgs.cs
- NativeCppClassAttribute.cs
- TextFormatterContext.cs
- XmlWriterSettings.cs
- PointHitTestParameters.cs
- RecipientInfo.cs
- UrlAuthorizationModule.cs
- SQLInt16Storage.cs
- ColorAnimation.cs
- Point.cs
- LazyLoadBehavior.cs
- Margins.cs
- TaiwanCalendar.cs
- ExtentCqlBlock.cs
- SynchronizationContext.cs
- DataSet.cs
- XmlDictionaryWriter.cs
- TraceUtils.cs
- MetaForeignKeyColumn.cs
- ReturnType.cs
- CqlParserHelpers.cs