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
- DataPagerFieldCommandEventArgs.cs
- TimeSpanMinutesConverter.cs
- SamlAuthorizationDecisionClaimResource.cs
- AliasedSlot.cs
- NativeMethods.cs
- MarshalByValueComponent.cs
- UdpUtility.cs
- ReferenceSchema.cs
- GeometryCombineModeValidation.cs
- XmlCollation.cs
- AssemblyAttributesGoHere.cs
- ResXFileRef.cs
- NativeObjectSecurity.cs
- ClientRuntime.cs
- SoapAttributes.cs
- UnaryExpression.cs
- WindowsScrollBar.cs
- XmlSignificantWhitespace.cs
- XPathNavigatorKeyComparer.cs
- SchemaMerger.cs
- SafeNativeMethods.cs
- QilCloneVisitor.cs
- SmiTypedGetterSetter.cs
- ModelPropertyImpl.cs
- TriState.cs
- GifBitmapDecoder.cs
- metadatamappinghashervisitor.cs
- PartialArray.cs
- GetWinFXPath.cs
- WebPartHeaderCloseVerb.cs
- DesignerSerializationVisibilityAttribute.cs
- TextInfo.cs
- HttpCookie.cs
- PolicyDesigner.cs
- SchemaTypeEmitter.cs
- RadioButton.cs
- ControlPropertyNameConverter.cs
- DynamicMetaObject.cs
- RoutedEvent.cs
- CodeDomExtensionMethods.cs
- DataGridViewEditingControlShowingEventArgs.cs
- AuthenticationServiceManager.cs
- HttpAsyncResult.cs
- Gdiplus.cs
- MgmtConfigurationRecord.cs
- Property.cs
- PropertyGroupDescription.cs
- XmlReturnWriter.cs
- HttpListenerResponse.cs
- ImageBrush.cs
- WCFBuildProvider.cs
- EnumCodeDomSerializer.cs
- ManagementException.cs
- FaultReason.cs
- XmlJsonWriter.cs
- WindowsListView.cs
- ItemCollection.cs
- UserCancellationException.cs
- FaultFormatter.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- XmlNamespaceManager.cs
- Currency.cs
- WorkingDirectoryEditor.cs
- SafeNativeMethods.cs
- IRCollection.cs
- FindCriteriaCD1.cs
- TrustLevelCollection.cs
- ReliableSessionBindingElementImporter.cs
- AsmxEndpointPickerExtension.cs
- IndexedString.cs
- ExpressionBuilder.cs
- XPathNavigatorKeyComparer.cs
- ConfigXmlText.cs
- HMAC.cs
- TogglePattern.cs
- Delegate.cs
- FocusManager.cs
- Attributes.cs
- TimestampInformation.cs
- XmlSchemaAttribute.cs
- ControlBindingsConverter.cs
- PopOutPanel.cs
- TreeIterators.cs
- ToolStripContainer.cs
- TrackingWorkflowEventArgs.cs
- GeometryConverter.cs
- NetSectionGroup.cs
- SystemIPAddressInformation.cs
- NativeMethods.cs
- XmlCharCheckingWriter.cs
- DataGridItemEventArgs.cs
- EventMappingSettings.cs
- DBNull.cs
- MultiPartWriter.cs
- CustomAttributeBuilder.cs
- ImageClickEventArgs.cs
- ZoomingMessageFilter.cs
- Executor.cs
- StructuralObject.cs
- HandlerWithFactory.cs