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
- SingleAnimationUsingKeyFrames.cs
- Selector.cs
- StateManagedCollection.cs
- CopyCodeAction.cs
- DataGridTablesFactory.cs
- SecurityPermission.cs
- PropertyChangeTracker.cs
- PrintDialogDesigner.cs
- ConfigurationSettings.cs
- XmlSerializerVersionAttribute.cs
- XmlSerializerObjectSerializer.cs
- LineBreakRecord.cs
- TemplateInstanceAttribute.cs
- SoapReflectionImporter.cs
- RubberbandSelector.cs
- GB18030Encoding.cs
- SurrogateDataContract.cs
- StylusButtonEventArgs.cs
- CodeBlockBuilder.cs
- ExtendedProperty.cs
- ProtocolState.cs
- WebResponse.cs
- UnicastIPAddressInformationCollection.cs
- LogEntrySerialization.cs
- ThrowHelper.cs
- ImageConverter.cs
- GenericNameHandler.cs
- WindowsAuthenticationModule.cs
- GroupBoxAutomationPeer.cs
- SchemaTableOptionalColumn.cs
- ConnectionOrientedTransportChannelListener.cs
- ScrollViewer.cs
- DataGridLinkButton.cs
- HealthMonitoringSection.cs
- PlaceHolder.cs
- SafeViewOfFileHandle.cs
- GridPatternIdentifiers.cs
- CellQuery.cs
- ChannelCacheDefaults.cs
- MasterPageParser.cs
- CompilerGlobalScopeAttribute.cs
- BasePattern.cs
- ISAPIWorkerRequest.cs
- DocumentPageViewAutomationPeer.cs
- ProtectedConfigurationSection.cs
- panel.cs
- HijriCalendar.cs
- TextTreeObjectNode.cs
- SeekStoryboard.cs
- RSACryptoServiceProvider.cs
- CodeDirectiveCollection.cs
- UpdatePanelTriggerCollection.cs
- StylusEditingBehavior.cs
- LinqDataSourceValidationException.cs
- ServicePerformanceCounters.cs
- CaseInsensitiveHashCodeProvider.cs
- OdbcParameterCollection.cs
- Help.cs
- CalendarTable.cs
- ThreadAbortException.cs
- GridViewPageEventArgs.cs
- ProtocolsConfiguration.cs
- RMEnrollmentPage3.cs
- TemplateBuilder.cs
- ResXDataNode.cs
- DownloadProgressEventArgs.cs
- ProfileWorkflowElement.cs
- DefaultBindingPropertyAttribute.cs
- DataSourceHelper.cs
- ApplicationFileParser.cs
- BinaryCommonClasses.cs
- ServiceNameElement.cs
- EventProviderWriter.cs
- DrawingAttributesDefaultValueFactory.cs
- SafeNativeMethods.cs
- latinshape.cs
- XsdCachingReader.cs
- DataGridViewCellConverter.cs
- OdbcErrorCollection.cs
- MenuCommand.cs
- SafeHandles.cs
- ChooseAction.cs
- SqlEnums.cs
- JsonClassDataContract.cs
- BooleanSwitch.cs
- MenuItemBindingCollection.cs
- Size.cs
- StructuralObject.cs
- ServicePoint.cs
- CodeParameterDeclarationExpressionCollection.cs
- XmlCharCheckingReader.cs
- BitmapEffectGroup.cs
- TextEffect.cs
- DownloadProgressEventArgs.cs
- TextCollapsingProperties.cs
- OutputCacheSection.cs
- StorageAssociationTypeMapping.cs
- XmlBinaryWriterSession.cs
- BinaryCommonClasses.cs
- DataGridViewComboBoxCell.cs