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
- BinaryConverter.cs
- GridViewCommandEventArgs.cs
- XamlStyleSerializer.cs
- UserControl.cs
- FunctionImportMapping.cs
- AutomationPatternInfo.cs
- RTTypeWrapper.cs
- SoapServerProtocol.cs
- HopperCache.cs
- ApplicationContext.cs
- DBCSCodePageEncoding.cs
- PropertyEmitter.cs
- Root.cs
- DoubleAnimationClockResource.cs
- ExtendedTransformFactory.cs
- ResourceLoader.cs
- PropVariant.cs
- PagesChangedEventArgs.cs
- RegisteredScript.cs
- AsyncParams.cs
- XPathDocumentNavigator.cs
- SafeArrayTypeMismatchException.cs
- ComAdminWrapper.cs
- DecimalConverter.cs
- Substitution.cs
- ColumnBinding.cs
- Utils.cs
- SuppressMessageAttribute.cs
- CompilerGeneratedAttribute.cs
- FileDialog_Vista_Interop.cs
- DocumentGrid.cs
- CodeDefaultValueExpression.cs
- DataGridViewDataErrorEventArgs.cs
- TemplatedWizardStep.cs
- SqlUtils.cs
- MachineSettingsSection.cs
- KernelTypeValidation.cs
- MasterPage.cs
- basenumberconverter.cs
- TcpPortSharing.cs
- DataPagerField.cs
- ButtonBaseAutomationPeer.cs
- SqlDataSourceFilteringEventArgs.cs
- SessionIDManager.cs
- GridViewActionList.cs
- SingleBodyParameterMessageFormatter.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- HtmlPanelAdapter.cs
- SkinBuilder.cs
- SqlMetaData.cs
- BamlMapTable.cs
- PenCursorManager.cs
- ProcessProtocolHandler.cs
- EventPropertyMap.cs
- SqlDataRecord.cs
- TextEditorLists.cs
- OdbcConnectionPoolProviderInfo.cs
- DataGridViewHeaderCell.cs
- ObjectDataSourceView.cs
- ByteAnimationBase.cs
- FixedStringLookup.cs
- GridViewRowPresenterBase.cs
- XsltLoader.cs
- XmlNullResolver.cs
- ChannelServices.cs
- BStrWrapper.cs
- KeyNotFoundException.cs
- HTMLTextWriter.cs
- InfoCardRSACryptoProvider.cs
- ObjectStateManagerMetadata.cs
- ContextStack.cs
- SubpageParaClient.cs
- ListViewTableRow.cs
- SmtpNetworkElement.cs
- FrameworkContentElementAutomationPeer.cs
- DESCryptoServiceProvider.cs
- ToolBar.cs
- RayMeshGeometry3DHitTestResult.cs
- CustomValidator.cs
- MetadataUtilsSmi.cs
- EntityDataSourceWrapperCollection.cs
- GeometryDrawing.cs
- ASCIIEncoding.cs
- ExtendedProtectionPolicy.cs
- SymDocumentType.cs
- LoginView.cs
- Wrapper.cs
- TextureBrush.cs
- ClientRoleProvider.cs
- Parameter.cs
- OracleLob.cs
- Table.cs
- MaterialGroup.cs
- PolyBezierSegment.cs
- Clause.cs
- TraceXPathNavigator.cs
- PersonalizableTypeEntry.cs
- FormatterServicesNoSerializableCheck.cs
- XamlVector3DCollectionSerializer.cs
- ExceptionHelpers.cs