Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / SimpleBitVector32.cs / 1 / SimpleBitVector32.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { 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 Data { get { return data; } #if UNUSED_CODE set { data = value; } #endif } internal bool this[int bit] { get { return (data & bit) == bit; } set { int _data = data; if(value) { data = _data | bit; } else { data = _data & ~bit; } } } #if UNUSED_CODE internal void Set(int bit) { data |= bit; } internal void Clear(int bit) { data &= ~bit; } 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; } #endif } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Configuration { 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 Data { get { return data; } #if UNUSED_CODE set { data = value; } #endif } internal bool this[int bit] { get { return (data & bit) == bit; } set { int _data = data; if(value) { data = _data | bit; } else { data = _data & ~bit; } } } #if UNUSED_CODE internal void Set(int bit) { data |= bit; } internal void Clear(int bit) { data &= ~bit; } 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; } #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
- StorageBasedPackageProperties.cs
- CombinedTcpChannel.cs
- ModelPropertyCollectionImpl.cs
- DataGridViewTopRowAccessibleObject.cs
- ScriptingAuthenticationServiceSection.cs
- OutOfMemoryException.cs
- IncrementalCompileAnalyzer.cs
- ObjectConverter.cs
- EntityRecordInfo.cs
- safex509handles.cs
- RtfToXamlReader.cs
- SdlChannelSink.cs
- XmlStringTable.cs
- SafeLibraryHandle.cs
- Vector3DAnimationBase.cs
- BindingCompleteEventArgs.cs
- ObjectDataSourceEventArgs.cs
- ConfigurationManagerInternalFactory.cs
- CompilationRelaxations.cs
- CompiledRegexRunner.cs
- FromRequest.cs
- DrawingContext.cs
- ExclusiveTcpListener.cs
- TimelineClockCollection.cs
- ProtocolsConfigurationHandler.cs
- ColorKeyFrameCollection.cs
- CollectionEditorDialog.cs
- Logging.cs
- ContainerParagraph.cs
- XmlUTF8TextWriter.cs
- IItemProperties.cs
- GPPOINTF.cs
- ZipFileInfoCollection.cs
- HandledMouseEvent.cs
- SourceCollection.cs
- XmlExtensionFunction.cs
- ToolStripItemCollection.cs
- InputElement.cs
- EventDescriptorCollection.cs
- FixedStringLookup.cs
- SqlFactory.cs
- LayoutManager.cs
- CodeTypeReferenceCollection.cs
- XmlLinkedNode.cs
- ClusterRegistryConfigurationProvider.cs
- SqlAggregateChecker.cs
- UrlParameterReader.cs
- FilteredAttributeCollection.cs
- BmpBitmapDecoder.cs
- Win32Native.cs
- WindowHideOrCloseTracker.cs
- SynchronizationFilter.cs
- ServiceElement.cs
- SafePipeHandle.cs
- PackWebRequestFactory.cs
- SecurityCriticalDataForSet.cs
- AssemblyFilter.cs
- DataConnectionHelper.cs
- HTMLTagNameToTypeMapper.cs
- DataGridTextBoxColumn.cs
- ObjectReaderCompiler.cs
- StaticResourceExtension.cs
- ServerValidateEventArgs.cs
- UnsafeNativeMethods.cs
- CodeDesigner.cs
- XmlSchemaImport.cs
- XslUrlEditor.cs
- ArgumentDesigner.xaml.cs
- SmtpLoginAuthenticationModule.cs
- ImportCatalogPart.cs
- UIElementParaClient.cs
- SuppressMergeCheckAttribute.cs
- HandoffBehavior.cs
- ScaleTransform3D.cs
- ResumeStoryboard.cs
- TileModeValidation.cs
- XmlElement.cs
- Item.cs
- dataSvcMapFileLoader.cs
- ViewLoader.cs
- TrackPointCollection.cs
- SHA256Cng.cs
- MonthCalendar.cs
- XmlCDATASection.cs
- NumericExpr.cs
- HeaderPanel.cs
- BamlLocalizationDictionary.cs
- ClickablePoint.cs
- Vector3DAnimationUsingKeyFrames.cs
- ThrowHelper.cs
- QilSortKey.cs
- AllMembershipCondition.cs
- CheckBox.cs
- SqlServer2KCompatibilityAnnotation.cs
- SEHException.cs
- XmlSchemaSimpleContentRestriction.cs
- HtmlInputCheckBox.cs
- Converter.cs
- Operators.cs
- DateTime.cs