Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- GridLengthConverter.cs
- SqlDataSourceView.cs
- NegationPusher.cs
- OleDbError.cs
- WizardForm.cs
- NotFiniteNumberException.cs
- WindowsFormsSynchronizationContext.cs
- FormViewRow.cs
- Encoder.cs
- Grid.cs
- MeasurementDCInfo.cs
- RawUIStateInputReport.cs
- Button.cs
- X509ServiceCertificateAuthentication.cs
- EventsTab.cs
- PartialCachingControl.cs
- ServiceBusyException.cs
- TableProviderWrapper.cs
- __Filters.cs
- UnsafeNativeMethodsPenimc.cs
- InitializerFacet.cs
- TextEditorParagraphs.cs
- CodeCastExpression.cs
- QilPatternVisitor.cs
- BaseDataBoundControl.cs
- Decorator.cs
- DynamicDocumentPaginator.cs
- DragEvent.cs
- SmtpMail.cs
- SqlMethodTransformer.cs
- EntityDataSourceWrapper.cs
- MetadataArtifactLoaderComposite.cs
- UidManager.cs
- HtmlTextArea.cs
- OdbcInfoMessageEvent.cs
- SaveFileDialog.cs
- PathGeometry.cs
- ConversionHelper.cs
- Attributes.cs
- SegmentInfo.cs
- RenamedEventArgs.cs
- SqlCacheDependencyDatabase.cs
- AnnotationService.cs
- RegisteredArrayDeclaration.cs
- Emitter.cs
- XPathNodeList.cs
- diagnosticsswitches.cs
- MachineSettingsSection.cs
- COM2PictureConverter.cs
- PenLineJoinValidation.cs
- Console.cs
- DesignerForm.cs
- ConstraintEnumerator.cs
- VariableDesigner.xaml.cs
- ColumnCollection.cs
- InlineCollection.cs
- MediaEntryAttribute.cs
- RegisteredArrayDeclaration.cs
- BindingContext.cs
- ListMarkerLine.cs
- DataSvcMapFile.cs
- DbgUtil.cs
- HyperLink.cs
- EventArgs.cs
- GcSettings.cs
- IBuiltInEvidence.cs
- PersonalizationProviderHelper.cs
- AssemblyCacheEntry.cs
- DesignerOptionService.cs
- ValidationSummary.cs
- ListViewTableRow.cs
- ComboBoxRenderer.cs
- Event.cs
- RectKeyFrameCollection.cs
- CodeTypeDeclarationCollection.cs
- SmiEventSink_DeferedProcessing.cs
- UrlPath.cs
- XmlConvert.cs
- StorageMappingItemCollection.cs
- DataGridViewRowConverter.cs
- Overlapped.cs
- DataGridViewBand.cs
- VoiceChangeEventArgs.cs
- SoapFormatter.cs
- LongMinMaxAggregationOperator.cs
- RawStylusInputCustomData.cs
- AttributeUsageAttribute.cs
- SearchForVirtualItemEventArgs.cs
- XpsDocumentEvent.cs
- DataException.cs
- DataControlCommands.cs
- MasterPage.cs
- SqlTriggerAttribute.cs
- FullTrustAssembly.cs
- StyleCollection.cs
- FunctionImportMapping.cs
- PropertyEntry.cs
- ContentType.cs
- XmlFormatReaderGenerator.cs
- UInt32Storage.cs