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
- SecurityContextCookieSerializer.cs
- HttpInputStream.cs
- PagesSection.cs
- DbInsertCommandTree.cs
- UpdatePanelTrigger.cs
- FormViewUpdateEventArgs.cs
- _ListenerResponseStream.cs
- SqlComparer.cs
- coordinator.cs
- _NtlmClient.cs
- SeekStoryboard.cs
- TableCellCollection.cs
- MetadataItemSerializer.cs
- PathFigure.cs
- KeyProperty.cs
- TextPointerBase.cs
- RequestCachingSection.cs
- PackageRelationship.cs
- InternalDispatchObject.cs
- Row.cs
- MediaCommands.cs
- EditorPart.cs
- NonSerializedAttribute.cs
- ItemContainerProviderWrapper.cs
- XMLDiffLoader.cs
- ListManagerBindingsCollection.cs
- Polygon.cs
- HoistedLocals.cs
- FileStream.cs
- ErrorWebPart.cs
- GetReadStreamResult.cs
- VectorAnimation.cs
- SignatureSummaryDialog.cs
- CustomErrorsSectionWrapper.cs
- DataContractSerializerSection.cs
- StickyNoteHelper.cs
- LogoValidationException.cs
- MdiWindowListStrip.cs
- OdbcParameter.cs
- HtmlTableRow.cs
- TraceHandler.cs
- RuntimeIdentifierPropertyAttribute.cs
- TypeResolvingOptions.cs
- ExtentCqlBlock.cs
- ListManagerBindingsCollection.cs
- XhtmlMobileTextWriter.cs
- EditorPartChrome.cs
- PathTooLongException.cs
- SimpleType.cs
- _BasicClient.cs
- RegionInfo.cs
- HexParser.cs
- Decimal.cs
- SqlNode.cs
- Region.cs
- RoleGroupCollection.cs
- AutomationProperty.cs
- DataStreams.cs
- VisualStyleRenderer.cs
- DBPropSet.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ObjectSet.cs
- AuthenticationSection.cs
- RelationshipType.cs
- EventTrigger.cs
- ManifestResourceInfo.cs
- DataBoundControl.cs
- XmlSchemaInclude.cs
- Positioning.cs
- SendMailErrorEventArgs.cs
- StoreContentChangedEventArgs.cs
- DataRelationCollection.cs
- VisualStyleTypesAndProperties.cs
- OpCopier.cs
- XmlMemberMapping.cs
- AccessibilityApplicationManager.cs
- FileSecurity.cs
- _HeaderInfoTable.cs
- List.cs
- SeparatorAutomationPeer.cs
- SettingsPropertyValueCollection.cs
- EventToken.cs
- FixedElement.cs
- ListChunk.cs
- MasterPageParser.cs
- CatalogPartChrome.cs
- MarshalByRefObject.cs
- PointF.cs
- BitVector32.cs
- EndEvent.cs
- MobileControlsSectionHelper.cs
- GenerateTemporaryTargetAssembly.cs
- TreeNodeBindingCollection.cs
- ReachPageContentCollectionSerializer.cs
- DateBoldEvent.cs
- DataTrigger.cs
- GridViewRowEventArgs.cs
- RepeatInfo.cs
- TextUtf8RawTextWriter.cs
- LinkLabelLinkClickedEvent.cs