Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- SpecularMaterial.cs
- CssClassPropertyAttribute.cs
- LineBreakRecord.cs
- SourceInterpreter.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- QilPatternVisitor.cs
- HexParser.cs
- ColumnHeaderCollectionEditor.cs
- TokenCreationParameter.cs
- MetafileHeaderWmf.cs
- TextEncodedRawTextWriter.cs
- ControlPersister.cs
- DotExpr.cs
- WindowsFormsSectionHandler.cs
- AuthenticationModeHelper.cs
- WebSysDisplayNameAttribute.cs
- ControlPropertyNameConverter.cs
- HttpListenerException.cs
- QuaternionRotation3D.cs
- httpstaticobjectscollection.cs
- XmlEncodedRawTextWriter.cs
- ReturnEventArgs.cs
- RoleGroupCollection.cs
- QueryOutputWriter.cs
- _AutoWebProxyScriptHelper.cs
- WindowsFormsSectionHandler.cs
- Selector.cs
- Viewport3DAutomationPeer.cs
- DrawingCollection.cs
- KeyProperty.cs
- DataTableMapping.cs
- EndpointDiscoveryMetadata.cs
- HttpHandlerActionCollection.cs
- CdpEqualityComparer.cs
- BaseConfigurationRecord.cs
- StylusDevice.cs
- ThreadPool.cs
- ContentAlignmentEditor.cs
- CorrelationManager.cs
- RegexCapture.cs
- AlgoModule.cs
- CommonDialog.cs
- EventWaitHandle.cs
- XhtmlBasicValidatorAdapter.cs
- ThemeConfigurationDialog.cs
- SignerInfo.cs
- WebPartMinimizeVerb.cs
- Interlocked.cs
- SystemIPAddressInformation.cs
- CalendarDesigner.cs
- TextDecorationCollectionConverter.cs
- OLEDB_Enum.cs
- AllowedAudienceUriElement.cs
- SelectionEditingBehavior.cs
- FixedSOMImage.cs
- BuildManagerHost.cs
- CommandManager.cs
- DesignColumn.cs
- ExclusiveHandle.cs
- EncryptedData.cs
- propertyentry.cs
- ColumnTypeConverter.cs
- EdmItemError.cs
- FloaterBaseParaClient.cs
- GridView.cs
- EntityStoreSchemaGenerator.cs
- OleDbPropertySetGuid.cs
- DrawListViewColumnHeaderEventArgs.cs
- _emptywebproxy.cs
- PasswordTextContainer.cs
- SoapFault.cs
- ToolStripAdornerWindowService.cs
- SvcMapFileLoader.cs
- Image.cs
- CounterSampleCalculator.cs
- Utility.cs
- FrameworkContentElement.cs
- LineGeometry.cs
- DocumentPage.cs
- WebBrowserBase.cs
- MenuBase.cs
- DateTimeValueSerializer.cs
- ComponentEvent.cs
- RtfControls.cs
- _TimerThread.cs
- VectorAnimation.cs
- XamlFigureLengthSerializer.cs
- AspNetSynchronizationContext.cs
- FieldNameLookup.cs
- SettingsPropertyValueCollection.cs
- UnsafePeerToPeerMethods.cs
- WebConvert.cs
- VisualBasicValue.cs
- TypeSemantics.cs
- VoiceChangeEventArgs.cs
- TextTreeInsertUndoUnit.cs
- DescendentsWalker.cs
- NegotiationTokenAuthenticatorStateCache.cs
- InputLanguageCollection.cs
- SchemaEntity.cs