Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- TextBoxBase.cs
- NameValuePair.cs
- WebConfigurationHostFileChange.cs
- AuthenticateEventArgs.cs
- StackSpiller.Temps.cs
- HttpRequestTraceRecord.cs
- ThreadExceptionEvent.cs
- ExpressionParser.cs
- InfoCardTraceRecord.cs
- CharacterHit.cs
- ProtectedConfigurationSection.cs
- tibetanshape.cs
- LinqDataSourceUpdateEventArgs.cs
- MethodBuilder.cs
- QilGeneratorEnv.cs
- MetadataUtil.cs
- JsonServiceDocumentSerializer.cs
- RSAOAEPKeyExchangeFormatter.cs
- HtmlGenericControl.cs
- SizeChangedEventArgs.cs
- EdmRelationshipRoleAttribute.cs
- FixUpCollection.cs
- FixUp.cs
- DesignerProperties.cs
- DocComment.cs
- ParameterSubsegment.cs
- DataGridViewColumnConverter.cs
- CompiledIdentityConstraint.cs
- SqlXml.cs
- HttpRuntimeSection.cs
- DocumentsTrace.cs
- UndirectedGraph.cs
- WeakHashtable.cs
- EntityDataSourceWrapperCollection.cs
- EventSchemaTraceListener.cs
- Partitioner.cs
- ListItem.cs
- DatePickerAutomationPeer.cs
- httpstaticobjectscollection.cs
- EntitySqlQueryState.cs
- ClrProviderManifest.cs
- ConstrainedDataObject.cs
- StackSpiller.Bindings.cs
- EntityViewContainer.cs
- ObjectFullSpanRewriter.cs
- ComplexLine.cs
- CloseSequenceResponse.cs
- _LoggingObject.cs
- LowerCaseStringConverter.cs
- BufferBuilder.cs
- MulticastNotSupportedException.cs
- ColorContextHelper.cs
- ObjectDataSourceSelectingEventArgs.cs
- MyContact.cs
- Metadata.cs
- LoginUtil.cs
- ToolStripContainer.cs
- GZipDecoder.cs
- HtmlTableRowCollection.cs
- UriSectionData.cs
- StandardOleMarshalObject.cs
- ObjectConverter.cs
- Site.cs
- Rfc2898DeriveBytes.cs
- ImageButton.cs
- BackgroundWorker.cs
- GridViewHeaderRowPresenter.cs
- TreeNodeStyle.cs
- MessageAction.cs
- DbDataSourceEnumerator.cs
- basevalidator.cs
- SubpageParaClient.cs
- GrammarBuilderDictation.cs
- PeerCollaboration.cs
- Native.cs
- SafeSecurityHelper.cs
- ElementMarkupObject.cs
- ItemAutomationPeer.cs
- DbInsertCommandTree.cs
- PeerCollaborationPermission.cs
- XslVisitor.cs
- EncryptRequest.cs
- Permission.cs
- FormatControl.cs
- CodeCommentStatement.cs
- OneToOneMappingSerializer.cs
- PolyQuadraticBezierSegment.cs
- ModelItemCollectionImpl.cs
- IdleTimeoutMonitor.cs
- sqlstateclientmanager.cs
- ToolboxItem.cs
- CheckedListBox.cs
- SrgsToken.cs
- ConfigurationElementCollection.cs
- DictionaryBase.cs
- RSAPKCS1SignatureFormatter.cs
- IDReferencePropertyAttribute.cs
- HtmlAnchor.cs
- MappingModelBuildProvider.cs
- ContextBase.cs