Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / _BufferOffsetSize.cs / 1 / _BufferOffsetSize.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
//
// this class is used by the BeginMultipleSend() API
// to allow a user to send multiple buffers on a socket
//
internal class BufferOffsetSize {
//
// internal members
//
internal byte[] Buffer;
internal int Offset;
internal int Size;
internal BufferOffsetSize(byte[] buffer, int offset, int size, bool copyBuffer) {
GlobalLog.Assert(buffer != null && buffer.Length >= size + offset, "BufferOffsetSize::.ctor|Illegal parameters.");
if (copyBuffer) {
byte[] newBuffer = new byte[size];
System.Buffer.BlockCopy(
buffer, // src
offset, // src index
newBuffer, // dest
0, // dest index
size ); // total size to copy
offset = 0;
buffer = newBuffer;
}
Buffer = buffer;
Offset = offset;
Size = size;
GlobalLog.Print("BufferOffsetSize#" + ValidationHelper.HashString(this) + "::.ctor() copyBuffer:" + copyBuffer.ToString() + " this:[" + ToString() + "]");
}
/*
// Consider removing.
internal BufferOffsetSize(byte[] buffer, int offset, bool copyBuffer)
: this(buffer, offset, buffer.Length - offset, copyBuffer) {
}
*/
/*
// Consider removing.
internal BufferOffsetSize(int size, byte[] buffer, bool copyBuffer)
: this(buffer, 0, size, copyBuffer) {
}
*/
internal BufferOffsetSize(byte[] buffer, bool copyBuffer)
: this(buffer, 0, buffer.Length, copyBuffer) {
}
#if TRAVE
public override string ToString() {
return "BufferOffsetSize#" + ValidationHelper.HashString(this) + " Buffer#" + ValidationHelper.HashString(Buffer) + " Offset:" + Offset.ToString() + " Size:" + Size.ToString();
}
#endif
} // class BufferOffsetSize
} // namespace System.Net
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
//
// this class is used by the BeginMultipleSend() API
// to allow a user to send multiple buffers on a socket
//
internal class BufferOffsetSize {
//
// internal members
//
internal byte[] Buffer;
internal int Offset;
internal int Size;
internal BufferOffsetSize(byte[] buffer, int offset, int size, bool copyBuffer) {
GlobalLog.Assert(buffer != null && buffer.Length >= size + offset, "BufferOffsetSize::.ctor|Illegal parameters.");
if (copyBuffer) {
byte[] newBuffer = new byte[size];
System.Buffer.BlockCopy(
buffer, // src
offset, // src index
newBuffer, // dest
0, // dest index
size ); // total size to copy
offset = 0;
buffer = newBuffer;
}
Buffer = buffer;
Offset = offset;
Size = size;
GlobalLog.Print("BufferOffsetSize#" + ValidationHelper.HashString(this) + "::.ctor() copyBuffer:" + copyBuffer.ToString() + " this:[" + ToString() + "]");
}
/*
// Consider removing.
internal BufferOffsetSize(byte[] buffer, int offset, bool copyBuffer)
: this(buffer, offset, buffer.Length - offset, copyBuffer) {
}
*/
/*
// Consider removing.
internal BufferOffsetSize(int size, byte[] buffer, bool copyBuffer)
: this(buffer, 0, size, copyBuffer) {
}
*/
internal BufferOffsetSize(byte[] buffer, bool copyBuffer)
: this(buffer, 0, buffer.Length, copyBuffer) {
}
#if TRAVE
public override string ToString() {
return "BufferOffsetSize#" + ValidationHelper.HashString(this) + " Buffer#" + ValidationHelper.HashString(Buffer) + " Offset:" + Offset.ToString() + " Size:" + Size.ToString();
}
#endif
} // class BufferOffsetSize
} // namespace System.Net
// 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
- ToolStripOverflow.cs
- SoapObjectInfo.cs
- SafeNativeMemoryHandle.cs
- GridViewCancelEditEventArgs.cs
- ScriptDescriptor.cs
- WebPartVerb.cs
- Floater.cs
- HeaderCollection.cs
- HtmlEncodedRawTextWriter.cs
- TagNameToTypeMapper.cs
- StringToken.cs
- OdbcParameterCollection.cs
- ExchangeUtilities.cs
- CollectionViewGroup.cs
- TemplateAction.cs
- HttpCacheVary.cs
- WebBrowserProgressChangedEventHandler.cs
- EdmRelationshipRoleAttribute.cs
- DbConnectionOptions.cs
- Matrix3D.cs
- GridView.cs
- QueuePropertyVariants.cs
- OdbcStatementHandle.cs
- SmiEventSink.cs
- WhitespaceRuleReader.cs
- StringAnimationBase.cs
- ThicknessConverter.cs
- ModelTreeEnumerator.cs
- LinqDataSourceInsertEventArgs.cs
- XamlTreeBuilder.cs
- ReadOnlyNameValueCollection.cs
- HitTestDrawingContextWalker.cs
- CompositeKey.cs
- Int32AnimationBase.cs
- DataGridViewAccessibleObject.cs
- Component.cs
- EdgeModeValidation.cs
- SspiHelper.cs
- WebEventCodes.cs
- IdleTimeoutMonitor.cs
- DynamicValueConverter.cs
- AsyncStreamReader.cs
- PolicyUtility.cs
- TemplateInstanceAttribute.cs
- PointAnimationClockResource.cs
- FixedSOMSemanticBox.cs
- SplineKeyFrames.cs
- IdentifierService.cs
- Helpers.cs
- SchemaElementLookUpTable.cs
- VarRemapper.cs
- InstancePersistenceCommandException.cs
- CompoundFileStreamReference.cs
- Accessible.cs
- Listbox.cs
- COAUTHINFO.cs
- HttpCookieCollection.cs
- WindowsPrincipal.cs
- DbModificationClause.cs
- ProcessModelSection.cs
- SafeLibraryHandle.cs
- GuidConverter.cs
- PropertyGeneratedEventArgs.cs
- GeneralTransformGroup.cs
- MdImport.cs
- ChannelSinkStacks.cs
- CookieParameter.cs
- _HeaderInfo.cs
- configsystem.cs
- DateTimePickerDesigner.cs
- InstanceDataCollection.cs
- FlowSwitchLink.cs
- MenuCommands.cs
- DataGridViewColumnEventArgs.cs
- TreeNode.cs
- PenContexts.cs
- ListControlBuilder.cs
- TrackingQueryElement.cs
- ArgumentException.cs
- SoapWriter.cs
- EntityDesignerDataSourceView.cs
- ParameterBinding.cs
- ApplicationActivator.cs
- HyperLinkStyle.cs
- SerializationSectionGroup.cs
- IsolatedStorage.cs
- ReadOnlyCollection.cs
- _BufferOffsetSize.cs
- BaseDataList.cs
- PrefixQName.cs
- TemplateControl.cs
- AsyncOperation.cs
- X509Certificate2Collection.cs
- JapaneseCalendar.cs
- IdentityHolder.cs
- _NtlmClient.cs
- ElementHostAutomationPeer.cs
- ProfileModule.cs
- VectorKeyFrameCollection.cs
- FontEmbeddingManager.cs