Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Configuration / System / Configuration / SimpleBitVector32.cs / 1305376 / 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
- HWStack.cs
- AuthenticationService.cs
- SemaphoreSlim.cs
- MD5HashHelper.cs
- FilterException.cs
- CounterSample.cs
- XmlSecureResolver.cs
- RotateTransform3D.cs
- JapaneseCalendar.cs
- FontEmbeddingManager.cs
- MULTI_QI.cs
- DBAsyncResult.cs
- CapacityStreamGeometryContext.cs
- ActivityMarkupSerializer.cs
- RotateTransform.cs
- SettingsPropertyValue.cs
- RecordManager.cs
- WindowInteractionStateTracker.cs
- XmlResolver.cs
- DecoratedNameAttribute.cs
- Animatable.cs
- ControlBindingsCollection.cs
- ChangeTracker.cs
- EntityContainerEntitySet.cs
- Thread.cs
- TypeDependencyAttribute.cs
- OrderedDictionaryStateHelper.cs
- GeneralTransform3DTo2DTo3D.cs
- ControlAdapter.cs
- NameValueConfigurationElement.cs
- dbdatarecord.cs
- WebPartConnectionsConnectVerb.cs
- JsonDataContract.cs
- OptimizedTemplateContentHelper.cs
- OracleParameter.cs
- Number.cs
- DynamicValidatorEventArgs.cs
- ToolStripGripRenderEventArgs.cs
- TraceContextRecord.cs
- DataSourceXmlTextReader.cs
- ScaleTransform3D.cs
- RelationshipType.cs
- Internal.cs
- TraceHwndHost.cs
- ExtensionsSection.cs
- BlurEffect.cs
- XmlIgnoreAttribute.cs
- InputQueueChannel.cs
- WebPartTracker.cs
- FixedSOMContainer.cs
- WindowsScroll.cs
- UnhandledExceptionEventArgs.cs
- BatchStream.cs
- InProcStateClientManager.cs
- WS2007HttpBinding.cs
- SizeChangedInfo.cs
- StandardTransformFactory.cs
- ScrollBarRenderer.cs
- OutputCacheSection.cs
- SimpleTextLine.cs
- RowUpdatingEventArgs.cs
- StreamUpdate.cs
- ProcessHost.cs
- NamespaceDecl.cs
- ListBindableAttribute.cs
- LicenseManager.cs
- MaterialCollection.cs
- XmlMapping.cs
- DataPagerField.cs
- ToolStripOverflow.cs
- BinHexDecoder.cs
- SchemaConstraints.cs
- DocumentPageView.cs
- SequentialOutput.cs
- DecimalConstantAttribute.cs
- SqlTriggerAttribute.cs
- BorderGapMaskConverter.cs
- TraceHandlerErrorFormatter.cs
- ServiceObjectContainer.cs
- ByteConverter.cs
- DeploymentSection.cs
- SecureStringHasher.cs
- SaveRecipientRequest.cs
- _SslState.cs
- DbParameterCollection.cs
- JsonWriter.cs
- CuspData.cs
- TextEndOfParagraph.cs
- DependencyObjectType.cs
- QueueSurrogate.cs
- ApplicationActivator.cs
- RowVisual.cs
- HtmlFormWrapper.cs
- ScrollViewerAutomationPeer.cs
- OperationResponse.cs
- SecurityKeyIdentifier.cs
- DesignerCategoryAttribute.cs
- ResXResourceWriter.cs
- PanelDesigner.cs
- AbsoluteQuery.cs