Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / SimpleBitVector32.cs / 1 / SimpleBitVector32.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration {
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 Data {
get { return data; }
#if UNUSED_CODE
set { data = value; }
#endif
}
internal bool this[int bit] {
get {
return (data & bit) == bit;
}
set {
int _data = data;
if(value) {
data = _data | bit;
}
else {
data = _data & ~bit;
}
}
}
#if UNUSED_CODE
internal void Set(int bit) {
data |= bit;
}
internal void Clear(int bit) {
data &= ~bit;
}
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;
}
#endif
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration {
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 Data {
get { return data; }
#if UNUSED_CODE
set { data = value; }
#endif
}
internal bool this[int bit] {
get {
return (data & bit) == bit;
}
set {
int _data = data;
if(value) {
data = _data | bit;
}
else {
data = _data & ~bit;
}
}
}
#if UNUSED_CODE
internal void Set(int bit) {
data |= bit;
}
internal void Clear(int bit) {
data &= ~bit;
}
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;
}
#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
- DataGridViewCell.cs
- InvalidCommandTreeException.cs
- ConstraintConverter.cs
- ComplexPropertyEntry.cs
- ClientRuntime.cs
- ToolboxComponentsCreatingEventArgs.cs
- streamingZipPartStream.cs
- DesignBindingConverter.cs
- EnumMemberAttribute.cs
- XmlSchemaSimpleContentExtension.cs
- PackagingUtilities.cs
- PenThreadWorker.cs
- ItemType.cs
- StringHandle.cs
- RangeValidator.cs
- NonPrimarySelectionGlyph.cs
- ClientUtils.cs
- _LoggingObject.cs
- TextSelectionProcessor.cs
- FormatterServices.cs
- Vector3DCollection.cs
- TransformProviderWrapper.cs
- IndexOutOfRangeException.cs
- Normalization.cs
- TypeGeneratedEventArgs.cs
- EntityType.cs
- WSSecureConversationFeb2005.cs
- DataTableClearEvent.cs
- MsmqActivation.cs
- XmlIlTypeHelper.cs
- Parameter.cs
- LinkArea.cs
- DbSource.cs
- X509ChainElement.cs
- PathSegment.cs
- Transform3D.cs
- BinaryMessageFormatter.cs
- EdmProperty.cs
- SpellerInterop.cs
- _FtpControlStream.cs
- HttpHeaderCollection.cs
- XamlParser.cs
- Merger.cs
- FixedLineResult.cs
- ConfigurationManagerInternalFactory.cs
- Grid.cs
- JoinQueryOperator.cs
- SqlProfileProvider.cs
- RepeaterItem.cs
- EncoderExceptionFallback.cs
- OutputScope.cs
- ZoomPercentageConverter.cs
- SchemaElementLookUpTable.cs
- Constant.cs
- Menu.cs
- TimeIntervalCollection.cs
- Tokenizer.cs
- ScriptResourceAttribute.cs
- ExpressionBuilder.cs
- FloatUtil.cs
- DataGridrowEditEndingEventArgs.cs
- ApplicationException.cs
- DuplicateWaitObjectException.cs
- CollectionsUtil.cs
- EntityDataSourceWrapper.cs
- LoginCancelEventArgs.cs
- NumberFormatInfo.cs
- DataGridPagerStyle.cs
- CompiledXpathExpr.cs
- ConstraintCollection.cs
- EncodingTable.cs
- ConstraintEnumerator.cs
- _SpnDictionary.cs
- WsdlInspector.cs
- PolicyException.cs
- LateBoundBitmapDecoder.cs
- DbModificationClause.cs
- BindableTemplateBuilder.cs
- MarkupObject.cs
- RegexInterpreter.cs
- PeerChannelListener.cs
- Privilege.cs
- PrimitiveXmlSerializers.cs
- GeneralTransform3D.cs
- TreeNodeBindingCollection.cs
- GrammarBuilderDictation.cs
- NumericUpDown.cs
- Int32.cs
- KeysConverter.cs
- TreeNodeConverter.cs
- DataGridTextBoxColumn.cs
- HybridObjectCache.cs
- TextureBrush.cs
- ListControl.cs
- BinaryKeyIdentifierClause.cs
- NativeObjectSecurity.cs
- TableProviderWrapper.cs
- ListItemCollection.cs
- BasicCommandTreeVisitor.cs
- TypeInfo.cs