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
- BitVec.cs
- PingOptions.cs
- ThreadAbortException.cs
- PriorityBindingExpression.cs
- ToolStripRenderEventArgs.cs
- DependencyPropertyConverter.cs
- TextParentUndoUnit.cs
- ConfigurationLocation.cs
- EntityViewGenerationConstants.cs
- RegexCode.cs
- LinkArea.cs
- XhtmlBasicTextBoxAdapter.cs
- SqlExpander.cs
- TypeConverterHelper.cs
- LinkedResource.cs
- InputScopeNameConverter.cs
- TreeNodeClickEventArgs.cs
- ObjectTokenCategory.cs
- XmlLoader.cs
- ObjectListFieldsPage.cs
- XmlHelper.cs
- EdmFunction.cs
- RequestNavigateEventArgs.cs
- ModelItemExtensions.cs
- precedingsibling.cs
- TextFormattingConverter.cs
- RealizationContext.cs
- ProcessHost.cs
- WebPartDisplayModeCancelEventArgs.cs
- TransformValueSerializer.cs
- FlowPosition.cs
- ConfigurationValidatorBase.cs
- GZipObjectSerializer.cs
- sitestring.cs
- Int32AnimationUsingKeyFrames.cs
- SelectorAutomationPeer.cs
- DragEventArgs.cs
- DSASignatureFormatter.cs
- ListItemDetailViewAttribute.cs
- FileEnumerator.cs
- ClientRolePrincipal.cs
- ProtocolViolationException.cs
- PropertyManager.cs
- GroupItemAutomationPeer.cs
- ApplicationFileParser.cs
- SamlAuthenticationClaimResource.cs
- SqlXmlStorage.cs
- XNodeValidator.cs
- ExtensionDataObject.cs
- InvalidCommandTreeException.cs
- PropertyValueUIItem.cs
- QilXmlReader.cs
- CreateUserErrorEventArgs.cs
- WebContentFormatHelper.cs
- PasswordPropertyTextAttribute.cs
- ConcurrentDictionary.cs
- MulticastDelegate.cs
- RedirectionProxy.cs
- EntityDataSourceMemberPath.cs
- CqlGenerator.cs
- TransmissionStrategy.cs
- XPathSingletonIterator.cs
- WCFBuildProvider.cs
- KeyGestureConverter.cs
- FilterElement.cs
- URLAttribute.cs
- ConditionalExpression.cs
- PropertyItemInternal.cs
- WebServiceClientProxyGenerator.cs
- MethodBody.cs
- SqlConnectionManager.cs
- QualificationDataItem.cs
- _ShellExpression.cs
- SchemaCollectionPreprocessor.cs
- CodeConditionStatement.cs
- InfiniteIntConverter.cs
- UrlPath.cs
- DataMember.cs
- ToolStripGripRenderEventArgs.cs
- TypeInfo.cs
- DoubleMinMaxAggregationOperator.cs
- WindowsGraphicsCacheManager.cs
- XLinq.cs
- DataGridRowAutomationPeer.cs
- _SingleItemRequestCache.cs
- IFormattable.cs
- DesignTimeParseData.cs
- X509ImageLogo.cs
- PrimitiveXmlSerializers.cs
- Opcode.cs
- SignerInfo.cs
- WinFormsSecurity.cs
- MultiSelector.cs
- SevenBitStream.cs
- CopyCodeAction.cs
- StackSpiller.Generated.cs
- SamlSubjectStatement.cs
- DropShadowBitmapEffect.cs
- TypeConverterAttribute.cs
- LogRestartAreaEnumerator.cs