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
- SoapConverter.cs
- SqlReferenceCollection.cs
- HttpCookiesSection.cs
- ServerValidateEventArgs.cs
- ResourceDescriptionAttribute.cs
- PropertyPathWorker.cs
- CircleEase.cs
- ListViewGroup.cs
- TimeSpanConverter.cs
- TypeExtension.cs
- HealthMonitoringSectionHelper.cs
- CodeDelegateCreateExpression.cs
- VectorValueSerializer.cs
- DesignerView.xaml.cs
- SqlClientWrapperSmiStream.cs
- ServiceNameCollection.cs
- PageRanges.cs
- DocumentGridContextMenu.cs
- CodeValidator.cs
- XmlSchemaExporter.cs
- UnaryNode.cs
- RegisteredArrayDeclaration.cs
- LinkClickEvent.cs
- XmlAttributeOverrides.cs
- RequestCachePolicyConverter.cs
- DataSourceCacheDurationConverter.cs
- TextChange.cs
- EntityContainerAssociationSet.cs
- Size3D.cs
- DbConnectionPoolIdentity.cs
- MatchAttribute.cs
- LongTypeConverter.cs
- ChannelManagerBase.cs
- DoubleConverter.cs
- Stylesheet.cs
- DBSqlParser.cs
- UserControl.cs
- XmlDocumentFieldSchema.cs
- DragDrop.cs
- ReaderContextStackData.cs
- LeafCellTreeNode.cs
- ResourceAssociationSetEnd.cs
- RealizationContext.cs
- CurrencyManager.cs
- TemplateControlParser.cs
- BaseServiceProvider.cs
- SqlFormatter.cs
- SchemaCollectionCompiler.cs
- TextModifierScope.cs
- ExtenderProviderService.cs
- ObjectDataSourceDesigner.cs
- ProviderUtil.cs
- EntityChangedParams.cs
- LazyLoadBehavior.cs
- AsyncCodeActivity.cs
- Convert.cs
- XmlEntity.cs
- FieldDescriptor.cs
- QueryLifecycle.cs
- DispatcherEventArgs.cs
- CredentialCache.cs
- UnescapedXmlDiagnosticData.cs
- StickyNoteHelper.cs
- NaturalLanguageHyphenator.cs
- WindowCollection.cs
- FileLogRecordHeader.cs
- CultureTableRecord.cs
- FixedFlowMap.cs
- GenericTextProperties.cs
- Permission.cs
- PiiTraceSource.cs
- DbConnectionPoolCounters.cs
- EventNotify.cs
- Geometry.cs
- UrlRoutingHandler.cs
- CompilerScopeManager.cs
- GlyphsSerializer.cs
- StandardTransformFactory.cs
- Keyboard.cs
- ConfigXmlAttribute.cs
- ApplicationCommands.cs
- SimpleRecyclingCache.cs
- SoapAttributeOverrides.cs
- SmiMetaDataProperty.cs
- TransactionsSectionGroup.cs
- SoapServerMethod.cs
- InfoCardProofToken.cs
- EditingCoordinator.cs
- PrintSchema.cs
- SatelliteContractVersionAttribute.cs
- Calendar.cs
- SystemGatewayIPAddressInformation.cs
- ReflectionHelper.cs
- RegisteredScript.cs
- EntityTypeBase.cs
- figurelengthconverter.cs
- HostingPreferredMapPath.cs
- HttpCapabilitiesSectionHandler.cs
- MimeBasePart.cs
- ConstrainedGroup.cs