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
- HtmlGenericControl.cs
- ImageSourceConverter.cs
- ViewSimplifier.cs
- SqlConnectionStringBuilder.cs
- DataViewManager.cs
- ReadOnlyHierarchicalDataSourceView.cs
- AppDomainFactory.cs
- PersianCalendar.cs
- Line.cs
- BinaryUtilClasses.cs
- SslStreamSecurityUpgradeProvider.cs
- WindowsGraphics2.cs
- AsynchronousChannel.cs
- RecognitionResult.cs
- ErrorWebPart.cs
- TextParaLineResult.cs
- ExpressionBuilderContext.cs
- SqlCachedBuffer.cs
- XmlWriterSettings.cs
- MemberMemberBinding.cs
- IsolationInterop.cs
- SafeLibraryHandle.cs
- QueryStringParameter.cs
- OptimalBreakSession.cs
- ZipIOExtraFieldElement.cs
- ErrorsHelper.cs
- OledbConnectionStringbuilder.cs
- PeerNameRecord.cs
- HashSet.cs
- DataGridViewElement.cs
- Rect.cs
- ValueHandle.cs
- StaticTextPointer.cs
- BindingElementExtensionElement.cs
- VectorCollection.cs
- XsltSettings.cs
- RoleServiceManager.cs
- TimerEventSubscriptionCollection.cs
- CultureTableRecord.cs
- Adorner.cs
- InvalidWorkflowException.cs
- NaturalLanguageHyphenator.cs
- StatusBarPanelClickEvent.cs
- BlockCollection.cs
- ReverseInheritProperty.cs
- StringValidatorAttribute.cs
- documentsequencetextview.cs
- SortDescription.cs
- Vector.cs
- MenuAdapter.cs
- RSAPKCS1SignatureFormatter.cs
- XmlWriter.cs
- WebPartVerbsEventArgs.cs
- DataServiceResponse.cs
- XmlCodeExporter.cs
- LocatorGroup.cs
- OracleNumber.cs
- DataViewSettingCollection.cs
- XmlAttributeCollection.cs
- RequestTimeoutManager.cs
- HtmlForm.cs
- MouseGesture.cs
- CollectionContainer.cs
- ExtenderProvidedPropertyAttribute.cs
- Trace.cs
- Help.cs
- WorkflowMessageEventArgs.cs
- SiteIdentityPermission.cs
- ConfigXmlComment.cs
- InvokeHandlers.cs
- IncrementalHitTester.cs
- ElementMarkupObject.cs
- RegexBoyerMoore.cs
- DocumentPageTextView.cs
- SiteMapNodeItemEventArgs.cs
- CodeCompileUnit.cs
- DataGridViewToolTip.cs
- HtmlControl.cs
- FunctionMappingTranslator.cs
- PasswordDeriveBytes.cs
- Type.cs
- StreamHelper.cs
- SqlDependencyUtils.cs
- XamlDesignerSerializationManager.cs
- TraceProvider.cs
- WebServiceEnumData.cs
- TouchEventArgs.cs
- ThemeInfoAttribute.cs
- TableDetailsCollection.cs
- HtmlLink.cs
- XsdCachingReader.cs
- MarshalByRefObject.cs
- ConfigurationManagerHelper.cs
- ZoneIdentityPermission.cs
- BaseDataList.cs
- XamlFigureLengthSerializer.cs
- CodeComment.cs
- Transform3DCollection.cs
- ChannelManager.cs
- PermissionAttributes.cs