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
- EndpointInfo.cs
- EntityDescriptor.cs
- ReflectionPermission.cs
- InstanceKeyCollisionException.cs
- ADMembershipProvider.cs
- DataSourceControlBuilder.cs
- LoopExpression.cs
- CommonXSendMessage.cs
- JsonGlobals.cs
- DesignerVerbCollection.cs
- MatrixCamera.cs
- SqlConnectionFactory.cs
- Int64AnimationUsingKeyFrames.cs
- ButtonRenderer.cs
- Activator.cs
- ComponentDispatcher.cs
- TextChangedEventArgs.cs
- MessageBuilder.cs
- Imaging.cs
- CaseInsensitiveHashCodeProvider.cs
- sqlpipe.cs
- LastQueryOperator.cs
- DataContractSerializerElement.cs
- HtmlTextViewAdapter.cs
- XmlDictionaryWriter.cs
- GradientBrush.cs
- CaseInsensitiveComparer.cs
- ActivityValidator.cs
- DataGridViewHitTestInfo.cs
- DecimalConstantAttribute.cs
- DesignerActionGlyph.cs
- TableLayoutPanel.cs
- PipeConnection.cs
- MembershipUser.cs
- PlainXmlDeserializer.cs
- linebase.cs
- CompositeDuplexElement.cs
- Condition.cs
- Line.cs
- StringInfo.cs
- PropertyEntry.cs
- PasswordTextContainer.cs
- ScaleTransform.cs
- PropertyIDSet.cs
- ColorDialog.cs
- RayHitTestParameters.cs
- NotCondition.cs
- VisualTreeHelper.cs
- DataGridViewComboBoxColumnDesigner.cs
- StreamingContext.cs
- IndexExpression.cs
- Shape.cs
- XmlSchemaSubstitutionGroup.cs
- DataGridViewComponentPropertyGridSite.cs
- TabItem.cs
- PasswordRecovery.cs
- MD5Cng.cs
- OutOfMemoryException.cs
- HttpConfigurationContext.cs
- BitmapSizeOptions.cs
- ExtensionQuery.cs
- WSSecureConversationDec2005.cs
- ConstraintStruct.cs
- MobileErrorInfo.cs
- LinearKeyFrames.cs
- DynamicScriptObject.cs
- FileDialogPermission.cs
- XDeferredAxisSource.cs
- HandlerBase.cs
- Guid.cs
- FormsAuthenticationCredentials.cs
- AffineTransform3D.cs
- SyndicationSerializer.cs
- RadioButtonFlatAdapter.cs
- IProducerConsumerCollection.cs
- StateMachine.cs
- BitmapEffect.cs
- BinaryMethodMessage.cs
- NamedElement.cs
- List.cs
- StrokeNodeOperations2.cs
- PropertyPathWorker.cs
- IResourceProvider.cs
- SR.cs
- LostFocusEventManager.cs
- PerfCounters.cs
- WebPartConnectionsConnectVerb.cs
- SafeIUnknown.cs
- ZoomPercentageConverter.cs
- LinqToSqlWrapper.cs
- RequestQueryParser.cs
- TreeNode.cs
- TextContainerChangedEventArgs.cs
- PeerTransportElement.cs
- DistinctQueryOperator.cs
- ToolStripItemDataObject.cs
- returneventsaver.cs
- DetailsViewUpdatedEventArgs.cs
- X500Name.cs
- ToolStripItemGlyph.cs