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
- IndentedWriter.cs
- XpsS0ValidatingLoader.cs
- SessionEndedEventArgs.cs
- ConfigurationElementCollection.cs
- XmlILModule.cs
- CurrentTimeZone.cs
- RoleGroup.cs
- ExceptionUtil.cs
- AssertFilter.cs
- KoreanLunisolarCalendar.cs
- TreeNode.cs
- ColumnMap.cs
- ParameterElementCollection.cs
- DynamicValidator.cs
- PriorityBindingExpression.cs
- GeneralTransform3DTo2D.cs
- ContourSegment.cs
- QueryResponse.cs
- Decorator.cs
- ContainerAction.cs
- ValidationError.cs
- XmlElementAttributes.cs
- AppSettingsSection.cs
- OleDbErrorCollection.cs
- CodeTryCatchFinallyStatement.cs
- ToolStripStatusLabel.cs
- ColumnHeader.cs
- ReverseInheritProperty.cs
- SHA256Managed.cs
- TableStyle.cs
- SafeFileHandle.cs
- LightweightCodeGenerator.cs
- Queue.cs
- CheckBoxAutomationPeer.cs
- SHA1Managed.cs
- RuleSetDialog.Designer.cs
- CategoryEditor.cs
- keycontainerpermission.cs
- WebPartChrome.cs
- HttpApplicationStateWrapper.cs
- ImageDrawing.cs
- XComponentModel.cs
- NotFiniteNumberException.cs
- Variant.cs
- DefaultBindingPropertyAttribute.cs
- AbsoluteQuery.cs
- HandlerWithFactory.cs
- columnmapfactory.cs
- HtmlFormAdapter.cs
- BindingUtils.cs
- DynamicValidator.cs
- XXXInfos.cs
- Avt.cs
- DashStyles.cs
- ObjectQueryState.cs
- Msec.cs
- FormatConvertedBitmap.cs
- LineSegment.cs
- ExtensionSimplifierMarkupObject.cs
- SiteMapNodeCollection.cs
- SqlXmlStorage.cs
- _NativeSSPI.cs
- ConditionalWeakTable.cs
- FixUp.cs
- ItemCollection.cs
- TextTabProperties.cs
- RequestCachePolicyConverter.cs
- ValidationErrorEventArgs.cs
- OrderedDictionaryStateHelper.cs
- XPathParser.cs
- MultiTargetingUtil.cs
- XpsFixedDocumentSequenceReaderWriter.cs
- DeadCharTextComposition.cs
- DesignerLoader.cs
- SmtpAuthenticationManager.cs
- WasAdminWrapper.cs
- TextParaLineResult.cs
- Helpers.cs
- SectionUpdates.cs
- Button.cs
- ColorTransform.cs
- ConditionalAttribute.cs
- HWStack.cs
- FamilyTypefaceCollection.cs
- XmlRootAttribute.cs
- WebContext.cs
- OleDbDataAdapter.cs
- TextComposition.cs
- ChannelSinkStacks.cs
- StrongNameIdentityPermission.cs
- X509UI.cs
- XmlDataProvider.cs
- CombinedGeometry.cs
- ContextMenuStripGroupCollection.cs
- UpdateExpressionVisitor.cs
- EventManager.cs
- ColumnBinding.cs
- ToolStripGrip.cs
- WindowInteractionStateTracker.cs
- XmlLangPropertyAttribute.cs