Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InstanceData.cs
- CustomExpression.cs
- SafeProcessHandle.cs
- Image.cs
- ColorAnimationBase.cs
- Effect.cs
- NumberFormatInfo.cs
- Emitter.cs
- NumberFormatInfo.cs
- SortedSet.cs
- DbProviderFactories.cs
- Processor.cs
- SeekableMessageNavigator.cs
- ListSortDescription.cs
- DataGridViewCellStyleChangedEventArgs.cs
- EventSinkActivity.cs
- Sequence.cs
- ValidatingCollection.cs
- BasicExpandProvider.cs
- CompilationUtil.cs
- AutoCompleteStringCollection.cs
- ControlHelper.cs
- WebPartsSection.cs
- ControlIdConverter.cs
- Collection.cs
- TdsParserSessionPool.cs
- Environment.cs
- PropertyManager.cs
- XPathException.cs
- User.cs
- NullableBoolConverter.cs
- IPipelineRuntime.cs
- ObjectIDGenerator.cs
- ToolConsole.cs
- SystemIPInterfaceStatistics.cs
- CompositeScriptReference.cs
- Pointer.cs
- XsltContext.cs
- FilteredReadOnlyMetadataCollection.cs
- GeneralTransformCollection.cs
- WebPartConnectionsConnectVerb.cs
- DataGrid.cs
- SoundPlayer.cs
- PolyLineSegment.cs
- InternalBufferOverflowException.cs
- ScriptResourceInfo.cs
- FormViewDeleteEventArgs.cs
- InputMethodStateTypeInfo.cs
- SizeAnimationUsingKeyFrames.cs
- MasterPageParser.cs
- Hash.cs
- CreationContext.cs
- ToolStripRenderEventArgs.cs
- Operators.cs
- XmlToDatasetMap.cs
- QueryConverter.cs
- UnauthorizedAccessException.cs
- TransformerInfo.cs
- PixelFormats.cs
- SlotInfo.cs
- ConfigurationException.cs
- XmlKeywords.cs
- QuaternionAnimation.cs
- VersionedStreamOwner.cs
- ExpressionDumper.cs
- BaseComponentEditor.cs
- HostingEnvironmentException.cs
- PropertyMapper.cs
- Model3DGroup.cs
- QilSortKey.cs
- HttpCacheParams.cs
- TextParagraphView.cs
- EditorPartChrome.cs
- HostedHttpTransportManager.cs
- PageParserFilter.cs
- InternalResources.cs
- MediaPlayerState.cs
- TimeoutTimer.cs
- ConstructorBuilder.cs
- TaiwanCalendar.cs
- DeclarativeCatalogPart.cs
- Substitution.cs
- HTTPNotFoundHandler.cs
- GeneralTransform3DTo2D.cs
- PaperSource.cs
- BuildProviderCollection.cs
- RuleAttributes.cs
- XPathAxisIterator.cs
- HyperLinkColumn.cs
- AutomationFocusChangedEventArgs.cs
- ProfilePropertyNameValidator.cs
- GrammarBuilderBase.cs
- SqlUserDefinedAggregateAttribute.cs
- UriTemplateTable.cs
- CharacterBufferReference.cs
- MulticastDelegate.cs
- HttpWriter.cs
- BasePropertyDescriptor.cs
- RadioButtonBaseAdapter.cs
- PolicyLevel.cs