Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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. //------------------------------------------------------------------------------ //// 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlXml.cs
- SourceItem.cs
- SiteMapDataSource.cs
- CustomSignedXml.cs
- DataGridViewEditingControlShowingEventArgs.cs
- WebPartDisplayMode.cs
- BooleanToVisibilityConverter.cs
- ColorConverter.cs
- DisplayMemberTemplateSelector.cs
- MethodToken.cs
- TreeNodeEventArgs.cs
- XmlSchemaAttribute.cs
- CLRBindingWorker.cs
- _NetRes.cs
- ManipulationPivot.cs
- MenuAdapter.cs
- ReadContentAsBinaryHelper.cs
- ItemDragEvent.cs
- AmbientProperties.cs
- OleDragDropHandler.cs
- OdbcInfoMessageEvent.cs
- MobileUserControlDesigner.cs
- LoadGrammarCompletedEventArgs.cs
- ApplicationSettingsBase.cs
- QilList.cs
- OracleConnection.cs
- ParenthesizePropertyNameAttribute.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- HwndSourceKeyboardInputSite.cs
- MemberExpressionHelper.cs
- WindowsEditBoxRange.cs
- StringFreezingAttribute.cs
- ImportCatalogPart.cs
- SafeSerializationManager.cs
- DiagnosticsElement.cs
- SqlCacheDependencyDatabaseCollection.cs
- PropertyDescriptorCollection.cs
- RevocationPoint.cs
- HttpCookie.cs
- CellLabel.cs
- GregorianCalendar.cs
- FreeFormDesigner.cs
- BindingUtils.cs
- ToolStripKeyboardHandlingService.cs
- InvalidOleVariantTypeException.cs
- TypeLibConverter.cs
- SystemIPInterfaceStatistics.cs
- QuaternionValueSerializer.cs
- SmtpFailedRecipientException.cs
- OptimizerPatterns.cs
- DbDeleteCommandTree.cs
- Configuration.cs
- basenumberconverter.cs
- ObjectDataSourceView.cs
- DiscreteKeyFrames.cs
- DescendantOverDescendantQuery.cs
- TracePayload.cs
- FileEnumerator.cs
- InstanceOwner.cs
- DateTimeFormatInfoScanner.cs
- externdll.cs
- DesignerTransaction.cs
- ConfigurationManagerHelper.cs
- DBCommand.cs
- ExcludePathInfo.cs
- SchemaAttDef.cs
- Function.cs
- CheckBoxPopupAdapter.cs
- CrossContextChannel.cs
- XmlHelper.cs
- FixedBufferAttribute.cs
- COM2PropertyDescriptor.cs
- XmlIterators.cs
- Constraint.cs
- ConsoleEntryPoint.cs
- NamespaceListProperty.cs
- PageRanges.cs
- EventRecordWrittenEventArgs.cs
- EntityClientCacheKey.cs
- ValidationRule.cs
- SmtpTransport.cs
- OciHandle.cs
- RequestSecurityTokenForGetBrowserToken.cs
- ParsedAttributeCollection.cs
- PropertyBuilder.cs
- EntityCollection.cs
- DataControlImageButton.cs
- GenericTextProperties.cs
- SByteStorage.cs
- QilLiteral.cs
- CodePrimitiveExpression.cs
- WSHttpBindingElement.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ReliableMessagingVersionConverter.cs
- OdbcStatementHandle.cs
- ConditionalAttribute.cs
- TypedTableBase.cs
- RedirectionProxy.cs
- ComponentManagerBroker.cs
- SecurityToken.cs