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
- _NativeSSPI.cs
- CharacterShapingProperties.cs
- ResXResourceReader.cs
- DataGridViewCellStateChangedEventArgs.cs
- EntityDataSourceReferenceGroup.cs
- Rect.cs
- GroupBox.cs
- SerializationObjectManager.cs
- RepeaterDesigner.cs
- XmlSchemaComplexContentRestriction.cs
- XmlAttributeCollection.cs
- MasterPage.cs
- StatusBar.cs
- CodeSnippetCompileUnit.cs
- FontCacheUtil.cs
- SqlAliaser.cs
- List.cs
- DataBoundControlHelper.cs
- xmlsaver.cs
- OleDbError.cs
- AnimationClockResource.cs
- ResourcePart.cs
- ColorTransform.cs
- AuthenticationModuleElementCollection.cs
- HyperLinkColumn.cs
- SelectionRangeConverter.cs
- webeventbuffer.cs
- ProgressPage.cs
- ApplicationSettingsBase.cs
- AssociationEndMember.cs
- QilFunction.cs
- TextTreeInsertElementUndoUnit.cs
- TabControlAutomationPeer.cs
- BinaryNegotiation.cs
- HideDisabledControlAdapter.cs
- StyleXamlTreeBuilder.cs
- TextAction.cs
- SqlDependencyUtils.cs
- NetworkInformationPermission.cs
- XmlDeclaration.cs
- Parser.cs
- COAUTHINFO.cs
- SqlProviderManifest.cs
- InvalidCommandTreeException.cs
- VerificationAttribute.cs
- SubclassTypeValidator.cs
- FontFaceLayoutInfo.cs
- XmlMapping.cs
- ServerProtocol.cs
- AttachmentService.cs
- Font.cs
- X509SecurityTokenProvider.cs
- ServiceOperationWrapper.cs
- CommandManager.cs
- LayoutUtils.cs
- input.cs
- LineBreakRecord.cs
- AttributeCollection.cs
- IPipelineRuntime.cs
- UICuesEvent.cs
- FormattedTextSymbols.cs
- CreateDataSourceDialog.cs
- CollectionDataContract.cs
- ClientProxyGenerator.cs
- Control.cs
- ClientTargetCollection.cs
- XmlChildNodes.cs
- ZipIOLocalFileHeader.cs
- ShaderEffect.cs
- HelpProvider.cs
- LoginStatusDesigner.cs
- WebPartsSection.cs
- ObjectToIdCache.cs
- Padding.cs
- SqlUnionizer.cs
- Literal.cs
- MetadataArtifactLoaderFile.cs
- IndexedWhereQueryOperator.cs
- RtType.cs
- IDReferencePropertyAttribute.cs
- SymLanguageType.cs
- RotationValidation.cs
- PhysicalOps.cs
- DataObjectAttribute.cs
- ReleaseInstanceMode.cs
- StrongNameMembershipCondition.cs
- ReferentialConstraintRoleElement.cs
- TreeIterators.cs
- SettingsPropertyIsReadOnlyException.cs
- GridViewAutomationPeer.cs
- TextPattern.cs
- TcpServerChannel.cs
- ObjectManager.cs
- BatchParser.cs
- GroupPartitionExpr.cs
- LineServicesRun.cs
- TempFiles.cs
- Thickness.cs
- COM2Properties.cs
- RunWorkerCompletedEventArgs.cs